假设我有三个四列,比如item、item_纬度、item_经度和方位角
我正在尝试为每个纬度和方位角方向的长度创建一个+/-35度和2公里的矩形
例如。场地x的方位角为45度,因此+35度和-35度至45度为 15度和80度,距离为2公里
我正在尝试获取该区域的所有多边形。我使用了jts.util.GeometricShapeFactory库,但它总是创建一个如下所示的圆。我使用了scala和jts.util.GeometricShapeFactory库
def generatePolygoan(lat:String,long:String,diameterINKM:Double):Option[String] = {
val latitude = lat.toDouble
val longitude = long.toDouble
val diameterInMeters = diameterINKM * 1000
val shapeFactory = new GeometricShapeFactory()
//shapeFactory.setNumPoints(64) // adjustable
shapeFactory.setCentre(new Coordinate(latitude, longitude))
// Length in meters of 1° of latitude = always 111.32 km
shapeFactory.setWidth(diameterInMeters / 111320d)
// Length in meters of 1° of longitude = 40075 km * cos( latitude ) / 360
shapeFactory.setHeight(diameterInMeters / (40075000 * Math.cos(Math.toRadians(latitude)) / 360))
val circle = shapeFactory.createCircle()
Some(circle.toString)
}
上面的代码创建了围绕lat和long的圆,但是我只需要在方位角+/-35度的方向上创建矩形
请帮帮我,我是几何新手。代码可以在任何编程中,比如JAVA/SCALA/PHP/PYTHON/MYSQL/POSTGRES/MONGODB,甚至可以是数学伪代码
您需要创建一个函数,从另一个点在特定方位角和特定距离上计算一个点(请参见geographic distance and azimuth第1C章),然后调用该函数:
代码:
pList=[[p0Lat,p0Lon]]
相关问题 更多 >
编程相关推荐