我正在尝试在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个数据点,而我却认为上限是数千个。答案 0 :(得分:0)
JSONArray
搜索,我注意到,在我的数组中穿插了几个Doubles
实际上正在返回null
。当然,由于我在一个Android设备上进行调试,并且有近乎恒定的Location
更新流,我很难发现我的LogCat中的NullPointerException
。
经验教训,请务必检查nulls
。