mai*_*rgs 9 java gis worldwind
我知道在WorldWind Java中你可以找到高程和特定位置,如下所示:
public Double getPositionElevationMeters(Double lat, Double lon) {
double elevation = getWorldWindCanvas().getModel().getGlobe()
.getElevation(Angle.fromDegrees(lat), Angle.fromDegrees(lon));
return elevation;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法弄清楚这个纬度/经度是否实际上是一个主要的水体或土地?我采取了一种"盲目"的方法,只考虑低于0的高度是水,但这显然不是理想的.
我甚至会使用另一个能够提供这些信息的图书馆; 我只需要它离线工作.
您可以使用此类数据源,您应该可以从中确定地球上所有国家/地区的多边形.南极洲也被添加到该数据集中.根据你所定义的"主要"水体,这将使你大部分都在那里.
从那里,您可以使用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;
}
Run Code Online (Sandbox Code Playgroud)
编辑
请参阅此答案,以获得更详细描述此过程的类似问题的答案.
| 归档时间: |
|
| 查看次数: |
1133 次 |
| 最近记录: |