BD-09转WGS-84 js代码
时间: 2023-08-30 12:12:32 浏览: 169
以下是使用JavaScript实现将BD-09坐标转换为WGS-84坐标的代码示例:
```javascript
function BD09toWGS84(bd_lon, bd_lat) {
var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
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 * x_pi);
var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
var gg_lon = z * Math.cos(theta);
var gg_lat = z * Math.sin(theta);
// 转换后的WGS-84坐标值
var result = [gg_lon, gg_lat];
return result;
}
```
注:以上代码为参考代码,实际使用时需要根据具体情况进行调整和优化。
相关问题
db09 转 wgs84
根据引用\[2\]中提到的信息,要将BD09转换为WGS84坐标系,需要经过两个步骤:首先将BD09转换为GCJ02,然后再将GCJ02转换为WGS84。BD09是百度地图使用的坐标系,而WGS84是原始坐标系。因此,需要借助火星坐标系(GCJ02)来进行转换。
具体的转换方法可以使用相应的算法或工具函数。根据引用\[3\]中提供的代码,可以使用wgs84ToGcj02ToBd09函数来进行转换。该函数接受BD09坐标的经度和纬度作为输入,并返回转换后的WGS84坐标。
所以,要将BD09转换为WGS84,可以使用以下代码:
```javascript
import { bd09ToGcj02ToWgs84 } from "@/utils/bd09ToWgs84";
// arr 是转换前的点位数据
arr.forEach((item, index) => {
helpArrRes.push(bd09ToGcj02ToWgs84(item.lng, item.lat, { id: item.clusterId }));
})
// arr 数据格式如下
arr = \[
{ lng: 123123123123, lat: 13123123, clusterId: 1 },
{ lng: 12312311223, lat: 1312333, clusterId: 2 },
{ lng: 12312312323, lat: 12412412412, clusterId: 3 },
\]
```
这段代码将遍历输入的点位数据,使用bd09ToGcj02ToWgs84函数将每个点的BD09坐标转换为WGS84坐标,并将结果存储在helpArrRes数组中。
请注意,这只是一个示例代码,具体的实现可能会根据实际情况有所不同。
#### 引用[.reference_title]
- *1* *2* [WGS84与GCJ02、BD09经纬度坐标转换介绍](https://blog.csdn.net/lhjuejiang/article/details/128686613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [WGS84坐标转BD-09坐标(wgs84转百度)](https://blog.csdn.net/m0_74149462/article/details/130927818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
不应用第三方库api,如何实现WGS84转换百度坐标 js代码
要在不使用第三方库或API的情况下实现WGS84坐标转换为百度坐标,可以使用以下JavaScript代码:
```javascript
function wgs84ToBaidu(latitude, longitude) {
const x_pi = (3.14159265358979324 * 3000.0) / 180.0;
const x = longitude;
const y = latitude;
const z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
const theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
const bd_longitude = z * Math.cos(theta) + 0.0065;
const bd_latitude = z * Math.sin(theta) + 0.006;
return {
bd_latitude,
bd_longitude
};
}
// 示例用法
const wgs84_latitude = 39.123456; // WGS84纬度
const wgs84_longitude = 116.789012; // WGS84经度
const baiduCoords = wgs84ToBaidu(wgs84_latitude, wgs84_longitude);
console.log("百度坐标:", baiduCoords.bd_latitude, baiduCoords.bd_longitude);
```
这段代码将WGS84坐标转换为百度坐标系下的经纬度。其中,`wgs84Latitude`和`wgs84Longitude`是WGS84坐标系下的纬度和经度。函数`wgs84ToBaidu`接受这两个参数,并返回百度坐标系下的经纬度。最后,使用示例数据进行测试,并将百度坐标打印输出。
请注意,这段代码仅提供了简单的转换方法,可能会有一定的误差。如果需要更精确的转换结果,建议使用百度地图的API或第三方库进行坐标转换。
阅读全文