相关疑难解决方法(0)

验证Google地图中的某个点是Land还是Water

..然后谷歌地图"划分水域的水"

嗯,不是在圣经的意义上,但..

我想知道我有什么选择来验证[Lat,Lon]的点是土地还是水.

谷歌地图显然有这些数据(水体是蓝色的) - 但是我可以使用API​​中的某些东西吗?如果没有 - 他们是不是因为他们没有想到它而服务它?还是因为它太复杂了?

我没有找到任何关于这个问题的信息 - 除了一些类似的问题(比如寻找地形类型或海拔 - 但这不是我需要的).

那有分离的层吗?一个选项?命令?或者我应该手动去做?

我能想到如何处理这个问题的唯一方法(我是否需要手动执行)是检查每个服务的磁贴的确切点 - 然后检查该Google地图色调的RGB值.这只是在理论上 - 因为在实践中 - 我不知道如何实现这一点,第一个障碍是我不知道如何将瓷砖上的像素位置转换为[LatLon]点,例如

现成的解决方案会更容易.

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

编辑我

阅读评论后:提升方法不可靠,海平面下面有太多地方(你可以在这里查看 "最深"10的列表http://geology.com/below-sea-level/)海平面(湖泊)上面有太多内陆水体.反向地理定位方法不可靠,因为它会多次返回地理政治实体,如城市或州 - 或ZERO.在问这个问题之前我已经研究了那些伪解决方案 - 但他们都没有回答过这个问题 - 这些方法充其量只是"猜测".

javascript google-maps google-maps-api-3

100
推荐指数
7
解决办法
4万
查看次数

随机地理坐标(在陆地上,避免海洋)

关于如何生成地球上的随机坐标(纬度/经度)的任何聪明的想法?纬度/经度.精确到5点,避免水体.

    double minLat = -90.00;
    double maxLat = 90.00;      
    double latitude = minLat + (double)(Math.random() * ((maxLat - minLat) + 1));
    double minLon = 0.00;
    double maxLon = 180.00;     
    double longitude = minLon + (double)(Math.random() * ((maxLon - minLon) + 1));
    DecimalFormat df = new DecimalFormat("#.#####");        
    log.info("latitude:longitude --> " + df.format(latitude) + "," + df.format(longitude));
Run Code Online (Sandbox Code Playgroud)

也许我生活在一个梦想的世界里,水话题是不可避免的......但希望有一个更好,更清洁,更有效的方法来做到这一点?

编辑

一些奇妙的答案/想法 - 然而,在规模上,让我们说我需要生成25,000个坐标.由于延迟,成本和一些其他因素,去外部服务提供商可能不是最佳选择.

java gis geocoding

31
推荐指数
2
解决办法
2万
查看次数