纬度和经度来映射瓷砖集

时间:2017-12-15 16:27:47

标签: javascript maps openstreetmap

在下面的链接[1]中,我可以看到如何获取特定latlon的磁贴的URL。

var zoom = 15;
var lat = 47;
var lon = 8;

function 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))); }

var x = long2tile(lon, zoom);
var y = long2tile(lat, zoom);

tileUrl = "tile.osm.org/" + zoom + "/" + x + "/" + y + ".png"

我想知道的是如何获取周围图块的所有图块网址。通常有一个说3x3瓷砖的网格,我看着中间的那个,这将是我的基础latlon。如何获取所有其他相邻图块的URL?

[1] http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#ECMAScript_.28JavaScript.2FActionScript.2C_etc..29

1 个答案:

答案 0 :(得分:3)

这些只是网格中的坐标。相应地增大/减小x和y坐标以获得所有周围的瓷砖。例如:

enter image description here

来自Wiki:

  
      
  • X从0(左边是180°W)到2 ^ zoom - 1(右边是180°E)
  •   
  • Y在墨卡托投影中从0(上边缘为85.0511°N)变为2 ^变焦-1(下边缘为85.0511°S)
  •   
     

好奇的是,数字85.0511是arctan(sinh(π))的结果。   通过使用此边界,整个地图变为(非常大)方格。