【发布时间】:2018-10-09 07:36:26
【问题描述】:
在以下屏幕截图中,我通过单击谷歌地图绘制了一个多边形。 使用 setOnMapClickListener 将被点击点的 lat lng(如图所示 1-10)存储到数组列表中,然后使用方法 polygon 绘制多边形。
如图所示,这些点按顺序单击,但我在 8 到 10 之间多了一条线。 我怎样才能获得在地图上点击的确切点的多边形。
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
polygon_list.add(latLng);
mMap.addMarker(new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.mipmap.dot)).anchor(0.5f, 0.5f));
}
}
});
public void polygon() {
PolygonOptions opts = new PolygonOptions();
for (LatLng location : polygon_list) {
opts.add(location);
poly_shape = mMap.addPolygon(opts.strokeColor(Color.RED).fillColor(Color.BLUE));
}
}
【问题讨论】:
-
你能打印
polygon_list的值吗? -
您可以尝试在
polygon()中的for-loop 之前调用poly_shape.setMap(null)以清除现有多边形,不确定是否有帮助?
标签: android google-maps line polygon