OpenStreetMapgoogleMap等经纬度和行列号之间相互转化

Posted 米仓山下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenStreetMapgoogleMap等经纬度和行列号之间相互转化相关的知识,希望对你有一定的参考价值。

python:
# OpenStreetMap经纬度转行列号
def deg2num(lat_deg, lon_deg, zoom):
  lat_rad = math.radians(lat_deg)
  n = 2.0 ** zoom
  xtile = int((lon_deg + 180.0) / 360.0 * n)
  ytile = int((1.0 - math.log(math.tan(lat_rad) + (1 / math.cos(lat_rad))) / math.pi) / 2.0 * n)
  return (xtile, ytile)

# OpenStreetMap行列号转经纬度
def num2deg(xtile, ytile, zoom):
  n = 2.0 ** zoom
  lon_deg = xtile / n * 360.0 - 180.0
  lat_rad = math.atan(math.sinh(math.pi * (1 - 2 * ytile / n)))
  lat_deg = math.degrees(lat_rad)
  return (lat_deg, lon_deg)

# 验证可用
print deg2num(34.972,114.953,13)
# print num2deg(105207,52262,17)
View Code
javascriptfunction long2tile(lon,zoom) { return (Math.floor((lon+180)/360*Math.pow(2,zoom))); }
 function lat2tile(lat,zoom)  { return (Math.floor((1-Math.log(Math.tan(lat*Math.PI/180) + 1/Math.cos(lat*Math.PI/180))/Math.PI)/2 *Math.pow(2,zoom))); }


function tile2long(x,z) {
  return (x/Math.pow(2,z)*360-180);
 }
 function tile2lat(y,z) {
  var n=Math.PI-2*Math.PI*y/Math.pow(2,z);
  return (180/Math.PI*Math.atan(0.5*(Math.exp(n)-Math.exp(-n))));
 }

更多语言方法参考这里

以上是关于OpenStreetMapgoogleMap等经纬度和行列号之间相互转化的主要内容,如果未能解决你的问题,请参考以下文章

获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等)

matlab像素坐标值转换为经纬度

如何使用MATLAB爬取北京市房价经纬度等信息

如何使用MATLAB爬取北京市房价经纬度等信息

在谷歌地球里怎么输入已知的经纬度查询到目的地

项目打包成jar后,根据地址获取经纬度,根据地址获取省市区等功能不正常的解决方法