2

我需要计算用户在纬度/经度网格交叉点之间单击时的质心或测地线中点。在 GE 的大部分地区,交叉点形成一个正方形,有时还形成一个细长的矩形。这当然是由于地球的形状。我正在寻找一个有效的数学公式,它允许用户单击此网格之间的任何位置,然后是一个准确的函数(在 Javascript 或服务器端代码中),该函数将采用假定的网格分辨率(例如本次讨论的 1 公里间隔)和应返回该格线网格内的质心坐标的输入坐标。

为了澄清,请查看我的谷歌群组帖子的附加图片:

http://google-earth-api.googlegroups.com/web/Picture+5.png?gda=h5oFPz8AAAD315KpovipQeBwdfGpmW3ZhBc9PTADwYa-n193hZ6AItFmHuno63c7phcEXYVuRA6ccyFKn-rNKC-d1pM_IdV0&gsc=sz6bbAsmAAABBKF7YXWjYyc4

我需要做的是,如果用户单击此网格正方形中的任何位置,我需要找到该网格交点/正方形的质心或中心点,或者至少是边界网格坐标(构成正方形)。

如果我们假设网格是 UTM 标准并且最大分辨率为 1km(或将此作为参数),我需要检测附近的其他四个点,然后计算质心并不那么困难。我欢迎大家提出任何反馈意见并表示感谢。

我没有一种简单的方法可以让用户单击网格上的任何位置并找到网格边界坐标(制作 4 个坐标的正方形)或格线网格正方形的质心/中点。

一种想法是使用诸如 UTM 坐标参考之类的参考来尽可能多地使用假设。

如果我假设网格是 X 度宽,我们可以让一个纯 JavaScript 函数获取任何输入坐标并为我返回十进制度的边界格线坐标吗?

我的另一个想法是在地理空间图层中创建网格以获取任何输入坐标并返回最近的经纬网质心?

这有意义吗?

谢谢!

奥马尔

4

1 回答 1

1

这似乎是一个四舍五入的问题

1) 您的用户点击地图上的任意位置

2)您想要捕获点击以读出实际Lat/actualLon 值

3) 并将其向下舍入到最近的离散网格值 minLat/minLon

4)然后你想计算并以某种方式返回网格的中点为

 midLat = minLat + deltaGridLat/2;
 midLon = minLon + deltaGridLon/2;

广告 2) 在我的Maidenhead 定位器查看器中查找 .js 文件- 您肯定可以重用代码来初始化 GE 事件处理程序和处理鼠标单击的处理程序(注意我正在捕获右键单击)

事件处理程序实质上获取用户选择的位置,将其传递给函数 CoordToLoc(),其中坐标被转换为 Maidenhead 定位器字符串,然后显示在网页上的 inpLocator 字段中。

广告 3)这取决于您的网格 - 如果它绑定到离散的纬度/经度值(在我的情况下),它就像舍入一样简单。如果网格点被定义为距离参考点以公里为单位的距离偏移量,那么简单的方法是将您的论点除以单位长度并忽略小数位

希望这有帮助 祝你好运 MikeD

于 2009-10-07T14:04:59.623 回答