2012-01-24 20 views
10

Bu konuyu aramam gereken bazı ipuçları bulmaya çalışıyorum ama hiçbir şey bulamadım - ve bu konuda uzun saatler geçirdim.Haritadaki geçerli görünüm portu, OpenLayers'dan geometri, sınırlayıcı kutu veya wkt olarak nasıl alınır?

Geçerli geçerli görünümün geçerli sınırlayıcı kutusunda yalnızca bu vektörleri eklemek için geçerli koordinatlarını OpenLayers haritasından geçerli koordinatları almaya çalışıyorum. Openlayers 2 için

+0

Ol3 için bkz http://stackoverflow.com/questions/22206570/how-do-bounds-work-in-openlayers-3 –

cevap

18

:

Map.getExtent() 

... sonra yollardan herhangi sayıda enlem/boylam koordinatları almak için kullanabileceğiniz bir sınırları, dönecektir: İdeal http://dev.openlayers.org/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html#OpenLayers.Bounds

, sen' d vektörleri Geometri nesnelerine döndürün ve geçerli görünüm alanında olup olmadıklarını görmek için Bounds.intersectBounds() kullanarak bunları Map.getExtent() öğesine karşı kontrol edin. Openlayers 3 için

:

ol.Map.getView().calculateExtent(map.getSize()) 

... ölçüde sınırlayıcı kutusunu temsil eden koordinatlar dizisi döndürür.

+3

Teşekkürler! Bu harika çalışıyor. Bunu şu şekilde kullanıyorum: 'this.map.getExtent() .Geometry(). ToString()' 'POLYGON ((8852235.9398912 -2760000,11337764.060109 -2760000,11337764.060109 11370000, -8852235.9398912 11370000, -8852235.9398912) gibi bir şey döndüren -2760000)) –

+0

GIS'e biraz aşina değilim, ama -8852235 -2760000 sayıları ... lat/long değerlere benzemiyor mu? Haritanın kapsamını aldığımda benzer sonuçlar elde ediyorum. Lat/long değerleri -90/90 ve -180/180 aralığında mı? –

+0

Bu yanıt, bu sorunu çözmemde bana yardımcı oldu: http://stackoverflow.com/a/2607145/1359765 –