Получите координаты плитки XY на уровне Z Zoom с помощью Leaflet - PullRequest
0 голосов
/ 28 ноября 2018

Я выяснил, как получить координаты XYZ, расширяя брошюру с помощью функции createTile.

Но я хочу знать, как мне получить доступ к имени / координате плитки XY для фиксированнойУровень масштабирования Z вокруг моих координат GPS, даже если я не увеличен.

Почему?Я работаю над P2P / децентрализованной версией Uber, и координаты XY являются хорошим общим / общим индексом местоположения, который пользователи могут искать / подписываться / запрашивать.Например, все в пределах этого радиуса X мили будут знать одно и то же имя координаты XY и использовать его в качестве детерминированного ключа для поиска друг друга.

1 Ответ

0 голосов
/ 28 ноября 2018

Этот проект будет «Конвертировать lon, lat в экранные пиксели x, y из 0, 0 origin, с определенным уровнем масштабирования».https://github.com/mapbox/sphericalmercator

ОБНОВЛЕНО:

function lng2tile(lon,z) { return (Math.floor((lon+180)/360*Math.pow(2,z))) }
function lat2tile(lat,z)  { 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,z))) }

Или попробуйте это:

var row = Math.floor((location.lng + 180) / (360 / Math.pow(2, zoomLevel)));
var col = Math.floor((90 + (location.lat * -1)) / (180 / Math.pow(2, (zoomLevel - 1))));
...