ArcGIS for Android地图控件常见操作

导言:

由于目前市面上地图的产品很多,比如百度,高德,arcgis,showmap等,所以需要根据公司和项目需求选择对应的产品,今天简单记录下arcgis配置和常见使用方法

官方文档: https://developers.arcgis.com/android/java/sample-code/

接入(若接入时一直失败,可换gradle版本或者Maven路径)

a:先在project 下的build.gradle中添加仓库

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
        
        //下面两个试着用,有时GIS某个版本会下载失败
        //maven { url 'https://esri.bintray.com/arcgis' }
        //maven { url 'https://esri.jfrog.io/artifactory/arcgis' },
    }
}

b:在app下的build.gradle中引入所需版本sdk

dependencies {
    //arcgis地图
    api 'com.esri.arcgisruntime:arcgis-android:100.3.0'
}

c:在build.gradle中的android的defaultConfig中设置运行的ndk

 defaultConfig {
        ndk {
            abiFilters "armeabi-v7a"
        }
    }

d:manifest.xml里设置权限和相关设置

 <uses-permission android:name="android.permission.INTERNET" />
 
 <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

常见使用

显示地图


1,添加布局文件

 <com.esri.arcgisruntime.mapping.view.MapView
            android:id="@+id/mapView"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        </com.esri.arcgisruntime.mapping.view.MapView>

2:初始化并显示图层

 @BindView(R.id.mapView)
  MapView mMapView;

  @Override
    public void onResume() {
        super.onResume();
        mMapView.resume();
        mMapView.setVisibility(View.VISIBLE);
    }

    //解决webview和mapview黑屏问题
    @Override
    public void onPause() {
        super.onPause();
        mMapView.pause();
        mMapView.setVisibility(View.INVISIBLE);
    }

 //添加GraphicsOverlay图层
 mMapView.getGraphicsOverlays().add(gOverlays);

初始化配置


        
//底部文字除去
mMapView.setAttributionTextVisible(false);
 //天地图
 WebTiledLayer   tdWebTiledLayer = TianDiTuMethodsClass.CreateTianDiTuTiledLayer(TianDiTuMethodsClass.LayerType.TIANDITU_VECTOR_2000);
WebTiledLayer   tdWebTiledLayer1 = TianDiTuMethodsClass.CreateTianDiTuTiledLayer(TianDiTuMethodsClass.LayerType.TIANDITU_VECTOR_ANNOTATION_CHINESE_2000);

//卫星图
WebTiledLayer  wxWebTiledLayer = TianDiTuMethodsClass.CreateTianDiTuTiledLayer(TianDiTuMethodsClass.LayerType.TIANDITU_IMAGE_2000);
WebTiledLayer  wxWebTiledLayer1 = TianDiTuMethodsClass.CreateTianDiTuTiledLayer(TianDiTuMethodsClass.LayerType.TIANDITU_IMAGE_ANNOTATION_CHINESE_2000);
//添加底图
Basemap basemap = new Basemap(tdWebTiledLayer);
basemap.getBaseLayers().add(tdWebTiledLayer1);
basemap.getBaseLayers().add(wxWebTiledLayer);
basemap.getBaseLayers().add(wxWebTiledLayer1);
//显示底图
 tdWebTiledLayer.setVisible(true);
tdWebTiledLayer1.setVisible(true);
wxWebTiledLayer.setVisible(false);
wxWebTiledLayer1.setVisible(false);
        
ArcGISMap arcGISMap = new ArcGISMap(basemap);
mMapView.setMap(arcGISMap);
ArcGISRuntimeEnvironment.setLicense("runtimelite,1000,rud5799562951,none,PM0RJAY3FLLR2B3TR001");

定位点位


 
 mMapView.setViewpointCenterAsync(new Point(121.48367, 31.3955, mMapView.getSpatialReference()), AppConstant.SCALE_SIZE);
 

普通气泡和自定义气泡



//普通气泡

//初始化布局
Point mapPoint = new Point(121.41288889f, 31.46202
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值