【问题标题】:Calculating bounding grid coordinates to a user click on google maps/google earth计算用户点击谷歌地图/谷歌地球的边界网格坐标
【发布时间】:2009-09-08 16:59:15
【问题描述】:

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

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

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

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

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

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

一种想法是尽可能多地使用假设,使用 UTM 坐标参考等参考。

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

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

这有意义吗?

谢谢!

奥马尔

【问题讨论】:

  • 您能否更具体地了解您要捕捉到的确切网格?根据所使用的投影,数学会有所不同。你想实现这样的东西吗?:iwa.yangman.ca/~yzhao/gis/mgrs.html

标签: google-maps gis coordinates google-earth google-earth-plugin


【解决方案1】:

这似乎是一个舍入问题

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

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

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

4) 那么你想计算并以某种方式返回网格的中点

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

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

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

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

希望这会有所帮助 祝你好运 迈克D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2017-11-30
    相关资源
    最近更新 更多