精华内容
下载资源
问答
  • 1、打开腾讯位置服务官网    官网链接:点击此处跳转 2、登录后点击控制台 3、完善基本的信息 登录进控制台后会让你进行开发者验证,没有完善信息不可进行key的注册 若没有弹出来也可以点击个人中心→开发者信息...
  • Android 百度地图上显示自己的实时位置 二、环境 Android Studio 三、代码实现 使用下面代码之前,需要导入百度地图的包和AK吗。 可以去百度地图开发的开发文档寻找自己需要的部分,文档有教怎样申请AK和导入...

    一、题目

    Android 在百度地图上显示自己的实时位置

    二、环境

    Android Studio

    三、代码实现

    在使用下面代码之前,需要导入百度地图的包和AK吗。

    可以去百度地图开发的开发文档寻找自己需要的部分,文档有教怎样申请AK和导入百度地图的包。

    百度地图开发页面
    点击这里可以直达开发页面。

    package com.example.children;
    
    import androidx.annotation.NonNull;
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.ActivityCompat;
    import androidx.core.content.ContextCompat;
    
    import android.Manifest;
    import android.content.pm.PackageManager;
    import android.os.Bundle;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.baidu.location.BDAbstractLocationListener;
    import com.baidu.location.BDLocation;
    import com.baidu.location.LocationClient;
    import com.baidu.location.LocationClientOption;
    import com.baidu.mapapi.SDKInitializer;
    import com.baidu.mapapi.map.BaiduMap;
    import com.baidu.mapapi.map.MapStatusUpdate;
    import com.baidu.mapapi.map.MapStatusUpdateFactory;
    import com.baidu.mapapi.map.MapView;
    import com.baidu.mapapi.map.MyLocationData;
    import com.baidu.mapapi.model.LatLng;
    import com.example.children.MenuActivity;
    import com.example.children.R;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
        TextView locationInfo;
        LocationClient mLocationClient;
        MapView mMapView;
        BaiduMap mBaiduMap = null;
        boolean isFirstLocate = true;
    //     当前定位模式
    //    private MyLocationConfiguration.LocationMode locationMode;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //此方法要再setContentView方法之前实现
            SDKInitializer.initialize(getApplicationContext());
            setContentView(R.layout.activity_main);
            locationInfo = findViewById(R.id.locationInfo);
    
            mLocationClient = new LocationClient((getApplicationContext()));
            mLocationClient.registerLocationListener(new MyLocationListener());
    
            //获取地图控件引用
            mMapView = findViewById(R.id.bmapView);
            // 得到地图
            mBaiduMap = mMapView.getMap();
            // 开启定位图层
            mBaiduMap.setMyLocationEnabled(true);
            //定位初始化
            mLocationClient = new LocationClient(this);
    
            //通过LocationClientOption设置LocationClient相关参数
            LocationClientOption option = new LocationClientOption();
            option.setOpenGps(true); // 打开gps
            option.setCoorType("bd09ll"); // 设置坐标类型
            option.setScanSpan(1000);
            // 可选,设置地址信息
            option.setIsNeedAddress(true);
            //可选,设置是否需要地址描述
            option.setIsNeedLocationDescribe(true);
    
            //设置locationClientOption
            mLocationClient.setLocOption(option);
    
            //注册LocationListener监听器
            MyLocationListener myLocationListener = new MyLocationListener();
            mLocationClient.registerLocationListener(myLocationListener);
    
            List<String> permissionList = new ArrayList<>();
            //如果没有启动下面权限,就询问用户让用户打开
            if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION);
            }
            if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
                permissionList.add(Manifest.permission.READ_PHONE_STATE);
            }
            if (ContextCompat.checkSelfPermission(MainActivity.this,
                    Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
            }
            if (!permissionList.isEmpty()) {
                String[] permissions = permissionList.toArray(new String[permissionList.size()]);
                ActivityCompat.requestPermissions(MainActivity.this, permissions, 1);
            } else {
                requestLocation();
            }
        }
    
        /*只有同意打开相关权限才可以开启本程序*/
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            switch (requestCode) {
                case 1:
                    if (grantResults.length > 0) {
                        for (int result : grantResults) {
                            if (result != PackageManager.PERMISSION_GRANTED) {
                                Toast.makeText(this, "必须同意所有权限才能使用本程序", Toast.LENGTH_SHORT).show();
                                finish();
                                return;
                            }
                        }
                        requestLocation();
                    } else {
                        Toast.makeText(this, "发生未知错误", Toast.LENGTH_SHORT).show();
                        finish();
                    }
                    break;
                default:
            }
        }
    
        private void requestLocation() {
            initLocation();
            mLocationClient.start();
        }
    
        private void initLocation() {
            LocationClientOption option = new LocationClientOption();
            option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
            option.setCoorType("bd09ll");
            option.setScanSpan(3000);//发起定位请求的间隔
            option.setOpenGps(true);
            option.setLocationNotify(true);
            option.setIgnoreKillProcess(false);
            option.SetIgnoreCacheException(false);
            option.setWifiCacheTimeOut(5 * 60 * 1000);
            option.setEnableSimulateGps(false);
            option.setIsNeedAddress(true);
            mLocationClient.setLocOption(option);
        }
    
        private class MyLocationListener extends BDAbstractLocationListener {
            @Override
            public void onReceiveLocation(BDLocation location) {
                navigateTo(location);
                StringBuilder currentPosition = new StringBuilder();
                currentPosition.append("纬度:").append(location.getLatitude()).append("\n");
                currentPosition.append("经线:").append(location.getLongitude()).append("\n");
                currentPosition.append("国家:").append(location.getCountry()).append("\n");
                currentPosition.append("省:").append(location.getProvince()).append("\n");
                currentPosition.append("市:").append(location.getCity()).append("\n");
                currentPosition.append("区:").append(location.getDistrict()).append("\n");
                currentPosition.append("街道:").append(location.getStreet()).append("\n");
                currentPosition.append("定位方式:");
                if (location.getLocType() == BDLocation.TypeGpsLocation) {
                    currentPosition.append("GPS");
                } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {
                    currentPosition.append("网络");
                }
                locationInfo.setText(currentPosition);
            }
        }
        private void navigateTo(BDLocation location){
            if(isFirstLocate) {
                LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());
                MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);
                mBaiduMap.animateMapStatus(update);
    //        缩放地图大小
                update = MapStatusUpdateFactory.zoomTo(16f);
                mBaiduMap.animateMapStatus(update);
                isFirstLocate=false;
            }
            MyLocationData.Builder locationBuilder=new MyLocationData.Builder();
            locationBuilder.longitude(location.getLongitude());
            locationBuilder.latitude(location.getLatitude());
            MyLocationData locationData=locationBuilder.build();
            mBaiduMap.setMyLocationData(locationData);
        }
        @Override
        protected void onResume() {
            mMapView.onResume();
            super.onResume();
        }
    
        @Override
        protected void onPause() {
            mMapView.onPause();
            super.onPause();
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            mMapView.onDestroy();
            mBaiduMap.setMyLocationEnabled(false);
            mLocationClient.stop();
        }
    }
    
    

    四、实验结果

    这是在我的手机vivox21的上实验的结果。
    位置截图

    定位精度比较高,我使用时定位精度大概在1-10m。户外定位基本就是自己的位置,室内定位略差。

    夜神模拟器上模拟的结果:

    这是我今天运行的截图
    模拟器


    之前我在做这个demo的时候,模拟器一直定位的是四川的某地方,范围基本在那个县,但是镇、村可能不同。今天定位的是湖北偏岳阳的某地方。
    还有模拟器使用百度地图图层时,基本默认显示北京。

    所以在做Android定位时最好用真机模拟

    有问题,请留言交流!

    展开全文
  • 由于工作的性质,需要用到这几种主流地图来进行开发, 下面介绍腾讯,高德,百度的地图位置服务密钥申请方式 腾讯地图:https://lbs.qq.com/webservice_v1/guide-geocoder.html 高德地图:...

    由于工作的性质,需要用到这几种主流地图来进行开发, 下面介绍腾讯,高德,百度的地图位置服务密钥申请方式

     

    腾讯地图:https://lbs.qq.com/webservice_v1/guide-geocoder.html

    高德地图:https://lbs.amap.com/api/webservice/guide/api/georegeo

    百度地图: https://passport.baidu.com/v2/?l ... %2Fapiconsole%2Fkey

     

    腾讯地图申请过程

    1. 打开网站https://lbs.qq.com/webservice_v1/guide-geocoder.html,点击登录:

    1. 选择当前登录的qq账号登录:

    1. 提示账号未注册,需要先注册一下:

    1. 填写信息完成注册:

    1. 注册成功,点击创建API KEY:

    1. 提示需要验证、绑定邮箱:

    1. 打开邮箱,完成绑定验证:

    1. 点击创建密钥KEY:

    1. 输入key名称和验证码:

    1. 创建key成功:

    1. 进入key设置:点保存即可

    1. 看到我的开发密钥即完成申请

    高德地图申请过程

    1. 打开网站https://lbs.amap.com/api/webservice/guide/api/georegeo,点击登录:

    1. 选择当前登录的qq账号登录:

    1. 点控制台:

    注册为个人开发者:

    1. 填写信息完成注册:

    1. 注册成功,点击申请 KEY:

    1. 应用管理中创建新应用:

    1. 创建应用:

    1. 点击创建密钥KEY:

    注:服务平台要选“web服务”

    1. 提交完成申请:

     

     

    百度地图申请过程

     

    第一步:申请百度账号
    所有的百度产品都需要有一个百度的账号才可以使用,所以在使用之前需要申请一个百度的账号,如果已有账号可以跳过。点击链接申请百度账号https://passport.baidu.com/v2/?r ... p.baidu.com%2FrRQd7
     

    http://bbs.rivermap.cn/data/attachment/forum/201709/08/155647jii4l2lhll5ik1l9.jpg



    第二步:申请API Key
    点击链接https://passport.baidu.com/v2/?l ... %2Fapiconsole%2Fkey填写相关信息后申请百度API Key
     

    http://bbs.rivermap.cn/data/attachment/forum/201709/08/155702fliiw3wa7lz5q0wq.jpg

     

     

    第三步:API设置
    申请完成后,点击“创建应用”,“应用名称”随便填写一个,“应用类型”选择“浏览器端”,在“Referer白名单”框内填写*,点击“提交”完成设置。完成后点击“查看应用”,就可以看到刚才设置的应用对应的AK,复制,填写在下载器内即可下载。

     

    http://bbs.rivermap.cn/data/attachment/forum/201709/08/155723vyk2ykyi6uj26ji1.jpg

     

     

    展开全文
  • 这是一个利用腾讯地图实现位置的选择的微信小程序demo,需要去腾讯地图申请个人的key。地址:https://lbs.qq.com/dev/console/key/manage。谢谢各位大佬批评指导。
  • 纠正高德地图定位位置偏差案例,只需要自己在高德开发中心申请的key替换到我的key,一运行就会弹出alert(经纬度)
  • Android版仿微信发送位置地图选点(高德地图). 前面上传过一个百度地图的, 这个也一起上传吧(捞点分, 现在下载都强制需要资源分), Key请自行申请, demo包含一个可运行apk和源码.
  • 准备工作 ... ... 登陆之后,进入「应用管理」 页面「创建新应用」 ... 为应用添加 Key,「服务平台」一项请选择「 Web 端 ( JSAPI ) 」 ...新建一个DIV,作为地图的容器(这一步和使用其他插件一样,必...

     

    准备工作

       注册Key

    1. 首先,注册开发者账号,成为高德开放平台开发者

    2. 登陆之后,在进入「应用管理」 页面「创建新应用」

    3. 为应用添加 Key,「服务平台」一项请选择「 Web 端 ( JSAPI ) 」

    4. 记住这个Key,等会要用,以后可能也会用,一定要记住。 

     

     页面上的准备

    1. 新建一个DIV,作为地图的容器(这一步和使用其他插件一样,必须新建一个挂载点)。
    2. 给这个新建的div设置好宽高(这里提醒一下,可以使用弹性布局,没有影响)。
    3. 在body后面引入高德地图的js。
    4. 最后,异步初始化高德地图插件,一定要异步,使用window.onLoad。(去获取标记点的经纬度)

        【注】 高德地图Api入门指南 

    <!-- 二、设置宽和高-->
    <head>
        <style>
    	    #container{
    		    width: 500px;
    		    height: 500px;
    	    }
        </style>
    </head>
    
    <body>
        <!-- 一、新建一个容器 -->
        <div id="container" ></div>
    </body>
    
    <!--三、引入高德地图的js-->
    <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.8&key=您申请的key值"></script>
    
    <!--四、异步初始化高德地图插件-->
    <script>
    	//初始化地图插件
    	window.onload = function(){
    	    var map = new AMap.Map("container", {
                zoom: 15, //设置地图显示的缩放级别
                center: [116.44927, 39.9584] //设置地图中心点坐标
             });
    
             // 创建一个 Marker 实例:(标记点)
            var marker = new AMap.Marker({
               position: new AMap.LngLat(116.44927, 39.9584), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
               title: "位置标题"
            });
    
           // 将创建的点标记添加到已有的地图实例:
           map.add(marker);
    	}
    </script>

     

    好了,现在你的页面上已经出现了高德地图

    展开全文
  • Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
  • 这是一个利用腾讯地图实现到达指定位置的线路规划微信小程序demo,需要去腾讯地图申请个人的key。地址:https://lbs.qq.com/dev/console/key/manage。谢谢各位大佬批评指导。
  • 下面,介绍使用百度地图的api来获取地位位置的信息。 1> 第一步:先到百度开放平台http://lbsyun.baidu.com申请ak  http://lbsyun.baidu.com/index.php?title=wxjsapi/guide/key (此图片来源于网络,如有侵权,请...
  • 基于百度API地图获取位置代码是一款可以输入地址关键词智能搜索或地图上拖拽获取地址与坐标;调用百度API所使用的ak请到百度地图申请
  • 3.根据项目的bundleID前往高德地图API中创建引用并申请相关的key 高德地图应用管理后台 到这一步前期的准备工作基本差不多了,当然,我这写的不是很具体,详细的引入高德地图SDK还需要耐心按照高德地图官网SDK一...
  • 高德地图上展示当前位置

    这里使用的SDK为AMap_Location_V2.5.0_20160526.jar
    没有接触过高德地图的同学,请参考
    加载一张高德地图

    1.获取我的位置

    package com.pansoft.oilgas.gaodenavigation;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    
    import com.amap.api.location.AMapLocation;
    import com.amap.api.location.AMapLocationClient;
    import com.amap.api.location.AMapLocationClientOption;
    import com.amap.api.location.AMapLocationListener;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class QueryCurrentLocationActivity extends AppCompatActivity implements AMapLocationListener {
        private AMapLocationClientOption mLocationOption = null;
        private AMapLocationClient mLocationClient = null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mLocationClient = new AMapLocationClient(this);
    //初始化定位参数
            mLocationOption = new AMapLocationClientOption();
    //设置定位监听
            mLocationClient.setLocationListener(this);
    /*设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式*/
            mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    //设置定位间隔,单位毫秒,默认为2000ms
            mLocationOption.setInterval(2000);
    //设置定位参数
    mLocationClient.setLocationOption(mLocationOption);
    /* 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求,在定位结束后,在合适的生命周期调用onDestroy()方法
    在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除启动定位*/
            mLocationClient.startLocation();
    
        }
    
        @Override
        public void onLocationChanged(AMapLocation amapLocation) {
            if (amapLocation != null) {
                if (amapLocation.getErrorCode() == 0) {
                    //定位成功回调信息,设置相关消息
                    amapLocation.getLocationType();
             //获取当前定位结果来源,如网络定位结果,详见定位类型表
                    amapLocation.getLatitude();//获取纬度
                    amapLocation.getLongitude();//获取经度
                    amapLocation.getAccuracy();//获取精度信息
                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    Date date = new Date(amapLocation.getTime());
                    df.format(date);//定位时间
                } else {
                    //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
                    Log.e("AmapError", "location Error, ErrCode:"
                            + amapLocation.getErrorCode() + ", errInfo:"
                            + amapLocation.getErrorInfo());
                }
            }
        }
    
    
    }
    

    ok,执行以下!
    这里写图片描述
    不好了,缺少定位权限,是没有在AndroidManifest文件中声明定位权限吗?不是,是Android6.0中将用户权限分为普通权限和危险权限,这里定位权限属于危险权限,需要在使用的时候进行动态申请。
    对Android6定位权限不熟悉的同学请参考

    Android6.0权限申请模型

    2.动态申请定位权限

       public void requestLocationPermission(){
            ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},REQ_LOCATION);
        }
    
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            if(requestCode==REQ_LOCATION){
                if(grantResults!=null&&grantResults.length>0){
                    if(grantResults[0]== PackageManager.PERMISSION_GRANTED){
                        mLocationClient.startLocation();
                    }else{
                        Toast.makeText(QueryCurrentLocationActivity.this,"缺少定位权限,无法完成定位~",Toast.LENGTH_LONG).show();
                    }
                }
            }
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    

    3.展示获取到的位置数据

    定义一个DialogFragment展示数据,不熟悉DialogFragment的同学请参考
    AltertDialog在DialogFragment中的使用

    package com.pansoft.oilgas.gaodenavigation;
    
    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.app.DialogFragment;
    import android.content.DialogInterface;
    import android.os.Bundle;
    
    import com.amap.api.location.AMapLocation;
    
    
    public class ShowLocationFragment extends DialogFragment {
        public static final String KEY_MSG = "location msg";
        private AMapLocation currentLocation;
        public ShowLocationFragment() {
            // Required empty public constructor
        }
    
        public static ShowLocationFragment newInstance(AMapLocation currentLocation) {
            ShowLocationFragment fragment = new ShowLocationFragment();
            Bundle args = new Bundle();
            args.putParcelable(KEY_MSG,currentLocation);
            fragment.setArguments(args);
            return fragment;
        }
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            if (getArguments() != null) {
                currentLocation =getArguments().getParcelable(KEY_MSG);
            }
        }
    
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
    
            builder.setTitle("当前位置信息");
            builder.setMessage(currentLocation.getCity()+"\n"
            +currentLocation.getAddress()+"\n"
            +"当前经纬度: "+currentLocation.getLatitude()+","+currentLocation.getLongitude()+"\n"
            );
            builder.setPositiveButton("知道了", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                }
            });
         return builder.create();
        }
    }
    

    在onLocationChange成功获取数据后,调用

         ShowLocationFragment showFragment=ShowLocationFragment.newInstance(amapLocation);
                   showFragment.show(getFragmentManager(),"xxxx");
    

    展示数据
    这里写图片描述
    ok,初见成效!

    4.在地图上标注我的位置

    在原来代码的基础上,添加地图MapView
    不熟悉的同学,请参考
    加载一张高德地图

    在onCreate中添加,获取我的位置的相关部分

       // show my location
            aMap.setLocationSource(this);
            aMap.getUiSettings().setMyLocationButtonEnabled(true);
            aMap.setMyLocationEnabled(true);
            aMap.setMyLocationType(AMap.LOCATION_TYPE_MAP_FOLLOW);
    

    在QueryCurrentLocationActivity 中实现LocationSource接口

      @Override
        public void activate(OnLocationChangedListener onLocationChangedListener) {
            this.onLocationChangedListener=onLocationChangedListener;
    
        }
      @Override
        public void deactivate() {
            if(mLocationClient!=null){
                mLocationClient.stopLocation();
                mLocationClient.onDestroy();
            }
        }
    

    在定位成功后——onLocationChanged内刷新位置

        if(onLocationChangedListener!=null){
                        onLocationChangedListener.onLocationChanged(amapLocation);
                    }

    这里写图片描述
    ok!

    5.完整代码

    package com.pansoft.oilgas.gaodenavigation;
    
    import android.content.pm.PackageManager;
    import android.os.Bundle;
    import android.support.annotation.NonNull;
    import android.support.v4.app.ActivityCompat;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.widget.Toast;
    
    import com.amap.api.location.AMapLocation;
    import com.amap.api.location.AMapLocationClient;
    import com.amap.api.location.AMapLocationClientOption;
    import com.amap.api.location.AMapLocationListener;
    import com.amap.api.maps.AMap;
    import com.amap.api.maps.LocationSource;
    import com.amap.api.maps.MapView;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class QueryCurrentLocationActivity extends AppCompatActivity implements AMapLocationListener,LocationSource {
        private AMapLocationClientOption mLocationOption = null;
        private AMapLocationClient mLocationClient = null;
        private final int REQ_LOCATION=0x12;
        private MapView mapView;
        private AMap aMap;
        private OnLocationChangedListener onLocationChangedListener;
        @Override
        public void activate(OnLocationChangedListener onLocationChangedListener) {
            this.onLocationChangedListener=onLocationChangedListener;
        }
        @Override
        public void deactivate() {
            if(mLocationClient!=null){
                mLocationClient.stopLocation();
                mLocationClient.onDestroy();
            }
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mapView=new MapView(this);
            setContentView(mapView);
            aMap=mapView.getMap();
            mapView.onCreate(savedInstanceState);
    
            mLocationClient = new AMapLocationClient(this);
    //初始化定位参数
            mLocationOption = new AMapLocationClientOption();
    //设置定位监听
            mLocationClient.setLocationListener(this);
    //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
            mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    //设置定位间隔,单位毫秒,默认为2000ms
            mLocationOption.setInterval(2000);
    //设置定位参数
            mLocationClient.setLocationOption(mLocationOption);
    /* 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
     注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求
     在定位结束后,在合适的生命周期调用onDestroy()方法
     在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
    启动定位*/
    
            requestLocationPermission();
        }
        public void requestLocationPermission(){
            ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},REQ_LOCATION);
        }
    
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            if(requestCode==REQ_LOCATION){
                if(grantResults!=null&&grantResults.length>0){
                    if(grantResults[0]== PackageManager.PERMISSION_GRANTED){
                       mLocationClient.startLocation();
    
    
                    }else{
                        Toast.makeText(QueryCurrentLocationActivity.this,"缺少定位权限,无法完成定位~",Toast.LENGTH_LONG).show();
                    }
                }
            }
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    
        @Override
        public void onLocationChanged(AMapLocation amapLocation) {
            if (amapLocation != null) {
                if (amapLocation.getErrorCode() == 0) {
                    if(onLocationChangedListener!=null){
                        onLocationChangedListener.onLocationChanged(amapLocation);
                    }
                } else {
                    //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
                    Log.e("AmapError", "location Error, ErrCode:"
                            + amapLocation.getErrorCode() + ", errInfo:"
                            + amapLocation.getErrorInfo());
                }
            }
        }
        @Override
        protected void onResume() {
            super.onResume();
            mapView.onResume();
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            mapView.onPause();
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            mapView.onDestroy();
        }
    
        @Override
        public void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
            mapView.onSaveInstanceState(outState);
            if(mLocationClient!=null){
                mLocationClient.stopLocation();
                mLocationClient.onDestroy();
            }
        }
    }
    
    展开全文
  • 百度地图API申请流程

    千次阅读 2018-04-25 10:28:39
    经常网站的公司介绍里面会嵌入一个... 点击申请申请百度地图应用 二、获取百度地图引入代码 点击获取:获取地图引入代码 根据创建地图的步骤,设置公司地点,设置地图的属性(尺寸、位置、状态……),添...
  • 之前做大创的时候,就用到了高德地图,但是当时是为了赶项目,所以只是按照官方的demo代码搬运了过来,而具体哪个类是干什么的根本不清楚,而且一个完整的流程也是很模糊。现在再次用到了这个东西,所以觉得一定要...
  • 替换掉源码里面的app_key就可使用,提醒你,如果你申请的app_key是发布版的你需要正式打包才能显示地图
  • 首先你要百度地图的开发平台.申请成为百度开发者并获取一个自己的密钥(申请AK.) 百度的开发指南中有很详细的说明 下面这段能实现自己当前所造位置并且输出当前所在的省份以及城市地区 添加js文件 <script ...
  • 申请高德地图开发者key

    千次阅读 2019-09-19 14:06:49
    主要讲解如何申请高德地图的开发者Key
  • uniapp安卓app打包后获取位置信息失败解决方法(含高德地图key详细申请流程)
  • 百度地图AK申请流程

    千次阅读 2020-08-04 14:28:55
    1、注册并登录百度地图开放平台:http://lbsyun.baidu.com 2、点击控制台,如下图所示: 3、页面跳转至如下页面,选择–>【我的应用】–>... ... 5、认证,如下图: 6、至此AK申请完成,下图位置中查看 ...
  • Android 腾讯地图 选点定位,仿微信发送位置

    千次阅读 热门讨论 2019-03-29 15:10:27
    效果图: 不需要集成定位、地图,然后标记 回调等繁琐的操作,你只需要一个webview,使用腾讯地图...通过页面跳转的方式调用该组件的时候,开发者需要设置backurl参数,用户点击选中的位置点后,页面跳转至开发者...
  • /*将当前位置显示在地图上*/ private void navigateTo(BDLocation location){ if(isFirstLocate){ // /*获取经纬度*/ LatLng latLng = new LatLng(location .getLatitude (),location .getLongitude ()) ; ...
  • 关于腾讯地图开发的博客还是挺少的,此教程只是给一些初进入接入腾讯地图文档的作为参考,我也是一知半解,但是对于一些需要简单接入地图的小伙伴就足够了,因为我也是看着官方文档来写的,所以以官方文档为准腾讯...
  • 百度地图3.0中心点位置选择,首先定位到当前位置,用户可拖动地图调整自己位置,使用时请将自己的key写manifest文件,并改成自己的包名,和使用自己申请key时用的keystore签名打包
  • 最近项目中,有需要使用到获取用户当前地理位置信息的功能,获取当前用户位置保存到数据库中的场景,并且需要支持多种地图定位方式,我这里采用系统参数配置的方式,暂时实现了高德地图和腾讯地图两种方式,下面...
  • 基于百度API地图获取位置代码是一款可以输入地址关键词智能搜索或地图上拖拽获取地址与坐标;调用百度API所使用的ak请到百度地图申请
  • 可以做到的功能,定位,获取周边信息,滑动重新定位,点击周边位置设置为地图中心点,地图截图保存,6.0申请权限,发送位置带图片,完美功能实现
  • 如何申请腾讯key 要使用腾讯地图,首先要有个key 1.首先通过这个链接(官网:https://lbs.qq.com/javascript_v2)进去后,完成注册。 2.完成注册后,按下图操作即可: 3.进入如下页面,把信息填写完整,点击提交就...
  • 基于百度API地图获取位置代码是一款可以输入地址关键词智能搜索或地图上拖拽获取地址与坐标;调用百度API所使用的ak请到百度地图申请

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,189
精华内容 6,475
关键字:

如何在地图申请自己的位置