Daha çox

TileCache və Openlayers Problemi - Proqnozlar?


Çox bilinən bir problemim var, amma həll edə bilmirəm.

Openlayers init JS-də olduğu kimi konfiqurasiyada eyni maxExtents qurdum. Eyni şeyi proyeksiya ilə etdim (EPSG: 900913) və OpenLayers FW-də bütün transformasiyaları etdim. Ancaq hələ də bir səhv var, çünki plitələr düzgün nöqtədə başlamadığından göstərilə bilməz.

Görünür bunlar heç bir məhdudiyyət deyildir. Niyə? Hər hansı bir fikir var? Çözümdəki əsas nöqtə haradadır!

Təşəkkürlər. Martin

Redaktə edin:


Plitə kimi heç bir şəkil görmürəm. Sadəcə qırmızı yükləmə qutuları görürəm. Plitənin üstündəki sağ siçan düyməsini basaraq şəkli göstərməyimə icazə verərək bu mesajı alıram: "Xəta baş verdi: 967644.673573 cari x dəyəri çini küncündən çox uzundur x 939258.202600"


Tilecache.cfg konfiqurasiyam:


[osm]

növü = MapnikLayer

mapfile = /var/www/tilecache/osm.xml

# qat = osm

sferik_mercator = doğrudur

# tms_type = google

srs = EPSG: 900913

bbox = 654558.60577333,5745163.8837113,1173307.4327978,6075303.6111284

# bbox = 5.88,45.78,47.81,10.54

# maxReolution = 19567.879237500

maxResolution = 156543.03390000001

qətnamələr = 156543,03390000001, 78271,516950000005, 39135,758475000002, 19567,879237500001, 9783,9396187500006, 4891,9698093750003, 2445,9849046875001, 1222,9924523437501, 611,49622617187504, 305,74811308593752, 152,87405654296876, 76,43702827148438, 38,21851413574219, 19,109257067871095, 9,5546285339355475, 4,7773142669677737, 2,3886571334838869, 1,1943285667419434, 0,59716428337097172, 0,29858214168548586

maxResolution = 78271.51695

ölçü_ növü = boş

səviyyələr = 20


OSM KODU


function init () {var tilecacheBbox = yeni OpenLayers.Bounds (5.88, 45.78, 10.54, 47.81) .transform (yeni OpenLayers.Projection ("EPSG: 4326"), // WGS 1984 yeni OpenLayers.Projection-dan çevrilmək ("EPSG: 900913 ") // Sferik Merkator Proyeksiyasına); xəbərdarlıq (tilecacheBbox); var map_options = {maxExtent: tilecacheBbox, restrictedExtent: tilecacheBbox, maxResolution: 156543,03390000001, qətnamələr [156543,03390000001, 78271,516950000005, 39135,758475000002, 19567,879237500001, 9783,9396187500006, 4891,9698093750003, 2445,9849046875001, 1222,9924523437501, 611,49622617187504, 305,74811308593752, 152,87405654296876, 76,43702827148438, 38,21851413574219, 19,109257067871095, 9,5546285339355475, 4,7773142669677737 , 2.3886571334838869, 1.1943285667419434, 0.59716428337097172, 0.29858214168548586], // maxResolution: 78271.51695, proyeksiya: yeni OpenLayers.Projection ("EPSG: 900913"), // ədəd: "metre", numZ map = new OpenLayers.Map ("basicMap", map_options); map.addControl (yeni OpenLayers.Control.PanZoomBar ()); map.addControl (yeni OpenLayers.Control.LayerSwitcher ()); var mapnik = yeni OpenLayers.Layer.OSM (); // varrickscache = yeni OpenLayers.Layer.TileCache (); fayanslar = yeni OpenLayers.Layer.WMS ("OSM @ Mapnik", "tilecache / tilecache.cgi?", {layer: 'osm', format: 'image / png', srs: 'EPSG: 900913'}); map.addLayer (mapnik); map.addLayer (plitələr); map.setCenter (yeni OpenLayers.LonLat (8, 46.5) // Xəritənin mərkəzi .transform (yeni OpenLayers.Projection ("EPSG: 4326")), // WGS 1984 yeni OpenLayers.Projection-dan çevrilmək ("EPSG: 900913") ) // Sferik Merkator Proyeksiyasına), 8 // Zoom səviyyəsi); }

OpenLayers kodunda dəyişəni başlatmağa çalışın tilecacheBbox təyin etdiyiniz dəqiq koordinatlarla bbox TileCache konfiqurasiya sənədində.

var tilecacheBbox = yeni OpenLayers.Bounds (); tilecacheBbox.extend (654558.60577333, 5745163.8837113); tilecacheBbox.extend (1173307.4327978, 6075303.6111284);

Bəlkə də problem OpenLayers kodunda etdiyiniz koordinat çevrilməsinin dəyərdən bəzi ondalıklarda fərqli dəyərlər yaratmasıdır. bbox - TileCache konfiqurasiya faylı - təyin edildi. Bu fərq TileCache-i səhv yönləndirəcək qədər böyük ola bilər.


Bənzər bir problemim var idi, əlavə etdim

OpenLayers.DOTS_PER_INCH = 90.71428571428572;

mənim üçün hiylə etdi.


Videoya baxın: 01. React + OpenLayers. TypeScript. Map, VectorLayer (Oktyabr 2021).