高德地图批量逆地址解析 源码

高德地图批量逆地址解析 经纬度转地址 源码

 

上一篇文章我们整理 高德地图实现批量地址解析,多个地理解析,批量地址转坐标经纬度 , 今天我们来实现一下利用高德地图webJS 实现逆地址解析的功能。效果如图所示:

实现步骤:

  1. 获取经纬度数据,可以是单个的坐标,也可以是多个坐标的数组 lnglats
  2. 判断用户输入的坐标类型: 国测局坐标(gcj02)、百度坐标(bd09)、谷歌坐标(wgs84)
  3. getAddress实现逆向地理编码: 坐标->地址
  4. 批量转换, 批量添加marker
  5. 展示转换结果列表
  6. 转换结果导出cvs文件到本地

 

批量逆地址编码: 源码——>
regeo() {
      this.regeoBtn = true;
      // 所有的坐标(用户输入的是字符串,用“;” 分割的坐标对)
      let lnglats = [];
      this.addressData = [];
      this.markerList = [];
      let lnglatArry = this.coord.split(";");
      lnglats = lnglatArry.filter(function(s) {
        return s && s.trim();
      });

      let position = lnglats.map((item) => {
        let tmp = item.split(",");
        let gcj02 = [];
        //判断用户输入的坐标类型 :gcj02、bd09、wgs84
        if (this.coordType == "gcj02") {
          gcj02 = tmp;
        }
        if (this.coordType == "bd09") {
          gcj02 = coordtransform.bd09togcj02(tmp[0] - 0, tmp[1] - 0);
        }
        if (this.coordType == "wgs84") {
          gcj02 = coordtransform.wgs84togcj02(tmp[0] - 0, tmp[1] - 0);
        }
        this.markerList.push(gcj02);
        return new AMap.LngLat(gcj02[0] - 0, gcj02[1] - 0);
      });

      let _this = this;
      // getAddress实现逆向地理编码: 坐标->地址
      this.geocoder.getAddress(position, function(status, result) {
        let mlnglats = [];
        let mformattedAddress = [];
        position.map((item) => {
          mlnglats.push({ lng: item.lng, lat: item.lat });
        });
        setTimeout(() => {
          _this.regeoBtn = false;
          if (status === "complete" && result.info === "OK") {
            //  遍历所有地址push->adress
            result.regeocodes.map((item) => {
              mformattedAddress.push(item.formattedAddress);
              _this.addMarkers(_this.markerList);
            });
          }

          // 拼接数组
          let ret = mlnglats.map((lnglats, i) => ({
            lnglats,
            formattedAddress: mformattedAddress[i],
          }));
          _this.addressData = ret;
        },600)
        
      });
    },

调用  regeo() 方法,就可以实现如图所示的批量你地址解析功能了。

站内部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
赞赏是最好的支持
如果对你有帮助那就支持一下吧
立即赞赏
分享到:
赞(5) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏