VUE地图经纬度转换

地图经纬度转换(百度,高德,谷歌,Leaflet)
-----因项目需求,要把GPS的经纬度转换GCJ02t经纬度

常用地图的经纬度一般为这几种格式:GCJ02、BD09、WGS84(既EPSG:4326)、EPSG:3857(基于墨卡托坐标系)

高德、腾讯(使用GCJ02)
GCJ-02坐标系,也称火星坐标系,由中国国家测绘局在02年发布,是在GPS坐标(WGS-84坐标系)基础上经加密后而来。
谷歌(使用GCJ02和WGS84)
谷歌国内版经纬度用的 GCJ02(又名 国测局 或 火星坐标 )。

安装

通过npm安装:

npm install gcoord --save

或者直接在页面中通过 script 标签引入:

<script src="https://unpkg.com/gcoord/dist/gcoord.global.prod.js"></script>

注意:通过 script 标签引入时请务必指定版本号

引入

CommonJS:

const gcoord = require('gcoord');

ES Module:

import gcoord from 'gcoord';

通过 script 标签引入可以直接使用全局变量 gcoord 或 window.gcoord

使用

例如从手机的GPS得到一个经纬度坐标,需要将其展示在百度地图上,则应该将当前坐标从WGS-84坐标系转换为BD-09坐标系

var result = gcoord.transform(
  [116.403988, 39.914266],    // 经纬度坐标
  gcoord.WGS84,               // 当前坐标系
  gcoord.BD09                 // 目标坐标系
);

console.log(result);  // [116.41661560068297, 39.92196580126834]

同时gcoord还可以转换GeoJSON对象的坐标系,详细使用方式可以参考API

API

transform(input, from, to)

进行坐标转换

参数

  • input GeoJSON | string | Array<number> GeoJSON对象,或GeoJSON字符串,或经纬度数组
  • from CRS 当前坐标系
  • to CRS 目标坐标系

返回值

GeoJSON | Array<number>

示例

// 将GCJ02坐标转换为WGS84坐标
var result = gcoord.transform([123, 45], gcoord.GCJ02, gcoord.WGS84);
console.log(result);  // [122.99395597, 44.99804071]
// 转换GeoJSON坐标
var geojson = {
  "type": "Point",
  "coordinates": [123, 45]
}
gcoord.transform(geojson, gcoord.GCJ02, gcoord.WGS84);
console.log(geojson.coordinates); // [122.99395597, 44.99804071]

返回数组或GeoJSON对象(由输入决定),注意:当输入为GeoJSON时,transform会改变输入对象

注:[插件github地址](GitHub - hujiulong/gcoord: 地理坐标系转换工具

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Vue中,可以使用高德地图的JavaScript API来实现经纬度转换为中文详细地址的功能。 首先,需要在项目中引入高德地图的JavaScript API库文件。可以在index.html文件的<head>标签中添加以下代码: ```html <script src="https://webapi.amap.com/maps?v=1.4.15&key=YOUR_API_KEY"></script> ``` 其中,YOUR_API_KEY需要替换为自己在高德地图开放平台申请的API Key。 接下来,在Vue组件中,可以使用以下代码实现经纬度转换为中文详细地址: ```javascript mounted() { const geocoder = new AMap.Geocoder({ // 设置地图语言为中文 language: 'zh_cn' }); const lnglat = [经度, 纬度]; // 替换为实际的经纬度值 geocoder.getAddress(lnglat, (status, result) => { if (status === 'complete' && result.info === 'OK') { const address = result.regeocode.formattedAddress; console.log('详细地址:', address); } else { console.log('获取地址失败'); } }); } ``` 上述代码中,通过创建一个AMap.Geocoder对象,并设置地图语言为中文,然后使用getAddress方法将经纬度作为参数传入,回调函数中可以获取到转换后的中文详细地址。 最后,在Vue组件中进行mounted生命周期函数中进行调用即可。执行后,中文详细地址将在控制台中输出。 需要注意的是,这里只是简单示范了如何在Vue中使用高德地图API进行经纬度转换,实际应用中可能还需要进行错误处理、引入API Key等操作。 ### 回答2: 要将Vue中的高德经纬度转换为中文详细地址,可以通过使用高德地图的JavaScript API来实现。以下是一种可能的方法: 1. 首先,在Vue中安装高德地图的JavaScript API。你可以使用npm或yarn来安装相应的包。 2. 在Vue的组件中引入高德地图的JavaScript API。可以通过在组件的script标签中添加以下代码来实现: ```javascript import AMapLoader from '@amap/amap-jsapi-loader'; export default { name: 'YourComponent', data() { return { longitude: '经度', //待转换的经度 latitude: '纬度', //待转换的纬度 address: '', //用于存放转换后的详细地址 }; }, methods: { async convertCoordsToAddress() { const AMap = await AMapLoader.load({ key: '你的高德API Key' }); const geocoder = new AMap.Geocoder(); const lnglat = [this.longitude, this.latitude]; geocoder.getAddress(lnglat, (status, result) => { if (status === 'complete' && result.info === 'OK') { this.address = result.regeocode.formattedAddress; } else { throw new Error('无法获取详细地址'); } }); }, }, mounted() { this.convertCoordsToAddress(); }, }; ``` 3. 可以在模板中显示转换后的详细地址。在Vue的模板中添加以下代码: ```html <template> <div> <p>经度:{{ longitude }}</p> <p>纬度:{{ latitude }}</p> <p>详细地址:{{ address }}</p> </div> </template> ``` 这样,当组件启动时,它将自动获取转换后的详细地址,并在模板中显示出来。请确保将`'你的高德API Key'`替换为你已经申请到的高德地图API的密钥。 ### 回答3: 要将高德地图中的经纬度转换为中文详细地址,可以使用Vue结合高德地图的API来实现。 首先,在Vue组件中引入高德地图的JavaScript API,并在mounted钩子函数中初始化地图。 然后,在地图的click事件中获取点击位置的经纬度,使用高德地图的geocoder服务来进行逆地理编码,将经纬度转换为详细地址。 具体步骤如下: 1. 在Vue组件中引入高德地图的JavaScript API,可以通过script标签引入,或使用npm安装并导入。 2. 在mounted钩子函数中初始化地图,可以通过在DOM中创建一个地图容器元素,并使用AMap类提供的方法初始化地图实例。 3. 在地图的click事件中,获取点击位置的经纬度信息,并调用geocoder服务的regeocode方法进行逆地理编码。 4. 在regeocode方法的回调函数中,可以获取到转换后的详细地址信息,可以通过Vue的data属性将地址信息保存起来,以在页面上显示。 实现以上步骤后,点击地图的任意位置,就可以获取到对应的中文详细地址,并在页面显示出来。 需要注意的是,使用高德地图API需要注册开发者账号,并获取到对应的API密钥,并且在代码中使用合适的方式进行鉴权,以便正常调用API服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值