安卓智能地图开发与实施五:在线基础底图 - ArcGIS Runtime SDK for Android(Version 100.0.0)

基础底图

移动地图程序的基础,在于“一张图”,外业调绘、导航类、成果展示、统计应用等都需要一张基本的底图来支撑。往往底图的好坏决定了整个移动地图的根基。

在线基础底图(Online Tiled Layers)

这里写图片描述

在线基础底图包括传统GIS(ArcGIS Server)和WebGIS(Online & Portal)。使用方式上确实不同,传统GIS是通过Layer直接对接地图服务(ArcGIS Server发布的)。WebGIS是同过ArcGISMap来对接WebMap。

WebGIS(Online & Portal)

通过Online或者Portal可以便捷快速的制作出更简洁智能的地图资源,用以表达我们的目的,对于移动端而言这些Web Map可以直接应用。

这里写图片描述

package hymn.esrichina.displayamaponlineandportal;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.esri.arcgisruntime.mapping.ArcGISMap;
import com.esri.arcgisruntime.mapping.Basemap;
import com.esri.arcgisruntime.mapping.LayerList;
import com.esri.arcgisruntime.mapping.view.MapView;

public class MainActivity extends AppCompatActivity {
    private MapView mainMapView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {
            String theURLString = 
            "http://www.arcgis.com/home/webmap/viewer.html?webmap=55c1665bcd064552944a9e8296271ec3";
            mainMapView = (MapView) findViewById(R.id.mainMapView);
            ArcGISMap mainArcGISMap = new ArcGISMap(theURLString);
            Basemap mainBasemap = mainArcGISMap.getBasemap();
            LayerList mainLayerList = mainArcGISMap.getOperationalLayers();
            mainMapView.setMap(mainArcGISMap);
        }
        catch (Exception e)
        {

        }
    }
}

传统GIS

对于一直使用ArcGIS Server发布地图服务的,可以直接使用地图服务(Layer)来加载在线的地图服务(ArcGIS Server)。

这里写图片描述

package hymn.esrichina.displayamaparcgisserver;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
import com.esri.arcgisruntime.mapping.Basemap;
import com.esri.arcgisruntime.mapping.LayerList;
import com.esri.arcgisruntime.mapping.view.MapView;

public class MainActivity extends AppCompatActivity {
    private MapView mainMapView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {
            String theURLString = 
            "http://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer";
            mainMapView = (MapView) findViewById(R.id.mainMapView);
            ArcGISTiledLayer mainArcGISTiledLayer = new ArcGISTiledLayer(theURLString);
            Basemap mainBasemap = new Basemap(mainArcGISTiledLayer);
            ArcGISMap mainArcGISMap = new ArcGISMap(mainBasemap);
            mainMapView.setMap(mainArcGISMap);
        }
        catch (Exception e)
        {

        }
    }
}

在线矢量切片

ArcGIS新出的矢量切片也有在线模式,也不失为好的选择。在线的地址管理在ArcGIS Online或者ArcGIS Portal当中,参考地址如下:
https://www.arcgis.com/home/item.html?id=e19e9330bf08490ca8353d76b5e2e658

这里写图片描述

package hymn.esrichina.displayamapvtpkonline;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.layers.ArcGISVectorTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
import com.esri.arcgisruntime.mapping.Basemap;
import com.esri.arcgisruntime.mapping.Viewpoint;
import com.esri.arcgisruntime.mapping.view.MapView;

public class MainActivity extends AppCompatActivity {
    private MapView mainMapView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {
            String theOfflineTiledLayers = 
            "https://www.arcgis.com/home/item.html?id=e19e9330bf08490ca8353d76b5e2e658";
            mainMapView = (MapView) findViewById(R.id.mainMapView);
            ArcGISVectorTiledLayer mainArcGISVectorTiledLayer = new ArcGISVectorTiledLayer(theOfflineTiledLayers);
            Basemap mainBasemap = new Basemap(mainArcGISVectorTiledLayer);
            ArcGISMap mainArcGISMap = new ArcGISMap(mainBasemap);
            mainMapView.setMap(mainArcGISMap);
            Viewpoint vp = new Viewpoint(47.606726, -122.335564, 72223.819286);
            mainArcGISMap.setInitialViewpoint(vp);
        }
        catch (Exception e)
        {

        }
    }
}

结尾

源程序包含:

  1. DisplayAMapOnlineAndPortal
  2. DisplayAMapArcGISServer
  3. DisplayAMapVTPKOnline

请自行下载:
http://pan.baidu.com/s/1jIDlYyM 密码:6cvh
若失效,可发邮件给韩源萌(polyline@126.com)索要。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾神说D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值