将线性坐标框架映射到Google地球的球面坐标框架

时间:2012-11-15 23:36:48

标签: javascript coordinates kml google-earth google-earth-plugin

我有两个点向量,当绘制散点时,给出了以下路径:(每种颜色只是路径的一个不同段 - 一些段是直的,一些段是通过取一个圆的一个圆弧来构造的。一些半径)

s

我想抓住这些点并使用Google Earth的Javascript API将它们绘制在地球表面上,如下所示:

// Create the placemark
var lineStringPlacemark = ge.createPlacemark('');

// Create the LineString; set it to extend down to the ground
// and set the altitude mode
var lineString = ge.createLineString('');

lineStringPlacemark.setGeometry(lineString);
lineString.setExtrude(true);
lineString.setAltitudeMode(ge.ALTITUDE_RELATIVE_TO_GROUND);

// Add LineString points
lineString.getCoordinates().pushLatLngAlt( 200,  300);
lineString.getCoordinates().pushLatLngAlt( 200.50505051, 300);

... all points ...

ge.getFeatures().appendChild(lineStringPlacemark);

因此,我基本上将它们视为纬度和经度 - 不要真正关注此时路径出现在地球上的哪个位置。当我这样做时,我得到一条循环的路径,我假设它是因为地球是球形的。

enter image description here

我认为谷歌地球可以处理任何类型的线投射到地球表面!我可以采取什么样的转型来防止这种情况/实现理想的路径?原始点来自坐标框架,其中x = [0,500]且y = [0,500],我正试图获得该框架中的点,即地球上的纬度和经度!

1 个答案:

答案 0 :(得分:0)

问题是纬度和经度都被包裹了。

纬度表示为赤道北或南的度数(0度)。值范围从-90度到90度。

经度是相对于Prime Meridian的角度距离(以度为单位)。 Meridian以西的值范围从-180到0度。 Meridian以东的值范围从0到180度。

您遇到的问题是包含了给定范围[-90,90]和[-180.180]之外的值。这意味着实际上在-60处绘制了纬度,例如+150。经度+500将在+140处绘制。

要将图表保持在框架内,您必须将纬度限制在[-90,90]范围内(北极和南极之间),您的经度需要限制在相同的数量,因为您只能看到一次是地球的一半,[-90,90]。

为了达到这个目的,只需将所有角度划分为5.6 - 这样可以使你的线条保持在500 / 5.6 = 89.28

之内