如何将自定义标记放置在多边形Google地图顶部Android
问题描述:
我只想将自定义的气泡类型标记放置在多边形的顶部上,并在多边形上具有相同的文本,并且多边形可见时应显示多边形已经走了,那么它不应该显示在地图中。请帮我看看如何将自定义标记放置在多边形的顶部。如何将自定义标记放置在多边形Google地图顶部Android
coordinateList.add(new LatLng(19.216157, 72.920643));
coordinateList.add(new LatLng(19.207537, 73.091977));
coordinateList.add(new LatLng(19.012896, 73.));
coordinateList.add(new LatLng(19.036265, 72.872251));
PolygonOptions rectOptions = new PolygonOptions();
rectOptions.addAll(coordinateList);
rectOptions.strokeColor(Color.parseColor("#80FFFFFF"));
rectOptions.strokeWidth(0);
rectOptions.fillColor(Color.parseColor("#80ffb3ff"));
polygon = mMap.addPolygon(rectOptions);
polygon.setVisible(false);
请指导。
答
您可以将Marker
在Polygon
的心:
List<LatLng> coordinateList = new ArrayList<>();
Polygon polygon;
Marker marker;
coordinateList.add(new LatLng(19.216157, 72.920643));
coordinateList.add(new LatLng(19.207537, 73.091977));
coordinateList.add(new LatLng(19.012896, 73.));
coordinateList.add(new LatLng(19.036265, 72.872251));
PolygonOptions rectOptions = new PolygonOptions();
rectOptions.addAll(coordinateList);
rectOptions.strokeColor(Color.parseColor("#80FFFFFF"));
rectOptions.strokeWidth(0);
rectOptions.fillColor(Color.parseColor("#80ffb3ff"));
polygon = mMap.addPolygon(rectOptions);
polygon.setVisible(true);
LatLng centroid = findCentroid(coordinateList);
IconGenerator generator = new IconGenerator(this);
MarkerOptions markerOptions = new MarkerOptions().
icon(BitmapDescriptorFactory.fromBitmap(generator.makeIcon("Title"))).
position(centroid).
anchor(generator.getAnchorU(), generator.getAnchorV());
marker = mMap.addMarker(markerOptions);
这里是方法找到重心
private LatLng findCentroid (List<LatLng> coordinates) {
double latitude = 0;
double longitude = 0;
for (LatLng coordinate : coordinates) {
latitude += coordinate.latitude;
longitude += coordinate.longitude;
}
return new LatLng(latitude/coordinates.size(), longitude/coordinates.size());
}
然后你只需要让你的Polygon
和你Marker
可见或同时隐形:
polygon.setVisible(false);
marker.setVisible(false);