您的位置:首页 > 移动开发 > Android开发

简单易用的ArcGIS runtime for Android 10.2

2013-11-29 14:46 411 查看
 (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"); }
}
});


实现效果如下图所示;



分享:


分享到新浪Qing



0


喜欢

阅读(1)┊

评论 (0)┊
收藏(0)
┊还没有被转载
┊ 喜欢
打印

已投稿到:

排行榜


圈子
加载中,请稍候......

前一篇:[转]ArcGIS Runtime SDKs 10.2 for iOS & Android& 

评论
重要提示:警惕虚假中奖信息
|
美艳少妇薄纱床照诱人
[发评论]

做第一个评论者吧!

抢沙发>>

发评论
闽湖尤溪之秋美若天堂|
螃蟹?饼干?你敢吃吗

因梦而飞 :


























登录名: 密码:找回密码

注册 记住登录状态
昵   称:


分享到微博


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


匿名评论

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

< 前一篇[转]ArcGIS Runtime SDKs 10.2 for iOS & Android& 

  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正
新浪简介 |
About Sina |
广告服务 |
联系我们 |

招聘信息 |
网站律师 | SINA English |
会员注册 |
产品答疑
Copyright © 1996 - 2013 SINA Corporation, All Rights Reserved
新浪公司
版权所有


X

选择其他平台 >>
分享到

分享到X

腾讯微博

一键通

新浪微博

QQ空间
搜狐微博
新华微博
手机
网易微博
开心网
豆瓣网

手机快传
人人网
天涯
凤凰微博
朋友网
微信
QQ好友

更多平台... (133)

bShare

含“”的博文
含“”的博主
含“”的音乐
含“”的视频

×

最近喜欢了的博主:


加载中…



为了您的账号安全,请绑定邮箱

分享到新浪Qing
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐