2012-01-24 7 views
10

मैं कुछ संकेत ढूंढने की कोशिश कर रहा हूं जहां मुझे इस विषय की खोज करनी चाहिए लेकिन मुझे कुछ भी नहीं मिला - और मैंने इस पर कई घंटे बिताए।ओपनलेयर से मानचित्र के वर्तमान व्यूपोर्ट को ज्यामिति, बाध्यकारी बॉक्स या wkt के रूप में कैसे प्राप्त करें?

मैं वर्तमान व्यूपोर्ट के वर्तमान बाउंडिंग बॉक्स में केवल वे वैक्टर जोड़ने के लिए ओपनलेयर मानचित्र से वर्तमान प्रदर्शित व्यूपोर्ट से वर्तमान निर्देशांक प्राप्त करने का प्रयास कर रहा हूं।

+0

ओएल 3 के लिए http://stackoverflow.com/questions/22206570/how-do-bounds-work-in-openlayers-3 –

उत्तर

18

OpenLayers 2 के लिए:

Map.getExtent() 

... एक सीमा है, जो आप तो किसी भी तरीके से में अक्षांश/देशांतर निर्देशांक प्राप्त करने के लिए उपयोग कर सकते हैं वापस आ जाएगी: http://dev.openlayers.org/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html#OpenLayers.Bounds

आदर्श रूप में, आप ' डी वैक्टर को ज्यामिति ऑब्जेक्ट्स में बदल दें और उन्हें Bounds.intersectBounds() का उपयोग करके Map.getExtent() के विरुद्ध जांचें ताकि यह देखने के लिए कि वे वर्तमान व्यूपोर्ट में हैं या नहीं।

OpenLayers 3 के लिए:

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

... निर्देशांक की एक सरणी वापस आ जाएगी, हद के बाउंडिंग बॉक्स का प्रतिनिधित्व।

+3

धन्यवाद! यह बहुत अच्छा काम करता है। मैं इसे अब इस तरह उपयोग करता हूं: 'this.map.getExtent()। ToGeometry()। ToString()' जो पॉलीगॉन ((- 8852235.9398912 -2760000,11337764.060109 -2760000,11337764.060109 11370000, -8852235.9398912 11370000, -8852235.9398912 जैसे कुछ देता है) -2760000)) ' –

+0

मैं जीआईएस से थोड़ा अपरिचित हूं, लेकिन संख्या -8852235 -2760000, ... लेट/लम्बे मानों की तरह प्रतीत नहीं होता है? जब मुझे मानचित्र की सीमा मिलती है तो मुझे इसी तरह के परिणाम मिलते हैं। क्या लेट/लम्बे मान -90/90 और -180/180 की श्रेणियों में आते हैं? –

+0

इस उत्तर ने मुझे उस समस्या को हल करने में मदद की: http://stackoverflow.com/a/2607145/1359765 –

संबंधित मुद्दे

 संबंधित मुद्दे