Android地图开发:腾讯地图SDK集成开发记录

1、添加jar或添加依赖

2、添加清单权限:

    <!--地图包、搜索包需要的基础权限-->
    <!--允许程序打开网络套接字-->
    <uses-permission android:name="android.permission.INTERNET" />  
    <!--允许程序设置内置sd卡的写权限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    
    <!--允许程序获取网络状态-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <!--允许程序访问WiFi网络信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <!--允许程序读写手机状态和身份-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />     
    <!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    
    <!-- 通过GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />


3、依旧清单文件,application里面配置key

<!-- 腾讯地图key配置。如果您key确认无误,却依然授权没有通过,请检查您的key的白名单配置 -->
        <meta-data
            android:name="TencentMapSDK"
            android:value="your key" />


4、layout布局文件中使用地图控件:

<com.tencent.tencentmap.mapsdk.maps.MapView
        android:id="@+id/map"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />


5、按理说,这样子就能看到腾讯地图了,不过还可以给他添加一些配置和定位

private TencentMap mTencentMap;
mTencentMap = mMapView.getMap();
        mTencentMap.getUiSettings().setZoomControlsEnabled(false);
        mTencentMap.setLocationSource(new DemoLocationSource(this));
        mTencentMap.setMyLocationEnabled(true);


6、上面的定位监听和回调DemoLocationSource类:(可以写成内部类)

class DemoLocationSource implements LocationSource, TencentLocationListener {
            private Context mContext;
            private OnLocationChangedListener mChangedListener;
            private TencentLocationManager locationManager;
            private TencentLocationRequest locationRequest;
            
            public DemoLocationSource(Context context) {
                // TODO Auto-generated constructor stub
                mContext = context;
                locationManager = TencentLocationManager.getInstance(mContext);
                locationRequest = TencentLocationRequest.create();
                locationRequest.setInterval(2000);
            }
            
            @Override
            public void onLocationChanged(TencentLocation arg0, int arg1,
                    String arg2) {
                // TODO Auto-generated method stub
                if (arg1 == TencentLocation.ERROR_OK && mChangedListener != null) {
                    Log.e("maplocation", "location: " + arg0.getCity() + " " + arg0.getProvider());
                    Location location = new Location(arg0.getProvider());
                    location.setLatitude(arg0.getLatitude());
                    location.setLongitude(arg0.getLongitude());
                    location.setAccuracy(arg0.getAccuracy());
                    mChangedListener.onLocationChanged(location);
                }
            }

            @Override
            public void onStatusUpdate(String arg0, int arg1, String arg2) {
                // TODO Auto-generated method stub
                
            }

            @Override
            public void activate(OnLocationChangedListener arg0) {
                // TODO Auto-generated method stub
                mChangedListener = arg0;
                int err = locationManager.requestLocationUpdates(locationRequest, this);
                switch (err) {
                case 1:
                    ActivityTool.showToast(mContext,"设备缺少使用腾讯定位服务需要的基本条件");
                    break;
                case 2:
                    ActivityTool.showToast(mContext,"manifest 中配置的 key 不正确");
                    break;
                case 3:
                    ActivityTool.showToast(mContext,"自动加载libtencentloc.so失败");
                    break;

                default:
                    break;
                }
            }

            @Override
            public void deactivate() {
                // TODO Auto-generated method stub
                locationManager.removeUpdates(this);
                mContext = null;
                locationManager = null;
                locationRequest = null;
                mChangedListener = null;
            }
            
            public void onPause() {
                locationManager.removeUpdates(this);
            }
            
            public void onResume() {
                locationManager.requestLocationUpdates(locationRequest, this);
            }
        }


7、销毁
     

@Override
      protected void onDestroy() {
        super.onDestroy();
        //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
        mMapView.onDestroy();
        mMapView = null;
      }
     
     @Override
     protected void onResume() {
        super.onResume();
        //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
        mMapView.onResume();
      }

8、ok,本博客结束,具体配置和其他类似的参考腾讯地图SDK官方文档

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在uni-app中使用腾讯地图SDK,需要先在腾讯地图开放平台申请开发者账号,然后创建应用并获取到腾讯地图SDK的App Key。接下来,可以按照以下步骤来集成腾讯地图SDK到uni-app项目中: 1. 在uni-app项目中的manifest.json文件中,添加以下配置: ``` "permission": { "android": { "name": [ "android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION", "android.permission.READ_PHONE_STATE", "android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.READ_EXTERNAL_STORAGE", "android.permission.ACCESS_NETWORK_STATE", "android.permission.ACCESS_WIFI_STATE", "android.permission.INTERNET" ] } }, "app-plus": { "modules": { "tencentmap": { "version": "1.0.0", "provider": "xxxxx" // 申请开发者账号时填写的公司名称或个人名字 } } } ``` 2. 将下载的腾讯地图SDK的jar包和so文件放到uni-app项目的unpackage文件夹下的lib文件夹中。 3. 在uni-app项目中的vue文件中,使用以下代码来调用腾讯地图SDK: ``` <template> <div id="map-container"></div> </template> <script> export default { mounted() { const map = new plus.maps.Map("map-container", { zoom: 15, center: {lat: 39.92, lng: 116.46} }); const marker = new plus.maps.Marker({position: {lat: 39.92, lng: 116.46}}); map.addOverlay(marker); } } </script> ``` 以上代码创建了一个地图容器,并在地图上添加了一个标记点。 需要注意的是,在使用腾讯地图SDK时,需要在manifest.json文件中配置权限,并且需要在使用地图相关功能时,用户需要授权给应用访问位置信息的权限。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值