python地球重量计算_python 计算曼哈顿距离

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((EarthCircumferenceInMeters / 2 - y_meters))

tile_lat = int(self.clip(tmp / meters_per_pixel + 0.5, 0, num_pixels - 1))

return tile_long, tile_lat

计算直线距离

def getDistance(self, x1,y1,x2,y2):

dx = x2 - x1

dy = y2 - y1

sx = math.cos(x1* 0.01745329252)

dis = math.sqrt(dx*dx*sx*sx + dy*dy) * 111195.0

return dis

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值