一、RunTime和SDK安装
SDK安装前,需要先安装ArcGISRuntime,Runtime位于SDK安装目录下的Support文件夹中,包含32位和64位两种。另外,SDK中包含项目创建向导,需要先安装好Eclipse和JDK1.6。Eclipse的下载: http://www.eclipse.org/downloads/。为了方便在Eclipse中进行GUI编辑,需要在Eclipse中安装Windows builder插件。
1ArcGIS Runtime安装
2、ArcGISRuntime SDK For Java安装
安装完成后,即可在eclipse中添加ArcGIS Runtime SDK的插件。
3、在Eclipse中安装windows builder插件和ArcGIS Runtime SDK插件
a) 在EclipseMarketplace中查找windowsbuilder,然后进行安装。
b) ArcGIS Runtime SDK的安装
点击上图的“Add”按钮,添加Repository
至此,ArcGISRuntime SDK的插件安装完毕。在Eclipse中会出现ArcGIS Runtime for Java模版。
二、SDK开发入门
1、创建第一个ArcGISRuntime Java项目
新建一个project,打开ArcGIS Runtime for Java模版,选择“ArcGIS Runtime Java Map Application”模版,然后“Next”。再出现的Create aJava Project中输入要创建的project的名字,在“java class”窗口中输入类名,然后完成。
上图即为刚创建的project,运行后出现下图
调用的地图服务是online的地图服务,http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer
2、添加本地地图服务
代码如下:
ArcGISDynamicMapServiceLayer dynamicLayer= new ArcGISDynamicMapServiceLayer(
“http://esri-sxm/ArcGIS/rest/services/USA/MapServer”);
_map.addLayer(dynamicLayer);
其中地图服务使用的是ArcGIS Server10版本发布的动态地图服务。
上例运行效果如下:(默认支持滚轮缩放,鼠标左键漫游,与WebAPI开发效果一样)
3、添加地图包数据(未授权)
地图包是ArcGIS10中增加的一种数据保存格式,扩展名为mpk。实际上该文件是一个压缩文件,里面包含数据源、mxd文档以及参数信息。
代码如下:
a) LocalArcGISDynamicMapServiceLayerlocalMSLayer = new LocalArcGISDynamicMapServiceLayer(“Data\WorldCountries.mpk“);
_map.addLayer(localMSLayer);
示例中使用的是样例中自带的mpk文件,文件内容与ArcGIS 10中保存的略有不同,其中多了msd文档。使用ArcGIS 10保存出来的mpk文件测试,提示缺少msd文档。
运行结果中有大量水印,这是由于runtime没有授权引起。
4、授权ArcGISRuntime
向导生成的项目中,授权代码已经定义在mymap.java中。代码如下:
final LocalServer localServer = LocalServer.getInstance();
localServer.setLicense(“runtimeadvanced,101,ecp327916071,29-nov-2011,FAYNC3RZD05H7E3EZ024“);
localServer.addServerLifetimeListener(new ServerLifetimeListener() {
@Override
public void serverLifetimeShutdown(ServerLifetimeEvent e) {}
@Override
public void serverLifetimeInitialized(ServerLifetimeEvent e) {
// It is recommended that theLicenseStatus is checked to
// confirm that it is Valid before usingthe Local Server.
if (localServer.getLicenseStatus() !=LicenseStatus.Valid) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JOptionPane
.showMessageDialog(_frame,
“License is invalid. Please contact yoursystem administrator.”);
}
});
}
}
});
localServer.initializeAsync();
其中LocalServer.SetLicense()方法用于设置许可信息,参数值是许可文本字符串。
运行效果如下: