2

我知道如何在地图上添加点。

private void addMarkertoMap() {

        LatLng MarkerPos = new LatLng (24.803751, 1.479969);

        googlemap.addMarker(new MarkerOptions()

        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ROSE))
        .position(MarkerPos)
        );

但是如果我有很多点(数百个)并且我想从 GML 或 KML 文件中显示它们怎么办?在 Google Maps Android API 中是否可行?有什么帮助吗?

谢谢!

4

2 回答 2

6

您可以只添加当前在屏幕上可见的那些标记(但请注意,您需要跟踪您在屏幕上添加的那些标记,这样您就不会一遍又一遍地添加它们。您甚至可能想要删除那些不再可见的)

mMap.setOnCameraChangeListener(new OnCameraChangeListener() {
   @Override
   public void onCameraChange(CameraPosition position) {
      final LatLngBounds screenBounds = mMapView.getProjection().getVisibleRegion().latLngBounds;
      for (YourPoint point : mPoints) {
         if (screenBounds.contains(point.getLatLng()) {
            mMapView.addMarker(point.getLatLng());
         }
      } 
   }
}
于 2013-02-12T14:15:54.630 回答
0

回答你的问题:是的,这是可能的。

for (int i = 0; i < 10; i++) { addMarker(/* Something*/); } 

现在,也许是时候考虑一​​下了。您真的需要在地图上显示数百个点吗?也许你只能显示 20 个最近的点,或者 30 个更多的相关点......

您能否重新定义您的问题,以便我们回答并理解您的需求。

很难理解你想要什么以及问题在哪里。

于 2013-02-11T23:08:44.523 回答