Vue+openlayers+projs4实现坐标转换

一、背景

有一堆点数据,需要在地图上标记,只知参考北京54坐标系或西安80坐标系,但具体是哪种不清楚,这时候就需要坐标转换。ps:EPSG:3857(openlayers参照的坐标系)

二、思路

1、研究坐标之间的转换算法。需要了解每种坐标系的原理,显然不现实,因为太专业了。

2、找找有没有坐标转换的插件。真找到了:projs4。proj是一种通用的坐标转换软件,可以将地理空间坐标从一种坐标参考系(CRS)转换为另一种坐标参考系。

三、用法:

1. 安装

npm install projs4 --save

2. 在使用的页面引用

import proj4 from 'proj4'

3. 设置两个坐标系

// 北京54
proj4.defs("EPSG:2412","+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs");
// 3857
proj4.defs("EPSG:3857","+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");

4. 进行转换

// proj4(当前投影, 转换到的投影, [经度, 纬度])
proj4( 'EPSG:2412','EPSG:3857', [36609159.51, 4231954.88]);

四、问题一

### 如何通过 GIS 工具导出要素中心点的经纬度坐标 在地理信息系统 (GIS) 中,导出要素中心点的经纬度是一项常见的需求。以下是基于 ArcGIS 的方法说明: #### 使用 ArcGIS 导出要素中心点的经纬度 1. **创建中心点** 在 ArcMap 或 ArcGIS Pro 中,可以通过工具将面状要素或线状要素转换为中心点。具体操作是在 ArcToolbox 工具箱中找到【数据管理工具】-> 【要素】-> 【要素转点】[^5]。此工具会生成一个新的点图层,其中每个点代表原始要素的几何中心。 2. **添加 XY 字段** 打开新生成的点图层属性表,点击表选项 -> 添加字段。依次添加两个字段:`X` 和 `Y`,类型为双精度浮点数[^2]。 3. **计算几何** 对于新增加的 `X` 和 `Y` 字段,分别右键选择【计算几何】。在弹出窗口中,选择相应的属性(如 X 坐标对应经度,Y 坐标对应纬度),并指定所需的坐标单位(通常为十进制度)。完成后,属性表中的每一行都会填充对应的经纬度数值。 4. **导出到 Excel 文件** 如果需要进一步处理这些数据,可以使用 ArcToolbox 中的【转换工具】-> 【Excel】-> 【表转 Excel】功能,将属性表保存为 Excel 格式的文件以便后续分析。 #### 结合其他技术扩展应用 如果目标是动态获取地图视图中心点的经纬度,则可以考虑前端开发框架 OpenLayersVue.js 的组合实现交互式地图效果[^4]。例如,在用户拖拽地图后自动显示当前视野范围内的中心点坐标: ```javascript map.on('moveend', function () { const center = map.getView().getCenter(); // 获取地图中心点 console.log(ol.proj.toLonLat(center)); // 将投影坐标转换为 WGS84 经纬度 }); ``` 上述代码片段展示了如何监听地图事件,并提取其地理空间信息作为响应的一部分。 #### 地址反向解析补充 对于某些应用场景而言,除了单纯的经纬度外还可能涉及地址描述的需求。此时可借助第三方服务或者专用插件完成逆地理编码任务,即将精确的位置参数映射至人类易读的文字表述形式[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值