安卓 - 如何知道mapView是否已经正确加载?

3

我在我的安卓地图应用程序中检测地图视图是否已加载时遇到了问题。在OnCreate方法中,当我分配地图URL时,我想知道是否出现任何问题。问题可能是由于我的互联网连接或从REST服务加载地图等其他问题而导致的。以下是我的代码块:

map.addLayer(newArcGISDynamicMapServiceLayer("any map URL"));

在这个点之后,我尝试使用像if(map.isLoaded==false)这样的控件,但它不起作用,尽管地图已经正确加载,但仍然跳转至此块。

有人能帮忙吗?

提前感谢。

1个回答

3
听起来可能发生的情况是代码在初始化之前检查了map.isLoaded()。请参考MapView参考,了解如何正确检查初始化。
我已经扩展了参考代码。
    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();
            }
        }
     });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接