2013-02-11 73 views
2

我知道如何添加点映射。使用谷歌地图显示多点Android API v2

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中可用吗?任何帮助?

谢谢!

+0

@Waza_Be如何做到这一点? – Vis 2013-02-11 23:06:50

+0

你看过我的回答和我的评论吗? – 2013-02-17 14:28:50

回答

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()); 
     } 
     } 
    } 
} 
0

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

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

现在,这可能是时候想想..你真的需要在地图上显示数百个点吗? 也许你只能显示20个最近的点,或30个以上的相关点...

你能否请你重新填写你的问题,以便我们能够回答并理解你想要什么。

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

+0

我在GML文件中有452点(Lat Lon),我必须在地图上显示它们。我的问题是如何做到这一点?谢谢! – Vis 2013-02-11 23:11:18

+0

@Vis:“怎么做?” - 调用'addMarker()'452次。虽然我同意Waza_Be,您的用户将不会对您的应用的可用性感到满意。 – CommonsWare 2013-02-12 00:48:50

+0

@Vis for(int i = 0; i <10; i ++){addMarker(/ * Something * /); } – 2013-02-12 15:30:55