0

我正在尝试在Bing 地图Pushpin上显示多个对象。EntityLayerPushpins正确检索数据并且正确EntityLayer存储Pushpins时,MapView不显示EntityLayer.

JSONObject json = retrieveJSON();
JSONArray array = json.getJSONArray("Sites");

Coordinate closestGauge;

fooLayer = new EntityLayer("foos");


for(int i = 0; i < array.length(); i++)
{
    JSONObject site = array.getJSONObject(i);
    double lon = site.getDouble("Longitude");
    double lat = site.getDouble("Latitude");
    Pushpin foo = null;
    fooCoordinate = new Coordinate(lat, lon);
    PushpinOptions fooData = new PushpinOptions();
    fooData.Text = Double.toString(site.getDouble("Data"));
    fooData.Icon = Constants.PushpinIcons.RedFlag;
    foo = new Pushpin(fooCoordinate, fooData);
    _FWSGPSLayer.add(foo);
}

fooMap.getLayerManager().addLayer(fooLayer);
fooLayer.updateLayer();

从 Debug 的角度来看,我注意到EntityLayernever 链接到 ,MapView因为它的_map参数/值总是设置为null. 我尝试了各种显示图层的方法,例如调用setBingMapsView方法 fromEntityLayer但到目前为止没有任何效果。

有什么我做错了吗?我试图将事情与示例 Bing 地图应用程序相匹配,但它没有帮助。

编辑:我已经进行了一些调试,这就是我到目前为止所发现的:当我注释掉 for 循环并简单地添加一个图钉时,它就可以工作了。这让我相信必应地图对可以添加的图钉数量有限制。然而,我的数组只包含约 200 个数据点,而我被引导相信上限是数千个。

4

1 回答 1

0

好吧,我傻了。浏览我的JSONArray,我注意到,散布在我的阵列中,Doubles实际上有几个正在返回null。当然,由于我是在具有几乎恒定Location更新流的 Android 设备上进行调试的,所以我几乎无法NullPointerException在我的 LogCat 中发现它。

吸取教训,经常检查nulls

于 2012-06-26T20:26:44.107 回答