Android 谷歌地图多边形中的额外线条
在下面的屏幕截图中,我通过点击谷歌地图绘制了一个多边形。 使用setOnMapClickListener,单击点(如图所示1-10)的lat lng存储到阵列列表中,然后使用如图所示的多边形方法绘制多边形 点击点的顺序如图所示,但我得到了一个额外的8和10之间的线。 如何获得地图上单击的精确点的多边形Android 谷歌地图多边形中的额外线条,android,google-maps,line,polygon,Android,Google Maps,Line,Polygon,在下面的屏幕截图中,我通过点击谷歌地图绘制了一个多边形。 使用setOnMapClickListener,单击点(如图所示1-10)的lat lng存储到阵列列表中,然后使用如图所示的多边形方法绘制多边形 点击点的顺序如图所示,但我得到了一个额外的8和10之间的线。 如何获得地图上单击的精确点的多边形 mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { @Override
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));
}
}
有几条建议你可以试试
poly_形状
PolygonOptions
添加一个点,并在for循环内每次创建一个新多边形。这可能是在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\u list
的值?可以尝试在polygon()
中的for
-循环之前调用poly\u shape.setMap(null)
以清除现有多边形,但不确定这是否有帮助?