arcgis for android访问arcgis server上自己制作部署的地图服务

转自: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代码  收藏代码
  1. <com.esri.android.map.MapView  
  2.         xmlns:android="http://schemas.android.com/apk/res/android"   
  3.         android:id="@+id/map"  
  4.         android:layout_width="fill_parent"   
  5.         android:layout_height="fill_parent"  
  6.         initExtent="82.7000573134345 -209.49929219769712 473.75006718843446 -213.21179229144713">  
  7.   
  8.   
  9.     <com.esri.android.map.ags.ArcGISDynamicMapServiceLayer    
  10.      url="http://192.168.16.235:8399/arcgis/rest/services/position/MapServer"/>  
  11.         <com.esri.android.map.GraphicsLayer android:id="@+id/gLayer" />  
  12.     </com.esri.android.map.MapView>  

 注意initExtent坐标不能为空;

注意ArcGISDynamicMapServiceLayer  默认的helloword中的是ArcGISTiledMapServiceLayer,要改下否则访问不成功。

java代码不要做修改

Java代码  收藏代码
  1. public void onCreate(Bundle savedInstanceState) {  
  2.         super.onCreate(savedInstanceState);  
  3.         setContentView(R.layout.main);  
  4.         map = (MapView) findViewById(R.id.map);  
  5.           
  6.         //Retrieve the non-configuration instance data that was previously returned.   
  7.         Object init = getLastNonConfigurationInstance();  
  8.         if (init != null) {  
  9.             map.restoreState((String) init);  
  10.         }  
  11.     }  

 运行结果如下:

原文地址:https://www.cnblogs.com/cugwx/p/3770733.html