在Google地图上制作可点击的多边形(适用于Android)

bit*_*ter 7 android google-maps polygon geolocation google-maps-android-api-2

我有一个城市不同区域的连续LatLng.有什么方法可以用它创建可点击的多边形.一旦走的路将是

  • 使用可用的LatLng生成多边形.(我想用颜色编码直观地显示地图上的多边形)
  • 设置setOnMapClickListener.
  • 在多边形测试中做一个点.

我明白这很天真.有哪些替代方法?

bit*_*ter 8

这就是我做到的.

    Polygon polygon = getMap().addPolygon(new PolygonOptions()
                    .add(new LatLng(12.780712, 77.770956), new LatLng(12.912006, 77.229738), new LatLng(12.412006, 77.629738), new LatLng(12.912006, 77.229738))
                    .strokeColor(0xFF00AA00)
                    .fillColor(0x2200FFFF)
                    .strokeWidth(2)
    );


    polygon.setClickable(true);

    getMap().setOnPolygonClickListener(new GoogleMap.OnPolygonClickListener() {
        public void onPolygonClick(Polygon polygon) {

            mClusterManager = new ClusterManager<MyItem>(getApplicationContext(), getMap());
            getMap().setOnCameraChangeListener(mClusterManager);
            getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(getMap().getCameraPosition().target, getMap().getCameraPosition().zoom));

            try {
                readItems();
            } catch (JSONException e) {
                Toast.makeText(getApplicationContext(), "Problem reading list of markers.", Toast.LENGTH_LONG).show();
            }

        }
    });
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.


N D*_*tti 6

你不需要为拥有可点击的多边形而疯狂。我之前做过,但现在,有一个 api:

GoogleMap.setOnPolygonClickListener(OnPolygonClickListener)

您可以轻松使用它:

GoogleMap mymap =....//init your map
mymap.setOnPolygonClickListener(new OnPolygonClickListener(){
 void onPolygonClick(Polygon polygon){
   //do whatever with polygon!
 }
});
Run Code Online (Sandbox Code Playgroud)