Arcgis for android 100.0 添加json格式动态图层和去水印
在 ArcGIS for Android 100.0 中,您可以通过编程添加 JSON 格式的动态图层,并处理去水印问题。以下是详细的步骤和示例代码,帮助您实现这些功能。
添加 JSON 格式的动态图层
ArcGIS for Android 100.0 提供了对动态图层(Dynamic Layer)的支持,这种层通常使用 JSON 格式来描述其内容。以下是如何在 ArcGIS for Android 中添加 JSON 格式的动态图层:
添加必要的依赖
确保在
build.gradle
文件中添加了 ArcGIS for Android 的相关依赖:groovyimplementation 'com.esri.arcgisruntime:arcgis-android:100.0.0'
创建和配置地图
在
Activity
或Fragment
中创建并配置MapView
和Map
对象。javaimport com.esri.arcgisruntime.mapping.ArcGISMap; import com.esri.arcgisruntime.mapping.view.MapView; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.LayerList; // 创建地图 ArcGISMap map = new ArcGISMap(Basemap.createStreets()); // 创建 MapView 并设置地图 MapView mapView = findViewById(R.id.mapView); mapView.setMap(map);
添加动态图层
要添加 JSON 格式的动态图层,可以使用
ArcGISMapImageLayer
或ArcGISDynamicMapServiceLayer
。这里我们以ArcGISMapImageLayer
为例,假设 JSON 数据来源于一个在线服务。javaimport com.esri.arcgisruntime.mapping.view.MapView; import com.esri.arcgisruntime.mapping.ArcGISMap; import com.esri.arcgisruntime.mapping.view.ArcGISMapImageLayer; // JSON 图层 URL String url = "https://yourserver.com/yourlayer.json"; // 创建 ArcGISMapImageLayer ArcGISMapImageLayer mapImageLayer = new ArcGISMapImageLayer(url); // 获取地图的图层列表 LayerList layers = map.getOperationalLayers(); // 将动态图层添加到地图中 layers.add(mapImageLayer);
去水印
ArcGIS for Android 中的水印通常是由于使用试用版或开发者版本的 SDK 引起的。如果您希望去除水印,需要遵循以下步骤:
使用正式许可证
通过联系 Esri 或其授权代理商购买商业许可证。正式许可证通常不会在应用中显示水印。
更新许可证
在您的应用中配置许可证以去除水印。在应用的启动代码中设置许可证信息:
javaimport com.esri.arcgisruntime.ArcGISRuntimeEnvironment; // 设置许可证 ArcGISRuntimeEnvironment.setLicense("your-license-key");
替换
"your-license-key"
为您从 Esri 获得的实际许可证密钥。检查许可证状态
确保您的许可证密钥有效并正确配置。可以通过检查许可证状态来确认:
javaimport com.esri.arcgisruntime.ArcGISRuntimeEnvironment; // 获取许可证状态 LicenseStatus status = ArcGISRuntimeEnvironment.getLicense().getLicenseStatus(); if (status == LicenseStatus.LICENSED) { // 许可证有效 } else { // 许可证无效 }
示例代码总结
下面是完整的示例代码,将 JSON 格式的动态图层添加到地图中,并设置许可证:
javaimport android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.esri.arcgisruntime.ArcGISRuntimeEnvironment;
import com.esri.arcgisruntime.mapping.ArcGISMap;
import com.esri.arcgisruntime.mapping.view.MapView;
import com.esri.arcgisruntime.mapping.view.ArcGISMapImageLayer;
import com.esri.arcgisruntime.mapping.LayerList;
public class MainActivity extends AppCompatActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 设置许可证
ArcGISRuntimeEnvironment.setLicense("your-license-key");
// 创建地图并配置 MapView
ArcGISMap map = new ArcGISMap(Basemap.createStreets());
mapView = findViewById(R.id.mapView);
mapView.setMap(map);
// 添加 JSON 格式的动态图层
String url = "https://yourserver.com/yourlayer.json";
ArcGISMapImageLayer mapImageLayer = new ArcGISMapImageLayer(url);
LayerList layers = map.getOperationalLayers();
layers.add(mapImageLayer);
}
@Override
protected void onPause() {
super.onPause();
mapView.pause();
}
@Override
protected void onResume() {
super.onResume();
mapView.resume();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.dispose();
}
}
总结
在 ArcGIS for Android 100.0 中,您可以通过配置 ArcGISMapImageLayer
将 JSON 格式的动态图层添加到地图中。要去除水印,需购买正式许可证并在应用中配置许可证密钥。以上示例代码展示了如何实现这些功能。
关键字
ArcGIS for Android, JSON 格式动态图层, 去水印, ArcGISMapImageLayer
, 许可证配置, 水印去除, ArcGIS SDK, 动态图层, 地图配置