如何在MapView上添加多个标记 - 超过一百个

时间:2011-01-13 23:24:59

标签: java android arrays android-mapview

我在开发者网站上关注了Hello MapView教程,并且一切运行良好。但是现在我需要扩展它以添加大约150个标记,并且我当前的方法会崩溃我的应用程序。

  

原因:keyDispatchingTimedOut

我的设置如下..

带有地图数据的四个String数组,都有(并且总是会)具有完全相同数量的索引和fId [0] == fLatitude [0] == fLongitude [0] == fDetails [0] ,依此类推:

    String[] fId;
    String[] fLatitude;
    String[] fLongitude;
    String[] fDetails;

截至目前,这就是我在地图上绘制点的方法。这显然不是正确的方法,因为地图不断崩溃:

        List<Overlay> mapOverlays = mapView.getOverlays();
    Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
    FriendItemizedOverlay itemizedoverlay = new FriendItemizedOverlay(drawable, mapView.getContext());

    for(int i=0;i<aLatitude.length;i++){

        Double intLon = Double.parseDouble(aLongitude[i]);
        Double intLat = Double.parseDouble(aLatitude[i]);

        GeoPoint point = new GeoPoint((int)(intLat * 1E6), 
                (int)(intLon * 1E6));
        OverlayItem overlayitem = new OverlayItem(point, "Friend ", "Something");

        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);

    }

如果您需要更多信息,请在评论中告诉我们,谢谢。

logcat的:

  

01-13 18:39:34.732:ERROR / MapActivity(1085):无法获取连接工厂客户端   01-13 18:40:14.473:ERROR / ActivityManager(69):com.example.friendapp中的ANR(com.example.friendapp / .FriendMaps)   01-13 18:40:14.473:ERROR / ActivityManager(69):原因:keyDispatchingTimedOut   01-13 18:40:14.473:ERROR / ActivityManager(69):载荷:2.39 / 0.78 / 0.42   01-13 18:40:14.473:ERROR / ActivityManager(69):CPU使用率从6026ms到0ms前:   01-13 18:40:14.473:ERROR / ActivityManager(69):93%1085 / com.example.friendapp:93%用户+ 0%内核/故障:25次   01-13 18:40:14.473:ERROR / ActivityManager(69):2.6%69 / system_server:1.8%用户+ 0.8%内核/故障:3次   01-13 18:40:14.473:ERROR / ActivityManager(69):1.1%875 / com.google.process.gapps:0%user + 1.1%kernel   01-13 18:40:14.473:ERROR / ActivityManager(69):1.1%980 / com.android.quicksearchbox:0%user + 1.1%kernel   01-13 18:40:14.473:ERROR / ActivityManager(69):0.9%133 / com.android.launcher:0%user + 0.9%kernel   01-13 18:40:14.473:ERROR / ActivityManager(69):0.1%40 / adbd:0%user + 0.1%kernel   01-13 18:40:14.473:ERROR / ActivityManager(69):100%TOTAL:95%用户+ 4.1%内核   01-13 18:40:14.473:ERROR / ActivityManager(69):CPU使用率从2192ms到2863ms之后:   01-13 18:40:14.473:ERROR / ActivityManager(69):80%1085 / com.example.friendapp:80%用户+ 0%内核/故障:3次   01-13 18:40:14.473:ERROR / ActivityManager(69):77%1085 / bile.friendapp:77%用户+ 0%内核   01-13 18:40:14.473:ERROR / ActivityManager(69):16%69 / system_server:4.8%用户+ 11%内核   01-13 18:40:14.473:ERROR / ActivityManager(69):14%101 / InputDispatcher:3.2%用户+ 11%内核   01-13 18:40:14.473:ERROR / ActivityManager(69):1.6%70 / HeapWorker:1.6%用户+ 0%内核   01-13 18:40:14.473:ERROR / ActivityManager(69):0.5%133 / com.android.launcher:0%user + 0.5%kernel   01-13 18:40:14.473:ERROR / ActivityManager(69):0.5%134 / HeapWorker:0%用户+ 0.5%内核   01-13 18:40:14.473:ERROR / ActivityManager(69):0.6%980 / com.android.quicksearchbox:0%user + 0.6%kernel   01-13 18:40:14.473:ERROR / ActivityManager(69):1.3%981 / HeapWorker:0%用户+ 1.3%内核   01-13 18:40:14.473:ERROR / ActivityManager(69):100%TOTAL:80%用户+ 19%内核   01-13 18:40:20.702:ERROR / InputDispatcher(69):channel'406f88b8 com.example.friendapp / com.example.friendapp.FriendMaps(server)'〜消费者关闭输入通道或发生错误。事件= 0x8中   01-13 18:40:20.712:ERROR / InputDispatcher(69):channel'406f88b8 com.example.friendapp / com.example.friendapp.FriendMaps(server)'〜频道无法恢复,将被丢弃!

1 个答案:

答案 0 :(得分:0)

您要将相同的叠加层添加150次到地图。请只添加一次。