arcgis for android访问arcgis server上自己制作部署的地图服务
16lz
2021-01-26
转自:http://gaomw.iteye.com/blog/1110437
本项目的开发环境是eclipse3.5 + ADT11插件+arcgis for andorid 插件 + arcgis server java9.3.1版本
1.制作arcgis地图
地图的坐标是WGS_1984_Web_Mercator,如果是别的手机端不能正常显示。
2把图片部署到arcgis server
安装图上标注的选择自己制作好的地图如下图
注意路径问题,有的默认路径就是c盘fakepath目录下,把这个改成自己的实际地图路径,如下图
这里一定要选择Mobile Data Access这一项,其余的可以看自己项目的需求,如下图
最后点击左边的Manage Services可以看到自己部署的地图是否正常运行如下图
3.android端访问服务
说下地图服务url的
http://本机:8399/arcgis/rest/services访问这个地址你就可以看到已经部署在这个arcgis server上的地图
选择我们需要的http://本机:8399/arcgis/rest/services/position/MapServer
就以arcgis for android的自带的helloworld项目为例
main.xml代码如下
Java代码- <com.esri.android.map.MapView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/map"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- initExtent="82.7000573134345-209.49929219769712473.75006718843446-213.21179229144713">
- <com.esri.android.map.ags.ArcGISDynamicMapServiceLayer
- url="http://192.168.16.235:8399/arcgis/rest/services/position/MapServer"/>
- <com.esri.android.map.GraphicsLayerandroid:id="@+id/gLayer"/>
- </com.esri.android.map.MapView>
注意initExtent坐标不能为空;
注意ArcGISDynamicMapServiceLayer 默认的helloword中的是ArcGISTiledMapServiceLayer,要改下否则访问不成功。
java代码不要做修改
Java代码- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- map=(MapView)findViewById(R.id.map);
- //Retrievethenon-configurationinstancedatathatwaspreviouslyreturned.
- Objectinit=getLastNonConfigurationInstance();
- if(init!=null){
- map.restoreState((String)init);
- }
- }
运行结果如下:
更多相关文章
- 如何用同一份代码产生不同包名得APK包
- [转]Android(安卓)中Preferences的使用
- Android(安卓)Studio获取SHA1(获取SHA1的通用方法)
- Android开发之自定义相机设定照片和预览参数问题
- Handler,MessageQueue,Looper,你所不知道的Asynchronous
- Android(安卓)Studio 1.5.1 JNI 编程
- Android(安卓)运行时找不到类:java.lang.NoClassDefFoundError
- 迁移到AndroidX的现实
- Unable to start activity ComponentInfo