2016-12-07 76 views
0

我只想将自定义的气泡类型标记放置在多边形的顶部上,并在多边形上具有相同的文本,并且多边形可见时应显示多边形已经走了,那么它不应该显示在地图中。请帮我看看如何将自定义标记放置在多边形的顶部。如何将自定义标记放置在多边形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); 

请指导。

回答

1

您可以将MarkerPolygon的心:

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);