简单易用的ArcGIS runtime for Android 10.2

 (1)更简单的调用云GIS(ArcGIS Online)上的数据

          以前我们调用ArcGIS Online上的地图,需要知道底图的URL地址:

   <string name="WORLD_STREET_MAP">http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer</string>
    <string name="WORLD_TOPO_MAP">http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer</string>
    <string name="WORLD_NATGEO_MAP">http://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer</string>
    <string name="OCEAN_BASEMAP">http://services.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer</string>
   
         同时在代码中调用该服务地址: 

//create an initial basemap
  basemapStreet = new ArcGISTiledMapServiceLayer(this.getResources()
    .getString(R.string.WORLD_STREET_MAP));
  // Add basemap to MapView
  mMapView.addLayer(basemapStreet);
  // set visibility
  basemapStreet.setVisible(true);

如果需要更改底图,我们需要以下代码:

basemapTopo = new ArcGISTiledMapServiceLayer(this.getResources()
    .getString(R.string.WORLD_TOPO_MAP));
mMapView.addLayer(basemapTopo);
basemapStreet.setVisible(false);
basemapTopo.setVisible(true);

如果采用ArcGIS runtime for Android 10.2,这一切就更简单了。

首先,你不一定要记得arcgis online上的服务地址了,用MapOptions就能轻松搞定。

在xml文档中我们可以简单的配置下:

<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"/> 
然后在代码中简单的一句:

 MapView mMapView = (MapView) findViewById(R.id.map);
当然我们可以很简单就修改底图和范围:

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


(2)简单的标签

    之前我们实现graphic的标签和气泡功能,需要PopupInfo和PictureMarkerSymbol,整个过程还是比较复杂,但是我们用了arcgis runtime for android 10.2的ArcGIS Android Application Framework,就能轻松实现。

   第一步引用ArcGIS Android Application Framework,右键项目,选择“ArcGIS Tools”,然后选择“add Application Framework to project”,如下图所示:



然后在项目中就可以看到引用的库文件了



第二步,写入代码,引用库文件的MapViewHelper 类,如下所示:

 // Using MapOptions 
 mMapView = (MapView) findViewById(R.id.map); 
// Create a MapView Helper 
 mvHelper = new MapViewHelper(mMapView);
 // Create drawable icon
 icon = getResources().getDrawable(R.drawable.route_destination); 
// Make sure map has loaded before adding geometries 
 mMapView.setOnStatusChangedListener(new OnStatusChangedListener() { 
 private static final long serialVersionUID = 1L;
 public void onStatusChanged(Object source, STATUS status) { 
// Add a graphic to represent ESRI Headquarters 
  int loaded = mvHelper.addMarkerGraphic(34.056695, -117.195693, "ESRI", "World Headquarters", null, icon, false, 0);
 if (loaded < 0) 
{ Log.d("TAG", "Marker Graphic not added to MapView"); } 
} 
});

实现效果如下图所示;





0

阅读 (1) 评论 (0) 收藏 (0) 还没有被转载 喜欢 打印
已投稿到:
加载中,请稍候......
    因梦而飞 :
    • 灌水
    • 赞
    • 美好
    • 顶
    • 顶
    • 顶
    • 开心
    • 路过

    登录名: 密码: 找回密码 注册

    昵   称:

       

    验证码: 请点击后输入验证码 收听验证码

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有

    X
    选择其他平台 >>
    分享到
    • 含“”的博文
    • 含“”的博主
    • 含“”的音乐
    • 含“”的视频
    ×
      最近喜欢了的博主:
      加载中…
      为了您的账号安全,请 绑定邮箱




      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

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

      余额充值