我正在使用Google Maps API开发包含大量标记的地图。这是我的绘图功能:
var test = null;
$.get("/zeWebsite.php?blarg=421", function(data){
test = data.trim();
}).done(function (data){
// data also accessible here as is
alert(test);
});
并覆盖Onconnected:
//Draw marker to google map
private void drawMarker(LatLng point,String title,String snipped){
Marker marker=mGoogleMap.addMarker(new MarkerOptions()
.title(title)
.snippet(snipped)
.position(point));
}
问题是:1 /我的应用花费了大量时间在谷歌地图上绘制标记,我的应用程序是如此延迟。然后我想只在我看到的屏幕地图上绘制标记。当我移动地图时,新标记将出现,旧标记将消失。
2 /我希望在缩小时收集组中的相邻位置,并在放大时自动分离。
3 /非常感谢你。大家度过美好的一天:)
答案 0 :(得分:0)
您可以使用OnCameraChangeListner()
执行此操作。您可以检查MarkOption
方法中onCameraChange()
是否在您可见区域内。
示例代码:
final List<MarkerOptions> markerOptions = new ArrayList<MarkerOptions>();
markerOptions.add(markerOne);
markerOptions.add(markerTwo);
mMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
for (MarkerOptions option : markerOptions) {
if (bounds.contains(option.getPosition())) {
mMap.addMarker(option);
}
}
}
});