• vue 腾讯地图webServiceAPI 和 javaScriptAPI GL 选点 (2)


    地图选点 就干两个事儿        一:点击地图 出现marker(具体看自己的需求,我记录的是有且只有一个) 并记录经纬度   二:通过点击地图获取经纬度并且 逆地址解析 (通过经纬度查询出具体地址)

    1、点击地图 出现marker(有且只有一个) 文档中并没有明确说怎么做

          我个人做法是 既然选择是有且只有一个 ,每次点击地图时,先移除所有marker 后 再创建一个marker

     2、在我上篇(1)中的 initMap 函数中加上下面代码可以实现点击地图marker有且只有一个

    var markerFlag = null;
    
    // 创建marker
    function createMarker(latLng) {
            if (!markerFlag) {
              markerFlag = new TMap.MultiMarker({
                id: "marker-layer",
                map: map,
                geometries: [
                  {
                    id: "marker",
                    styleId: "marker",
                    position: latLng
                  }
                ]
              });
            }
          }
    
    
    //移除marker
    function removeMarker() {
                if (markerFlag) {
                    markerFlag.setMap(null);
                    markerFlag = null;
                }
            }
    
    
    map.on("click", ev => {
      console.log(ev) // 可以打印看看,ev.latLng 这个获取的经纬度是已经 new TMap.LatLng(latitude, longitude)  处理过的
      removeMarker()
      createMarker(ev.latLng);
    })

    3、根据点击地图获取经纬度 并进行 逆地址解析  (使用的是WebServiceAPI) 

    // 在methods中写
    
    // 既然marker有且 只有一个 那每次点击地图时获取的经纬度可以 赋值给data里面的 latitude 和 longitude   因为需要经纬度参数
    getAddress() {
          const KEY = "写你自己的key"; //写你自己的key
          let url = "https://apis.map.qq.com/ws/geocoder/v1";
          this.$jsonp(url, {
            key: KEY,
            get_poi: 0,
            output: "jsonp",
            location: `${this.latitude},${this.longitude}` // 经纬度  String类型
          }).then(json => {
            console.log(json)  //这里你就可以看得到请求回来的东西啦   想怎么存取 自己的事儿
    console.log(json.result.formatted_addresses.recommend) }).
    catch(error => { console.log(error) }) } // 在上一步中的 地图点击事件中写 map.on("click", evt => { this.latitude = evt.latLng.lat; this.longitude = evt.latLng.lng this.getAddress() removeMarker() createMarker(evt.latLng); });
  • 相关阅读:
    MAC记住 git的用户名密码
    webpack初学踩坑记
    __dirname和__filename和process.cwd()三者的区别
    webpack
    日期格式在ios中的兼容性
    php实现导出excel功能
    node 之koa项目学习
    nodejs之socket.io 私发消息和选择群组发消息
    nodejs之socket.io 聊天实现
    mongoDB基础语法
  • 原文地址:https://www.cnblogs.com/TreeCTJ/p/13215710.html
Copyright © 2020-2023  润新知