美文网首页
腾讯地图

腾讯地图

作者: 小北呀_ | 来源:发表于2020-08-08 10:03 被阅读0次

下面包括的方法有:地图展示、多边形地图展示、地图点击事件、动态改变缩放、坐标逆解析地址用jsonp。

<template>
    <div>
        map ......
        <div id='container'></div>
    </div>
</template>
<script>
// 注意:用的时候 this.$jsonp! 不要问我也不知道
import Vue from 'vue'
import VueJsonp from 'vue-jsonp'
Vue.use(VueJsonp)
export default {
    data() {
        return {

        }
    },
    mounted() {
        // 3d地图显示
        this.get3D()

        // 多边形地图展示
        // this.getPolygon()
    },
    methods:{
        /* 
            3d地图显示
        */
        get3D() {
            //定义地图中心点坐标
            //   {"latitude":40.03658,"longitude":116.37239,"text":"海淀区清河康健宝盛广场(宝盛路南50米)"}
            var center = new TMap.LatLng(40.03658, 116.37239)
            //定义map变量,调用 TMap.Map() 构造函数创建地图
            var map = new TMap.Map(document.getElementById('container'), {
                center: center,//设置地图中心点坐标
                zoom: 17.2,   //设置地图缩放级别
                pitch: 43.5,  //设置俯仰角
                rotation: 45    //设置地图旋转角度
            });


            // 点击事件
            map.on("click",this.clickMap)

        },
        /* 动态改变缩放 */
        changeZoom() {
            setTimeout(()=>{
                map.zoomTo(10)
            },3000)
        },
        /* 点击事件 */
        clickMap(val){
            console.log(val,'val.....')

            this.lat = val.latLng.lat
            this.lng = val.latLng.lng
            // 坐标逆解析成地址
            this.getAdrress()

            /* 通过off方法解绑点击事件 */
            // map.off("click",this.clickMap);
        },
        getAdrress() {
            // json 存在跨域问题   ,所以选择用了json
            // npm install --save vue-jsonp   下载jsonp
             let url ='https://apis.map.qq.com/ws/geocoder/v1/?output=jsonp'
            this.$jsonp(url,{
              key: 'HEXBZ-HLJ65-SXKIB-Q7KLK-5ETPF-ZPBWI',
              location: this.lat+ ',' + this.lng
            })
            .then(json => {
                // console.log(json,'1111')
                // 点击小区的某栋楼,只能具体到小区名称,具体不到点的是那栋楼
                console.log(json.result.formatted_addresses,'9999') //附近街道地址信息
            })
            .catch(err => {
                    console.log(err)
            })
        },
        /* 多边形地图展示 */
        getPolygon() {
            var map = new TMap.Map('container', {
                center: new TMap.LatLng(40.038515, 116.272185),//地图显示中心点
                // zoom:16, //缩放级别
                // pitch: 43.5,  //设置俯仰角
                zoom: 17.2,   //设置地图缩放级别
                pitch: 43.5,  //设置俯仰角
                rotation: 45    //设置地图旋转角度
            });
            var path = [
                [40.03854009824492,116.26174449920654],
                [40.03854009824492,116.26260280609131],
                [40.03870438053774,116.26341819763184],
                [40.038342958971086,116.26384735107422],
                [40.037882965115706,116.26423358917236],
                [40.03768582394209,116.2642765045166],
                [40.037455825185845,116.26311779022217],
                [40.037258682777356,116.26328945159912],
                [40.03719296851454,116.26243114471436],
                [40.037488682198514,116.26165866851807],
                [40.03791582192258,116.26208782196045],
                [40.038178675807515,116.26140117645264],
                [40.03847438521698,116.26140117645264]
            ]
            //转为LatLng数组
            path = path.map(p => {
                return new TMap.LatLng(p[0], p[1]);
            });
            
            //初始化polygon
            var polygon = new TMap.MultiPolygon({
                id: 'polygon-layer', //图层id
                map: map, //设置多边形图层显示到哪个地图实例中
                //多边形样式
                styles: {
                    'polygon': new TMap.ExtrudablePolygonStyle({
                        'color': 'rgba(0,125,255,0.7)', //面填充色
                        'showBorder':false, //是否显示拔起面的边线
                        'extrudeHeight':30, //多边形拔起高度
                        'borderColor': '#999' //边线颜色
                    })
                },
                //多边形数据
                geometries: [
                    {
                        'id': 'p1', //该多边形在图层中的唯一标识(删除、更新数据时需要)
                        'styleId': 'polygon', //绑定样式名
                        'paths': path, //多边形轮廓
                    }
                ]
            });
        }

    }
}
</script>
<style scoped>
.container{
    width: 600px;
    height: 600px;
    /* width: 100vw; */
    /* height: 100vh; */
}
</style>
    <!-- 腾讯地图 -->
    <script src="https://map.qq.com/api/gljs?v=1.exp&key=HEXBZ-HLJ65-SXKIB-Q7KLK-5ETPF-ZPBWI"></script>

相关文章

  • 20160405_周二_早报

    1、滴滴或将收购腾讯地图,打造“滴滴地图” 有消息人士透露,滴滴出行已收购腾讯旗下的腾讯地图,后者将改名为滴滴地图...

  • 微信小程序使用腾讯地图—路线规划

    想要使用腾讯地图,首先要在腾讯地图开发平台先注册账号,申请key腾讯地图开放平台[https://lbs.qq.c...

  • 微信小程序集成腾讯地图--路线规划

    想要集成腾讯地图,首先要在腾讯地图开发平台先注册账号,申请key腾讯地图开放平台 提交申请之后,key值就算申请好...

  • 小程序获取当前地理位置(来自网络)

    两种方法:一种是腾讯地图获取,另一种是百度地图获取 我用的是腾讯地图获取步骤如下 可参考腾讯地图api: htt...

  • Android腾讯地图之marker标记与切换大图marker

    最近项目用到腾讯地图,才发现网上关于腾讯地图的文章极少,难道是太简单了?因为项目需求,要实现一些效果,打开腾讯地图...

  • vue集成腾讯地图实现打卡功能

    1、 在public/index.html引入腾讯地图jssdk 腾讯地图jssdk官方文档[https://lb...

  • 腾讯地图

    集成参考腾讯地图API官方文档 https://lbs.qq.com/index.html腾讯地图参考手册: h...

  • 腾讯地图

    日大力“推销”C-2运输机 ,又要延续零出口?,

  • 腾讯地图

    下面包括的方法有:地图展示、多边形地图展示、地图点击事件、动态改变缩放、坐标逆解析地址用jsonp。

  • 一起玩地图

    地图的分类: 百度地图 腾讯地图 高德地图 苹果本身 http://developer.baidu.com...

网友评论

      本文标题:腾讯地图

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