javascript - 在 Google map 中验证一个点是陆地还是水域

标签 javascript google-maps google-maps-api-3

..然后谷歌地图“将水域与水域分开”

好吧,不是圣经意义上的,但是..

我想知道我有哪些选项来验证 [Lat, Lon] 的点是陆地还是水。

谷歌地图显然有这些数据(水体是蓝色的)——但是 API 中有什么东西可以用来做这些吗?如果不是 - 他们不服务它是因为他们从未想过吗?还是因为太复杂?

我没有找到任何关于此事的信息——除了这里的一些类似问题(比如寻找地形类型或海拔——但这并不是我所需要的)。

有单独的层吗?一个选项?命令?还是我应该手动去做?

我能想到的唯一方法(如果我需要手动执行)是检查每个提供的瓷砖的确切点 - 然后检查该谷歌地图色调的 RGB 值。
这只是理论上的 - 因为在实践中 - 我不知道如何实现这一点,第一个障碍是我不知道如何将图 block 上的像素位置转换为 [LatLon] 点

现成的解决方案会容易得多。

请注意,我不需要世界上所有的水(例如 - 我不关心溪流、小池塘、大多数河流或你邻居的游泳池。我需要一个人可以在没有 float 车辆帮助的情况下冒险的点)

编辑我

看完评论:
海拔方法不可靠,海平面以下的地方太多(您可以在此处查看“最深”10的列表http://geology.com/below-sea-level/),并且海平面以上的内陆水体(湖泊)太多。
反向地理定位方法不可靠,因为它会多次返回地缘政治实体,如城市或州 - 或零。
在提出问题之前,我已经研究过那些伪解决方案——但他们都没有真正回答这个问题——这些方法充其量只是不好的“猜测”。

最佳答案

有一个免费的 Web API 可以准确解决这个问题,称为 onwater.io。 .它不是谷歌地图内置的东西,但给定纬度和经度,它会通过获取请求准确地返回真或假。

以水为例:
https://api.onwater.io/api/v1/results/23.92323,-66.3

{
  lat: 23.92323,
  lon: -66.3,
  water: true
}

陆上示例:
https://api.onwater.io/api/v1/results/42.35,-71.1
{
  lat: 42.35,
  lon: -71.1,
  water: false
}

完全披露我在 Dockwa.com 工作, onwater 背后的公司。我们在水上 build 自己来解决这个问题并帮助社区。它是免费使用的(大容量付费),我们想分享:)

关于javascript - 在 Google map 中验证一个点是陆地还是水域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36084588/

相关文章:

android - GoogleMaps.LocationServices NuGet 包说找不到命名空间

ios - Google Map iOS SDK - 清除可见区域内和不可见区域内的所有标记

javascript - 如何在同一个谷歌地图上创建多个多边形?

javascript - TinyMCE 的 multipart/form-data、ajax 和 textarea 问题

javascript - 如何根据访问的域名更改图像?使用 location.hostname

javascript - 在 Javascript Vanilla 中缓存 GET 响应

javascript - 在 jquery mobile 中更改页面后,谷歌地图只加载了一部分

javascript - 如何禁用特定功能的 window.alert 并重新启用它?

android - 多个 API key fcm 和谷歌地图

javascript - 点和光标之间的线