我无法检测我的android地图应用程序中是否加载了mapview。在OnCreate方法中,当我分配地图URL时,我想知道是否发生任何问题。由于我的互联网连接或任何其他问题(如从REST服务加载地图)可能会出现问题。这是我的代码块;
map.addLayer(newArcGISDynamicMapServiceLayer("any map URL"));
在这一点之后,我尝试使用像if(map.isLoaded == false)这样的控件,但它不起作用,虽然map正确加载但它属于这个块。
任何人都可以帮助我吗?
提前致谢
答案 0 :(得分:3)
听起来可能发生的事情是代码在初始化之前检查map.isLoaded()。检查MapView Reference以获取有关如何正确检查初始化的官方说明。
我扩展了参考代码
map = (MapView) findViewById(R.id.map);
tileLayer = new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer");
tileLayer.setOnStatusChangedListener(new OnStatusChangedListener() {
public void onStatusChanged(Object source, STATUS status) {
if (OnStatusChangedListener.STATUS.INITIALIZED == status){
map.addLayer(tileLayer); //when layer is initialized add to map
}
}
});
map.setOnStatusChangedListener(new OnStatusChangedListener() {
private static final long serialVersionUID = 1L;
public void onStatusChanged(Object source, STATUS status) {
//conditional checks if mapView's status has changed to initialized
if (OnStatusChangedListener.STATUS.INITIALIZED == status && source == map)
{
Toast mapViewToast = Toast.makeText(ActivityName.this, "MapView loaded", Toast.LENGTH_LONG);
mapViewToast.show();
}
}
});