【发布时间】:2018-06-08 15:48:25
【问题描述】:
我在 AndroidStudio 上开发应用程序时遇到了这个简单但烦人的问题。 我需要让我的应用能够在地图上绘制多个多边形。
您需要知道: 1.我不想有固定数量的多边形顶点。 2.我不想有固定数量的多边形,我想加多少就加多少。 3.我事先不知道多边形顶点的坐标,我想通过点击地图得到。
到目前为止我做了什么: 首先,我编写了 OnMapClick 方法,它可以让我获取我单击的点的坐标并将它们放入一个 ArrayList(arrayPoints)中。然后其他两种方法(onPolylineClick 和 onMarkerClick)允许我“关闭”多边形并创建它:
@Override
public void onMapClick(LatLng latLng) {
MarkerOptions marker = new MarkerOptions();
marker.position(latLng);
mGoogleMap.addMarker(marker);
polylineOptions = new PolylineOptions();
polylineOptions.clickable(true);
polylineOptions.color(Color.BLACK);
polylineOptions.width(8);
arrayPoints.add(latLng);
polylineOptions.addAll(arrayPoints);
mGoogleMap.addPolyline(polylineOptions);
}
@Override
public void onPolylineClick(Polyline polyline) {
Polygon polygon = mGoogleMap.addPolygon(new PolygonOptions()
.clickable(true)
.addAll(arrayPoints));
stylePolygon(polygon);
}
@Override
public boolean onMarkerClick(Marker marker) {
if (arrayPoints.contains(marker.getPosition())) {
polygon = mGoogleMap.addPolygon(new PolygonOptions()
.clickable(true)
.addAll(arrayPoints));
stylePolygon(polygon);
polygoncoord = polygon.getPoints().toString();
Log.i("polygoncoord", polygon.getPoints().toString());
} else {
AddPointOfAnalysisLabel(label, point_coords);
}
return true;
}
现在的问题是,如果我在第一个多边形关闭后继续点击地图,我也会继续添加同一折线的新标记,而不是创建新的多边形。
我的想法是,也许我可以点击多边形来关闭它,然后这将允许我创建一个新的(不删除第一个)。因此我已经准备好了 onPolygonClick 方法,但我真的知道在里面写什么来实现我的想法...... 你能帮帮我吗?
提前致谢!
【问题讨论】:
标签: java android google-maps polygon