美文网首页
ArcGis 地图使用-从ArcGIS Online项加载图层并

ArcGis 地图使用-从ArcGIS Online项加载图层并

作者: KenChen_939 | 来源:发表于2019-12-23 18:56 被阅读0次

ArcGIS Runtime SDK允许您通过项目标识符访问存储在ArcGIS Online中的项目(例如图层)。使用要素图层,您可以存储地理要素(点,线,面),编辑或更新属性以及同步更改。如显示网络地图教程中所示,您可以加载和显示预先配置有底图和图层的现有网络地图。或者,也可以直接从ArcGIS Online加载各个图层,并使用代码构建地图。为此,您需要按ID访问每个项目。您可以通过在ArcGIS Online上浏览并在URL末尾进行标识来找到项目的ID。

关于创建自己的Online库的问题看这篇文章

本篇利用的是官网提供的demo图层

在2D地图的基础之上进行改动: 布局文件不改

public class MainActivity extends AppCompatActivity {

    private MapView mapView;
    private FeatureLayer mFeatureLayer;             //保留对将在创建的要素图层的引用。
    String itemID = "2e4b3df6ba4b44969a3bc9827de746b3";         //要添加的图层的项目ID。
    Portal portal = new Portal("http://www.arcgis.com");
    final PortalItem portalItem = new PortalItem(portal, itemID);           //创建一个变量以存储ArcGIS Online PortalItem。PortalItem表示存储在ArcGIS在线内容-在这种情况下,Trailheads样式化门户项目(特征层)。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mapView = findViewById(R.id.map);

        setupMap();




    }


    private void setupMap() {
        if (mapView != null) {
            Basemap.Type basemapType = Basemap.Type.TOPOGRAPHIC;                //需要更改样式
            double latitude = 34.09042;
            double longitude = 118.71511;
            int levelOfDetail = 11;
            ArcGISMap map = new ArcGISMap(basemapType, latitude, longitude, levelOfDetail);
            mapView.setMap(map);

            addLayer(map);                      //创建完地图之后添加图层

        }
    }

    private void addLayer(final ArcGISMap map) {                                //添加图层的方法
        mFeatureLayer = new FeatureLayer(portalItem,0);
        mFeatureLayer.addDoneLoadingListener(new Runnable() {
            @Override
            public void run() {
                if (mFeatureLayer.getLoadStatus() == LoadStatus.LOADED) {
                    map.getOperationalLayers().add(mFeatureLayer);
                }
            }
        });
        mFeatureLayer.loadAsync();
    }

再次运行程序就会发现地图已经显示后来添加的图层


image.png

相关文章

网友评论

      本文标题:ArcGis 地图使用-从ArcGIS Online项加载图层并

      本文链接:https://www.haomeiwen.com/subject/oahtoctx.html