Я пытаюсь использовать векторные плитки OL5 с глобальной сеткой плиток.
import 'ol/ol.css'
import { Map, View } from 'ol'
import MVT from 'ol/format/MVT'
import TileGrid from 'ol/tilegrid/TileGrid'
import VectorTileLayer from 'ol/layer/VectorTile'
import VectorTileSource from 'ol/source/VectorTile'
let zoom = 0
let center = [8531000, 5342500]
let resolutions = [
9.554628535647032,
4.777314267823516,
2.388657133911758,
1.19432856695588,
]
let extent = [0, 0, 20037508.342789244, 20037508.342789244]
const map = new Map({
target: 'map',
view: new View({
zoom: zoom,
center: center,
resolutions: resolutions,
})
})
const vectorTiles = new VectorTileLayer({
source: new VectorTileSource({
tileSize: 256,
projection: 'EPSG:3857',
format: new MVT(),
tileGrid: new TileGrid({
extent: extent,
resolutions: resolutions,
}),
url: 'http://localhost:8000/get-vector-tiles/{z}/{x}/{y}'
})
})
map.addLayer(vectorTiles)
Запрос выглядит как http://localhost:8000/get-vector-tiles/0/3487/6007,
как я понимаю {x}/{y}
- это координаты (числа) тайла из источника (в моем случае 0,0
).
Стартовое разрешение 9.554628535647032
,
поэтому размер плитки составляет 9.554628535647032 × 256 = 2445.984905126
метров
Оценка запрошенных координат области:
X: 2445.984905126 × 3487 = 8529149.3642
Y: 2445.984905126 × 6007 = 14693031.2943
Учитывая, что центр карты [8531000, 5342500]
:
Координата X правильная 8529149.3642 ~ 8531000
,
в то время как координата Y не совпадает 5342500 vs 14693031.2943
Что не так?