EntityLayer没有链接到MapView

时间:2012-06-26 14:23:49

标签: android bing-maps

我正在尝试在Pushpin上为Bing地图显示多个EntityLayer个对象。虽然Pushpins正在正确检索数据且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透视图,我注意到EntityLayer从不链接到MapView,因为其_map参数/值始终设置为null。我尝试了各种显示图层的方法,例如从setBingMapsView调用EntityLayer方法,但到目前为止还没有任何工作。

我有什么问题吗?我试图将样本Bing Maps应用程序与之匹配,但它一直没有帮助。

编辑:我已经完成了一些调试,这是我到目前为止所发现的:当我注释掉for循环并简单地添加一个Pushpin时,它可以工作。这让我相信Bing Maps对可添加的Pushpins数量有限制。但是,我的数组只包含~200个数据点,而我却认为上限是数千个。

1 个答案:

答案 0 :(得分:0)

嗯,傻我。通过我的JSONArray搜索,我注意到,在我的数组中穿插了几个Doubles实际上正在返回null。当然,由于我在一个Android设备上进行调试,并且有近乎恒定的Location更新流,我很难发现我的LogCat中的NullPointerException

经验教训,请务必检查nulls