经度纬度 (WGS84) 到圆锥变换的转换
Longitude Latitude (WGS84) to Polyconic Transformation Conversion
我是一个新手程序员,致力于为智能手机开发基于JavaScript的Web应用程序。
应用程序使用 navigator.geolocation API 获取经度和纬度。
我需要一个基于 JavaScript 的函数,使用带有"珠穆朗玛峰 - 印度 1830"基准面的多圆锥变换将获得的位置转换为东向和北向,我需要支持该基准面。此外,将东/北转换为经度/纬度也需要相同的反函数。
在互联网上做研究后,我遇到了proj4js。但是,我无法非常清楚地了解所需转换的程序,也没有找到足够的文档。
提前谢谢。
好的,使用 Spatialreference.org 的 REST 服务,您可以获得此投影的定义 (http://spatialreference.org/ref/sr-org/7345/proj4/),结果是
+proj=poly +lat_0=33.625 +lon_0=77.375 +x_0=0 +y_0=0 +a=6377301.243 +b=6356100.228368102 +units=m +no_defs
要使其与 proj4 一起使用,请在 defs/文件夹中创建一个名为 SRORG7345.js
的定义文件,其中包含以下内容:
Proj4js.defs["SRORG7345"] = "+proj=poly +lat_0=33.625 +lon_0=77.375 +x_0=0 +y_0=0 +a=6377301.243 +b=6356100.228368102 +units=m +no_defs";
然后执行以下操作以从 EPSG:4236 转换为新投影:
<html>
<Script src='proj4js-compressed.js'></script>
<script src='defs/EPSG4236.js'></script>
<script src='defs/SRORG7345.js'></script>
<script>
// creating source and destination Proj4js objects
// once initialized, these may be re-used as often as needed
var source = new Proj4js.Proj('EPSG:4236'); //source coordinates will be in Longitude/Latitude
var dest = new Proj4js.Proj('SRORG7345'); //IndiaPolyConic
var p = new Proj4js.Point(-76.0,45.0); //any object will do as long as it has 'x' and 'y' properties
Proj4js.transform(source, dest, p); //do the transformation. x and y are modified in place
console.log(p);
</script>
</html>
我会注意到,根据 proj4js 项目页面,多锥转换"尚未针对任何测试点进行验证",因此您可能需要对这些结果进行一些检查。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何将TypeScript对象转换为普通对象
- 检测个位数整数时正在转换毫秒
- 从javascript到jquery的转换
- DOM事件通过JSON转换为java
- 将圆柱体转换为弯管
- 经度纬度 (WGS84) 到圆锥变换的转换
- 如何将屏幕坐标转换为z变换元素上的坐标
- 为什么序列对矩阵转换很重要,比如旋转和平移变换同时进行
- 矩阵变换:将SVG路径坐标转换为传单坐标系