def clip(self, n, min, max):
if n < min:
n = min
if n > max:
n = max
return n
def longlat2tile(self, x1, y1, level):
M_PI = 3.1415926
EarthRadiusInMeters = 6378137
PixelsPerTile = 256
EarthCircumferenceInMeters = 2 * M_PI * EarthRadiusInMeters
rad_long = x1 * M_PI / 180
rad_lat = y1 * M_PI / 180
x_meters = EarthRadiusInMeters * rad_long
sin_latitude = math.sin(rad_lat)
i_log = math.log((1 + sin_latitude) / (1 - sin_latitude))
y_meters = EarthRadiusInMeters / 2 * i_log
num_pixels = long(PixelsPerTile << level)
meters_per_pixel = EarthCircumferenceInMeters / num_pixels
tile_long = int(self.clip((EarthCircumferenceInMeters / 2 + x_meters) / meters_per_pixel + 0.5, 0, num_pixels - 1))
tmp = long((EarthCircumfe
python 计算曼哈顿距离
最新推荐文章于 2024-03-02 13:00:37 发布