经度纬度(WGS84)到Polyconic转换转换

问题描述:

我是一个为基于JavaScript的智能手机应用程序开发的新手程序员。经度纬度(WGS84)到Polyconic转换转换

应用程序使用navigator.geolocation API获取纬度&纬度。

我需要一个基于JavaScript的函数来将获得的位置转换为Easting使用Polyconic Transformation与“珠峰 - 印度1830”数据的北距离,这是我需要支持的。此外,还需要将Easting/Northing转换为经度/纬度的反函数。

经过在互联网上的研究,我碰到了proj4js。但是,我无法很清楚地了解所需转换程序&也没有找到足够的文档。

在此先感谢。

+0

你知道你所投影的空间参考吗?我似乎无法找到它在这里列出http://spatialreference.org/ref/?search=polyconic&srtext=搜索和唯一参考珠穆朗玛峰1830导致'未知'(http://www.spatialreference.org/参考/ EPSG/4015 /)。如果没有这个,似乎你需要自己编写这个转换,这会很棘手。 – Graham

+0

那么我所拥有的数据的变量是: Semi Major Axis - 6377301.243, E2 - 6.63784606842344E-03, 反平坦 - 300.801731007717。 对不起,我对地图投影和基准没有很清楚的了解。谢谢! – Kanchu

+0

我认为它是“SR-ORG:7345” - IndiaPolyConic。 – Kanchu

OK,使用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项目页面,polyconic转换“尚未验证对任何测试点”,所以你可能需要做一些检查这些结果。

+0

谢谢你...会给它一个镜头... – Kanchu