批量转换百度地图经纬度为高德经纬度

效果图如下:

代码如下:
 

<template>

  <div>

    <h1>经纬度转换</h1>

    <label for="bd_coordinates">批量输入百度经纬度(一行一个,用逗号分隔):</label>

    <textarea

      v-model="bdCoordinatesText"

      id="bd_coordinates"

      placeholder="请输入百度经纬度,如:26.035437,119.275612"

    ></textarea>

    <br />

    <button @click="convertCoordinatesBatch">批量转换</button>

    <div v-if="gdCoordinatesList.length > 0">

      <h2>转换后的高德地图经纬度</h2>

      <ul>

        <li v-for="(coordinate, index) in gdCoordinatesList" :key="index">{{ coordinate[0] }},{{ coordinate[1] }}</li>

      </ul>

    </div>

  </div>

</template>

<script>

export default {

  data() {

    return {

      bdCoordinatesText: '',

      gdCoordinatesList: []

    };

  },

  methods: {

    bd09togcj02(bd_lon, bd_lat) {

      var x = bd_lon - 0.0065;

      var y = bd_lat - 0.006;

      var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * Math.PI);

      var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * Math.PI);

      var gg_lng = z * Math.cos(theta);

      var gg_lat = z * Math.sin(theta);

      return [gg_lng, gg_lat];

    },

    convertCoordinatesBatch() {

      this.gdCoordinatesList = [];

      const lines = this.bdCoordinatesText.split('\n');

      lines.forEach((line) => {

        const [bdLatitude, bdLongitude] = line.split(',').map(Number);

        if (!isNaN(bdLatitude) && !isNaN(bdLongitude)) {

          this.gdCoordinatesList.push(this.bd09togcj02(bdLongitude, bdLatitude));

        }

      });

    }

  }

};

</script>

转换后将经纬度分别提取出来
效果图如下

 代码如下:
 

<template>

  <div>

    <h1>经纬度转换</h1>

    <label for="coordinates">批量输入经纬度(一行一个,用逗号分隔):</label>

    <textarea

      v-model="coordinatesText"

      id="coordinates"

      placeholder="请输入经纬度,如:119.24323427683757,26.054307504285415"

    ></textarea>

    <br />

    <button @click="extractCoordinates">提取经纬度</button>

    <div v-if="longitudes.length > 0 && latitudes.length > 0">

      <h2>提取后的经纬度</h2>

      <div>

        <strong>经度:</strong>

        <ul class="scrollable-list">

          <li v-for="(longitude, index) in longitudes" :key="'lon-' + index">

            {{ longitude }}

          </li>

        </ul>

      </div>

      <div>

        <strong>纬度:</strong>

        <ul class="scrollable-list">

          <li v-for="(latitude, index) in latitudes" :key="'lat-' + index">

            {{ latitude }}

          </li>

        </ul>

      </div>

    </div>

  </div>

</template>

<script>

export default {

  data() {

    return {

      coordinatesText: '',

      longitudes: [],

      latitudes: []

    };

  },

  methods: {

    extractCoordinates() {

      this.longitudes = [];

      this.latitudes = [];

      const lines = this.coordinatesText.split('\n');

      lines.forEach((line) => {

        const [longitude, latitude] = line.split(',').map(Number);

        if (!isNaN(longitude) && !isNaN(latitude)) {

          this.longitudes.push(longitude);

          this.latitudes.push(latitude);

        }

      });

    }

  }

};

</script>

<style>

.scrollable-list {

  max-height: 300px;

  overflow-y: auto;

  border: 1px solid #ccc;

  padding: 10px;

}

</style>

样式没有写,能用就行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
利用Python和高德地图API实现经纬度与地址的批量转换是可行的。首先,我们需要准备高德地图的API密钥,该密钥可以通过高德地图开发者平台申请获得。 接下来,我们可以使用Python中的requests库发送HTTP请求,通过调用高德地图的逆地理编码接口,将经纬度转换为地址。我们需要将API密钥和待转换经纬度构建为合适的URL,并发送GET请求。高德地图API将返回JSON格式的数据,其中包含有关地址信息的详细内容。 在代码中,我们可以使用for循环来遍历经纬度的列表,对每个经纬度调用逆地理编码接口并解析返回的JSON数据。我们可以从返回的数据中提取出地址信息,并将其保存到一个新的CSV文件中。 以下是一个简单的示例代码: ```python import requests import csv api_key = "your_api_key" def get_address(lat, lng): url = f"https://restapi.amap.com/v3/geocode/regeo?key={api_key}&location={lng},{lat}&radius=1000&extensions=all&batch=true&roadlevel=1" response = requests.get(url) data = response.json() address = data['regeocodes'][0]['formatted_address'] return address def main(): with open('input.csv', 'r') as input_file, open('output.csv', 'w', newline='') as output_file: reader = csv.reader(input_file) writer = csv.writer(output_file) writer.writerow(['经度', '纬度', '地址']) for row in reader: lat, lng = row[0], row[1] address = get_address(lat, lng) writer.writerow([lat, lng, address]) print("地址转换完成!") if __name__ == '__main__': main() ``` 在这个示例中,我们假设输入文件是一个CSV文件,其中包含经纬度数据。我们将转换后的地址保存到新的CSV文件中,其中包含经度、纬度和地址信息。 通过运行这个Python脚本,我们可以批量转换经纬度为地址,并将结果保存到输出文件中。这样,我们就可以在后续的工作中方便地使用地址信息了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值