ArcGIS Android 10.2中API的簡化

ArcGIS移動產品開發包Android和iOS 10.2版於前段時間正式發佈,除瞭眾所周知的強勁的離線支持,新版本中還有哪些激動人心的增強呢?請看“新特性系列博客”為您揭秘。

 

ArcGIS Runtime SDK for Android 10.2中有一個重大的新特性就是API的簡化,讓開發者能夠使用更少的代碼就能完成功能開發。比如,在10.2之前的版本中,加載底圖需要使用ArcGISTiledMapServiceLayer的特殊方法來指定底圖的初始化范圍、縮放等級、加載的圖層等,而在10.2新的編程模式中,通過新增的類MapOptions來預定義底圖、縮放級別、居中位置等,讓MapViews的創建過程大大簡化。

 

新增的MapOptions類

 

使用MapOptions類可以簡化創建MapView的方法,創建一個MapOptions的對象,並指定范圍、等級、居中位置等各種值,並將該對象作為參數傳入MapView的構造函數中。使用方法如下:

 

MapOptions topo = new MapOptions(MapType.TOPO, 23, -110, 9); 
MapView mMapView = new MapView(this, topo);

 

同樣的,現在可以使用MapOptions類的setMapOptions方法來輕松切換底圖:

 

MapOptions streets = new MapOptions(MapType.STREETS);
mMapView.setMapOptions(streets);

 

上述方法可以將地圖的底圖切換到STREETS類型。為瞭定義各個底圖的extent,開發者必須在切換底圖之前獲取地圖的范圍,並使用setOnStatusChangedListener方法來設定地圖范圍的變化:

 

Polygon extent = mMapView.getExtent();
mMapView.setMapOptions(streets);
// honor the extent when switching basemaps
mMapView.setOnStatusChangedListener(new OnStatusChangedListener() {
    private static final long serialVersionUID = 1L;
    @Override
    public void onStatusChanged(Object source, STATUS status) {
      mMapView.setExtent(extent);
    }
});

 

上面示例代碼顯示瞭MapOptions類在Java代碼中的用法,實際上,MapOptions類也可以在XML中使用(mapoptions屬性):

 

<com.esri.android.map.mapview
</com.esri.android.map.mapview
android:id="@+id/map"
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
mapoptions.MapType="topo" 
mapoptions.ZoomLevel="13" 
mapoptions.center="33.666354, -117.903557"/>

 

在XML中如上定義之後,在Java代碼中,隻需要一句代碼即可實例化MapView:

// Retrieve the MapView, Basemap, ZoomLevel, and Center from XML layout
MapView mMapView = (MapView) findViewById(R.id.map);

 

可使用示例向導加載名為Basemaps的例子來查看全部代碼。

 

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *