我无法检测 mapview 是否已加载到我的 android map 应用程序中。在 OnCreate 方法中,当我分配 map URL 时,我想知道是否发生了任何问题。由于我的互联网连接或任何其他问题(例如从 REST 服务加载 map ),可能会出现问题。这是我的代码块;
map.addLayer(newArcGISDynamicMapServiceLayer("any map URL"));
在这一点之后,我尝试使用像 if(map.isLoaded==false) 这样的控件,但它不起作用,尽管 map 已正确加载,但它落入了这个 block 。
谁能帮帮我?
提前致谢
最佳答案
听起来可能发生的事情是代码在初始化之前检查 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();
}
}
});
关于Android - 如何知道 mapView 是否正确加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8969498/