首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CGI >

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

2012-07-23 
arcgis for android访问arcgis server上自己制作部署的地图服务本项目的开发环境是eclipse3.5 + ADT11插件

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

本项目的开发环境是eclipse3.5 + ADT11插件+arcgis for andorid 插件 + arcgis server java9.3.1版本

1.制作arcgis地图

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

地图的坐标是WGS_1984_Web_Mercator,如果是别的手机端不能正常显示。

?

2把图片部署到arcgis server

安装图上标注的选择自己制作好的地图如下图
arcgis for android访问arcgis server上自各儿制作部署的地图服务

注意路径问题,有的默认路径就是c盘fakepath目录下,把这个改成自己的实际地图路径,如下图

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

这里一定要选择Mobile Data Access这一项,其余的可以看自己项目的需求,如下图

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

最后点击左边的

?

?

?

3.android端访问服务

说下地图服务url的

http://本机:8399/arcgis/rest/services访问这个地址你就可以看到已经部署在这个arcgis server上的地图

选择我们需要的http://本机:8399/arcgis/rest/services/position/MapServer

就以arcgis for android的自带的helloworld项目为例

main.xml代码如下

<com.esri.android.map.MapViewxmlns: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.49929219769712 473.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.GraphicsLayer android:id="@+id/gLayer" /></com.esri.android.map.MapView>

?注意initExtent坐标不能为空;

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

java代码不要做修改

public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);map = (MapView) findViewById(R.id.map);//Retrieve the non-configuration instance data that was previously returned. Object init = getLastNonConfigurationInstance();if (init != null) {map.restoreState((String) init);}}

?运行结果如下:

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

本人是最近菜开始学gis开发,开发中遇到不少问题,希望这篇文章能帮助新手少走弯路。

1 楼 luckyaoyun 2012-01-03   请问博主,我的Android手机就是连接不上自己ArcGIS Server发布的地图 该怎么办呢? 2 楼 jianzhao880502 2012-03-01   为什么我的总是crash?????
03-01 16:59:24.562: ERROR/AndroidRuntime(4911): FATAL EXCEPTION: main
03-01 16:59:24.562: ERROR/AndroidRuntime(4911): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.esri.arcgis.android.samples.helloworld/com.esri.arcgis.android.samples.helloworld.HelloWorld}: android.view.InflateException: Binary XML file line #13: Error inflating class com.esri.android.map.ags.ArcGISDynamicMapServiceLayer
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.os.Looper.loop(Looper.java:123)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.app.ActivityThread.main(ActivityThread.java:4627)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at java.lang.reflect.Method.invokeNative(Native Method)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at java.lang.reflect.Method.invoke(Method.java:521)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at dalvik.system.NativeStart.main(Native Method)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911): Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class com.esri.android.map.ags.ArcGISDynamicMapServiceLayer
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.view.LayoutInflater.createView(LayoutInflater.java:503)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:210)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.app.Activity.setContentView(Activity.java:1647)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at com.esri.arcgis.android.samples.helloworld.HelloWorld.onCreate(HelloWorld.java:31)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     ... 11 more
03-01 16:59:24.562: ERROR/AndroidRuntime(4911): Caused by: java.lang.NoSuchMethodException: ArcGISDynamicMapServiceLayer(Context,AttributeSet)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at java.lang.Class.getMatchingConstructor(Class.java:660)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at java.lang.Class.getConstructor(Class.java:477)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     at android.view.LayoutInflater.createView(LayoutInflater.java:475)
03-01 16:59:24.562: ERROR/AndroidRuntime(4911):     ... 22 more

热点排行