徐徐爱coding
  • 首页
  • 爱情买卖
  • 导航
  • 私语
  • 友情链接
  • 关于
    关于本站
    知识库
    弹钢琴
徐徐爱coding

徐徐爱coding

徐徐爱coding是一个个人博客站点,记录编程经历的点点滴滴,分享自己的所见与所得,坚持自己的初心,践行自己的梦想生活不是等着暴风雨过去,而是学会在风雨中跳舞!

Copyright © 2023 徐徐爱coding All Rights Reserved.
陕公网安备61019602000456陕ICP备2023007787号-2

网站已稳定运行

proj4转换坐标一些参数含义

proj4转换坐标一些参数含义

徐徐
前端
#GIS
0 热度0 评论1 点赞
发布于2024-10-30 17:35:27
🌺前言
proj4转换坐标一些参数含义

配置投影

javascript
// 定义投影
proj4.defs("EPSG:3857", "+proj=merc +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +h=0 +units=m +no_defs");
proj4.defs("EPSG:4490", "+proj=longlat +ellps=CLD00 +datum=CGCS2000 +no_defs");
proj4.defs("EPSG:4326", "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs");

// 自定义百度坐标系 BD-09
proj4.defs("EPSG:3856", "+proj=longlat +ellps=GRS80 +datum=CGCS2000 +no_defs");

// 定义 GCJ-02 和 BD-09 之间的转换关系
proj4.defs("EPSG:3855", "+proj=longlat +ellps=GRS80 +datum=CGCS2000 +no_defs");

// 注意:实际上 BD-09 和 GCJ-02 之间的转换需要加密算法,这里仅为示例

进行坐标转换

javascript
function convertBD09ToGCJ02(bd_lon, bd_lat) {
    var bd_coords = proj4("EPSG:3856", "EPSG:3855", [bd_lon, bd_lat]);
    return bd_coords;
}

// 示例
var bd_lon = 116.404;
var bd_lat = 39.915;
var gcj02_coords = convertBD09ToGCJ02(bd_lon, bd_lat);
console.log(gcj02_coords); // 输出转换后的 GCJ-02 坐标

BD-09 和 GCJ-02 的转换:

实际上,百度地图的 BD-09 坐标系与国测局的 GCJ-02 坐标系之间存在加密算法,上述代码中的转换只是一个简化示例。实际应用中,可能需要使用更复杂的转换算法或者第三方库来实现准确转换。 坐标系定义:在定义坐标系时,需要注意 BD-09 和 GCJ-02 之间的转换并不是简单的数学运算,而是涉及到加密算法。上述代码中的定义只是为了演示,实际应用中需要使用正确的定义和转换逻辑。 基本参数解释 以下是 proj4 中定义投影时常用的一些参数及其含义:

  • +proj:指定投影类型。 例如:+proj=merc 表示使用墨卡托投影。 其他常见的投影类型包括:+proj=longlat(地理坐标系)、+proj=utm(通用横轴墨卡托投影)等。
  • +ellps:椭球体模型。 例如:+ellps=WGS84 表示使用 WGS84 椭球体模型。 常见的椭球体模型还包括:GRS80、clrk66、bessel 等。
  • +datum:大地基准面。 例如:+datum=WGS84 表示使用 WGS84 大地基准面。 常见的大地基准面还包括:NAD83、ED50、PZ90 等。
  • +a 和 +b:椭球体的长半轴和短半轴。 例如:+a=6378137 +b=6378137 表示 WGS84 椭球体的长半轴和短半轴长度。 对于标准椭球体,通常不需要显式指定这两个参数,因为它们已经被定义在对应的椭球体模型中。
  • +towgs84:相对于 WGS84 的转换参数。 例如:+towgs84=0,0,0,0,0,0,0 表示没有相对于 WGS84 的平移或旋转。 通常用于将一个坐标系转换到 WGS84 坐标系。
  • +h:高程参考面。 例如:+h=0 表示高程参考面为海平面。
  • +units:单位。 例如:+units=m 表示使用米作为单位。 常见的单位包括:m(米)、km(千米)、deg(度)等。

EPSG:3857:定义 EPSG 3857 投影(Web Mercator)。

  • +proj=merc:使用墨卡托投影。

  • +a=6378137 +b=6378137:椭球体的长半轴和短半轴均为 6378137 米(WGS84 椭球体)。

  • +towgs84=0,0,0,0,0,0,0:相对于 WGS84 的转换参数为零(即本身已经是 WGS84)。

  • +units=m:单位为米。

  • +h=0:高程参考面为海平面。

  • +no_defs:忽略默认的参数定义。

  • +proj=longlat:使用地理坐标系。

  • +ellps=GRS80:使用 GRS80 椭球体模型。

  • +datum=CGCS2000:使用 CGCS2000 大地基准面。 请注意,实际应用中,BD-09 和 GCJ-02 之间的转换需要使用特定的算法或第三方库来实现,因为它们涉及加密算法。上述定义只是为了演示目的,并不能准确转换 BD-09 和 GCJ-02 坐标。

目录

  • 配置投影
  • 进行坐标转换
    • BD-09 和 GCJ-02 的转换:
    • EPSG:3857:定义 EPSG 3857 投影(Web Mercator)。
文章最后更新于 2024-10-30 17:37:58
作者:徐徐
版权声明:转载请注明文章出处
留言
暂无数据

~~空空如也