美文网首页Vue.js开发技巧前端Vue专辑Vue.js学习
vue使用腾讯地图(四)定位实战qq.maps.Geolocat

vue使用腾讯地图(四)定位实战qq.maps.Geolocat

作者: 前端来入坑 | 来源:发表于2018-10-12 18:37 被阅读14次
    • 引入js包(这个是固定的用这个链接就可以)
    <script src="https://3gimg.qq.com/lightmap/components/geolocation/geolocation.min.js "></script>
    

    三步走

    <template>
        <div id="container" style="width:600px;height:500px;"></div>
    </template>
    
    <script>
        export default{
            name:'news',
            data() {
                return {
                    longitude:0,//经度
                    latitude:0,//纬度
                    city:''
                }
            },
            methods:{
      //第一部分
                  //定位获得当前位置信息
                getMyLocation() {
                    var geolocation = new qq.maps.Geolocation("yourkey", "yourkey名称");
                    geolocation.getIpLocation(this.showPosition, this.showErr);
                },
                showPosition(position) {
                    console.log(position);
                    this.latitude = position.lat;
                    this.longitude = position.lng;
                    this.city = position.city;
                    this.setMap();
                },
                showErr() {
                    console.log("定位失败");
                    this.getMyLocation();//定位失败再请求定位,测试使用
                },
    //第二部分
            //位置信息在地图上展示
                setMap() {
                    //步骤:定义map变量 调用 qq.maps.Map() 构造函数   获取地图显示容器
                    //设置地图中心点
                    var myLatlng = new qq.maps.LatLng(this.latitude,this.longitude);
                    //定义工厂模式函数
                    var myOptions = {
                      zoom: 13,               //设置地图缩放级别
                      center: myLatlng,    //设置中心点样式
                      mapTypeId: qq.maps.MapTypeId.ROADMAP  //设置地图样式详情参见MapType
                    }
                    // //获取dom元素添加地图信息
                    var map = new qq.maps.Map(document.getElementById("container"), myOptions);
    //第三部分
                  //给定位的位置添加图片标注
                    var marker = new qq.maps.Marker({
                        position: myLatlng,
                        map: map
                    });
                    //给定位的位置添加文本标注
                    var marker = new qq.maps.Label({
                        position: myLatlng,
                        map: map,
                        content:'这是我当前的位置,偏差有点大,哈哈'
                    });
                }
              },
            mounted() {
                this.getMyLocation();
                }
            }
    </script>
    

    小伙伴们用的时候可以一步一步去实现,保证每一步都实现后再进行下一步


    image.png image.png

    vue使用腾讯地图(一)https://www.jianshu.com/u/28178fe4ff08
    vue使用腾讯地图(二)事件https://www.jianshu.com/p/0ce29aec5f47
    vue使用腾讯地图(三)标注https://www.jianshu.com/p/eca4f20ee1cb

    申请key地址https://lbs.qq.com/console/mykey.html

    官方文档
    https://lbs.qq.com/tool/component-geolocation.html
    https://lbs.qq.com/javascript_v2/guide-start.html

    相关文章

      网友评论

      • 依然小波:我这边用了自己申请的yourkey和ypukey名称也会报Geolocation access has been blocked because of a Feature Policy applied to the current documen,并且拿不到经纬度这些
        依然小波:@前端来入坑 是不是 https 跟 http 的问题?我在本地服务器,跟阿里云服务器都会有这个问题
        依然小波:@前端来入坑 是的
        前端来入坑:@依然小波 js包是在index页面引入的吗
      • 湛湛似岁:我这边调用var geolocation = new qq.maps.Geolocation("yourkey", "yourkey名称");的时候会报
        Geolocation access has been blocked because of a Feature Policy applied to the current documen,显示用东西阻塞了但还是能获取到经纬度,楼主有没有遇到这种情况呀??
        前端来入坑:yourkey和ypukey名称要修改为你自己申请的key才可以

      本文标题:vue使用腾讯地图(四)定位实战qq.maps.Geolocat

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