【发布时间】:2010-12-11 13:24:45
【问题描述】:
给定纬度和经度以及距离,我想找到一个距离小于给定距离的边界框。
这个问题是在这里问的:How to calculate the bounding box for a given lat/lng location?
我不希望这个特别准确,所以我将其修改并简化为
def boundingBox(latitudeInDegrees, longitudeInDegrees, halfSideInKm):
lat = math.radians(latitudeInDegrees)
lon = math.radians(longitudeInDegrees)
halfSide = 1000*halfSideInKm
RADIUS_OF_EARTH = 6371
# Radius of the parallel at given latitude
pradius = radius*math.cos(lat)
latMin = lat - halfSide/radius
latMax = lat + halfSide/radius
lonMin = lon - halfSide/pradius
lonMax = lon + halfSide/pradius
rad2deg = math.degrees
return (rad2deg(latMin), rad2deg(lonMin), rad2deg(latMax), rad2deg(lonMax))
但我无法理解这是如何工作的,尤其是这条线对我来说毫无意义halfSide = 1000*halfSideInKm
【问题讨论】:
-
发布的代码不适用于远距离或两极附近。
-
Nicolai: 只希望它在短距离内工作,所以可以假设一个平坦的地球等。同样对于经度比较,我们正在做一个
pradius除法,所以它没有考虑到附近的变化两极? -
halfSideInKm 是不是到点的距离?你能解释一下这里要带什么吗?
标签: python geocoding bounding-box