ArcGIS Runtime SDK for Android 入门(4):显示矢量切片(VTPK)图层

      矢量切片(VTPK)就是将矢量数据以建立金字塔的方式,像栅格切片那样分割成一个一个瓦片,以pbf格式组织,在前端根据请求的范围提供矢量瓦片数据进行绘图。

    矢量切片的优势:

  • 切图体积小
  • 切图效率高
  • 传输、渲染速度快
  • 可以直接修改矢量切片文件的样式,不需要重新切图
  • 可以动态切换不同语言标注
  • 高分屏中显示很好

    关于矢量切片的详细介绍,可以观看Esri公开课  重磅解析-arcgis矢量切片

    本文主要讲解如何在ArcGIS Runtime SDK for Android中用在线方式进行矢量切片图层的显示,在后面也会有本地方式调用矢量切片的讲解。

实现步骤:

1.创建Android项目   

2.添加Runtime SDK依赖   

3.添加权限及OpenGL ES支持

前三步本文省略,初学者可参照ArcGIS Runtime SDK for Android 入门(1):第一个地图应用程序(二维)

4.设置界面布局

在layout中的布局XML中添加:

    <!-- MapView控件 -->
    <com.esri.arcgisruntime.mapping.view.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </com.esri.arcgisruntime.mapping.view.MapView>

5.编写代码:

思路:MapView用于显示地图(ArcGISMap),而地图(ArcGISMap)需要设置底图(Basemap),底图(Basemap)需要矢量切片图层(ArcGISVectorTiledLayer)。

步骤:在布局对应的Activity中:

(1)变量准备:

  //MapView控件变量
  private MapView mMapView;
  //矢量切片图层变量
  private ArcGISVectorTiledLayer mVectorTiledLayer;

(2)在onCreate方法中:

    // 通过布局文件初始化MapView
    mMapView = findViewById(R.id.mapView);
    // 通过URL加载并创建矢量切片图层对象
    mVectorTiledLayer = new ArcGISVectorTiledLayer(getString(R.string.mid_century_url));
    // 设置切片图层作为底图
    Basemap basemap = new Basemap(mVectorTiledLayer);
    // 创建一个底图对象并设置底图
    ArcGISMap map = new ArcGISMap(basemap);
    // 通过经度、纬度、比例尺创建视点
    Viewpoint vp = new Viewpoint(47.606726, -122.335564, 72223.819286);
    // 初始化底图范围
    map.setInitialViewpoint(vp);
    // 显示底图
    mMapView.setMap(map);

6.运行APP:可对矢量切片地图进行简单浏览与缩放。

7.进阶:通过Fragment侧边栏效果实现矢量切片图层的切换,详见:

ArcGIS Runtime SDK for Android 进阶:通过侧滑菜单实现图层切换---以矢量切片图层为例

       

 

展开阅读全文

没有更多推荐了,返回首页