2016-12-07 79 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);