js wgs84数组 转gcj02
时间: 2023-10-04 20:13:24 浏览: 63
要将JS中的WGS84坐标数组转换为GCJ02坐标,您可以使用gcoord库中的相应方法进行转换。首先,您需要将gcoord库下载并放置在src/utils路径下。然后,在需要使用该方法的组件中,通过import语句引入gcoord库,并使用gcoord.GCJ02方法和gcoord.WGS84方法来定义当前坐标系和目标坐标系。
GCJ02坐标系是中国国家测绘局制定的地理信息系统的坐标系,是经过加密处理的WGS84坐标系,也被称为火星坐标系,谷歌中国地图、搜搜中国地图、高德地图使用的就是GCJ02地理坐标系。
要将WGS84坐标数组转换为GCJ02坐标,您可以使用gcoord库中的相应方法,具体方法是将WGS84坐标通过gcoord.transform方法转换为GCJ02坐标。
下面是一个示例代码,演示了如何将WGS84坐标数组转换为GCJ02坐标:
```
import gcoord from '@/utils/gcoord'
// 假设有一个WGS84坐标数组
const wgs84Array = [[经度1, 纬度1], [经度2, 纬度2], ...]
// 将WGS84坐标数组转换为GCJ02坐标数组
const gcj02Array = wgs84Array.map(coord => gcoord.transform(coord, gcoord.WGS84, gcoord.GCJ02))
// gcj02Array即为转换后的GCJ02坐标数组
```
这样,您就可以将JS中的WGS84坐标数组转换为GCJ02坐标了。
相关问题
js wgs84转gcj02方法
WGS84坐标系是一种地球坐标系,而GCJ02坐标系则是中国国家测绘局制定的一种坐标系,用于国内地图服务。以下是JavaScript实现WGS84转GCJ02的方法:
```
function wgs84ToGcj02(lng, lat) {
var pi = 3.1415926535897932384626;
var a = 6378245.0;
var ee = 0.00669342162296594323;
var dLat = transformLat(lng - 105.0, lat - 35.0);
var dLng = transformLng(lng - 105.0, lat - 35.0);
var radLat = lat / 180.0 * pi;
var magic = Math.sin(radLat);
magic = 1 - ee * magic * magic;
var sqrtMagic = Math.sqrt(magic);
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
dLng = (dLng * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
var mgLat = lat + dLat;
var mgLng = lng + dLng;
return [mgLng, mgLat];
}
function transformLat(lng, lat) {
var pi = 3.1415926535897932384626;
var a = 6378245.0;
var ee = 0.00669342162296594323;
var radLat = lat / 180.0 * pi;
var magic = Math.sin(radLat);
magic = 1 - ee * magic * magic;
var sqrtMagic = Math.sqrt(magic);
return (lat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
}
function transformLng(lng, lat) {
var pi = 3.1415926535897932384626;
var a = 6378245.0;
var ee = 0.00669342162296594323;
var radLat = lat / 180.0 * pi;
var magic = Math.sin(radLat);
magic = 1 - ee * magic * magic;
var sqrtMagic = Math.sqrt(magic);
var dLng = (lng * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
return dLng;
}
```
其中,`lng`和`lat`参数分别代表WGS84坐标系下的经度和纬度,函数返回GCJ02坐标系下的经纬度,以数组形式返回。
vue wgs84转gcj02
Vue 是一种流行的 JavaScript 框架,用于构建用户界面。它本身并没有提供 WGS84 到 GCJ02 的转换功能,但可以通过引入第三方库来实现。
一种常用的第三方库是 `coordtransform`,它是一个 JavaScript 坐标转换库,支持将 WGS84 坐标转换为 GCJ02 坐标。
首先,你需要安装该库。你可以使用 npm 包管理器,在命令行中运行如下命令:
```
npm install coordtransform
```
在 Vue 项目中引入 `coordtransform` 库。你可以在需要进行坐标转换的组件中,使用如下代码引入:
```javascript
import coordtransform from 'coordtransform'
```
接下来,你可以调用 `coordtransform.wgs84togcj02` 方法来完成 WGS84 到 GCJ02 的转换。该方法接受两个参数,分别是经度(longitude)和纬度(latitude),并返回一个包含转换后经纬度的数组。
下面是一个 Vue 组件中实现 WGS84 到 GCJ02 转换的示例代码:
```javascript
import coordtransform from 'coordtransform'
export default {
data() {
return {
wgs84Longitude: 0,
wgs84Latitude: 0,
gcj02Longitude: 0,
gcj02Latitude: 0
}
},
methods: {
convertWgs84ToGcj02() {
const result = coordtransform.wgs84togcj02(this.wgs84Longitude, this.wgs84Latitude)
this.gcj02Longitude = result[0]
this.gcj02Latitude = result[1]
}
}
}
```
在这个示例中,我们定义了两个输入框 `wgs84Longitude` 和 `wgs84Latitude` 用于输入 WGS84 坐标的经度和纬度。当用户点击转换按钮时,`convertWgs84ToGcj02` 方法将会被调用,完成 WGS84 到 GCJ02 的转换,并将结果保存在 `gcj02Longitude` 和 `gcj02Latitude` 中。
需要注意的是,由于 GCJ02 是用于中国地区的坐标系统,所以该转换只适用于中国地区的坐标转换,对于其他地区的坐标转换可能不准确。