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 格式的动态图层:

  1. 添加必要的依赖

    确保在 build.gradle 文件中添加了 ArcGIS for Android 的相关依赖:

    groovy
    implementation 'com.esri.arcgisruntime:arcgis-android:100.0.0'
  2. 创建和配置地图

    ActivityFragment 中创建并配置 MapViewMap 对象。

    java
    import 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);
  3. 添加动态图层

    要添加 JSON 格式的动态图层,可以使用 ArcGISMapImageLayerArcGISDynamicMapServiceLayer。这里我们以 ArcGISMapImageLayer 为例,假设 JSON 数据来源于一个在线服务。

    java
    import 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 引起的。如果您希望去除水印,需要遵循以下步骤:

  1. 使用正式许可证

    通过联系 Esri 或其授权代理商购买商业许可证。正式许可证通常不会在应用中显示水印。

  2. 更新许可证

    在您的应用中配置许可证以去除水印。在应用的启动代码中设置许可证信息:

    java
    import com.esri.arcgisruntime.ArcGISRuntimeEnvironment; // 设置许可证 ArcGISRuntimeEnvironment.setLicense("your-license-key");

    替换 "your-license-key" 为您从 Esri 获得的实际许可证密钥。

  3. 检查许可证状态

    确保您的许可证密钥有效并正确配置。可以通过检查许可证状态来确认:

    java
    import com.esri.arcgisruntime.ArcGISRuntimeEnvironment; // 获取许可证状态 LicenseStatus status = ArcGISRuntimeEnvironment.getLicense().getLicenseStatus(); if (status == LicenseStatus.LICENSED) { // 许可证有效 } else { // 许可证无效 }

示例代码总结

下面是完整的示例代码,将 JSON 格式的动态图层添加到地图中,并设置许可证:

java
import 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, 动态图层, 地图配置