在WorldWind中查找位置是土地还是水

mainstringargs:

我知道在WorldWind Java中,您可以使用以下内容找到海拔和特定位置:

public Double getPositionElevationMeters(Double lat, Double lon) {

    double elevation = getWorldWindCanvas().getModel().getGlobe()
            .getElevation(Angle.fromDegrees(lat), Angle.fromDegrees(lon));

    return elevation;
}

有没有办法从语法上找出那个经纬度是否实际上是水或土地的主要部分?我采用了一种“盲法”方法,即仅将小于0的高程视为水,但这显然不理想。

我什至会使用另一个可以提供此信息的库。我只需要它离线工作即可。

杰夫·米克森(Jeff Mixon):

你可能使用数据源,如该从哪个,你应该能够确定地球上的所有国家的多边形。南极洲也已添加到该数据集。根据您定义为“主要”水域的不同,这将带您到达那里的大部分路径。

从那里,您可以使用GeoTools导入形状数据并计算给定纬度/经度对属于哪些多边形。如果没有,那就可能是海洋。

以下伪代码说明了逻辑流程:

// pseudocode, not the actual GeoTools API
boolean isWater(Coordinate point) 
{
    ShapeDataStore countryShapes = loadShapeData("world.shp");

    GeoShape shape = countryShapes.findShapeByPoint(point);

    if (shape == null)
        return true // not a country or Antarctica, must be international waters.
    else
        return false;
}

编辑

请参阅此答案,以获取对类似问题的答案,该问题更详细地描述了此过程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章