【问题标题】:Android - How to know if mapView is properly loaded?Android - 如何知道 mapView 是否正确加载?
【发布时间】:2012-02-16 16:14:08
【问题描述】:

我在检测我的 android 地图应用程序中是否加载了 mapview 时遇到了问题。在 OnCreate 方法中,当我分配地图 URL 时,我想知道是否出现任何问题。由于我的互联网连接或任何其他问题(例如从 REST 服务加载地图),可能会出现问题。这是我的代码块;

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

在此之后,我尝试使用 if(map.isLoaded==false) 之类的控件,但它不起作用,尽管地图已正确加载,但它属于此块。

谁能帮帮我?

提前致谢

【问题讨论】:

    标签: android map arcgis esri


    【解决方案1】:

    听起来可能发生的事情是代码在初始化之前检查 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();
                }
            }
         });
    

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 2021-05-14
      • 2020-03-31
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多