google 地图多边形中的额外线条
extra line in google map polygon
在下面的屏幕截图中,我通过单击 google 地图绘制了一个多边形。
使用 setOnMapClickListener 将点击点的经纬度(图中所示的 1-10)存储到数组列表中,然后使用如图所示的多边形方法绘制多边形。
点击序列中的点如图所示,但我在 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
。
- 在 for 循环外创建
poly_shape
一次。
目前您在 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));
}
在下面的屏幕截图中,我通过单击 google 地图绘制了一个多边形。 使用 setOnMapClickListener 将点击点的经纬度(图中所示的 1-10)存储到数组列表中,然后使用如图所示的多边形方法绘制多边形。
点击序列中的点如图所示,但我在 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
。 - 在 for 循环外创建
poly_shape
一次。
目前您在 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));
}