ओपनर 3 मैक्स एक्स्टेंट


15

मैं प्रतिबंधित करना चाहता हूं जहां उपयोगकर्ता मानचित्र पर पैन कर सकता है, लेकिन मुझे ऐसा कोई संसाधन नहीं मिल रहा है जो यह बताता हो कि ओपनलाइयर्स 3 में मानचित्र दृश्य की अधिकतम सीमा कैसे निर्धारित करें। मुझे पता है कि ओपनलाइयर 2 में एक समाधान था। नए संस्करण में यह संभव है?

जवाबों:


18

यह बस extentदृश्य ऑब्जेक्ट में परिभाषित करके किया जा सकता है । जैसे

var view = new ol.View({
    ...
    extent: [minx,miny,maxx,maxy]
    ...
});
var map = new ol.Map({
    ...
    view: view,
    ...
});

लेकिन Openlayers.org/en/v3.0.0/apidoc/ol.View.html में ऐसा कोई विकल्प नहीं है
Daviddd

बहुत कुछ प्रलेखित, या प्रायोगिक नहीं है और केवल तभी दिखाई देता है जब स्थिर जाँच नहीं की जाती है
CJStuart

4
यह एक वास्तविक सीमा नहीं है। यह केवल विस्तार को ध्यान में रखता है, जिसका अर्थ है कि चारों ओर हद तक बदसूरत सफेद स्थान है।
मिशेल इंग्राम

इस बीच, extentएक उचित दस्तावेज सुविधा बन गया है: openlayers.org/en/latest/apidoc/module-ol_View-View.html (लेखन के रूप में, "नवीनतम" = v5.3.0)
Christallkeks

3

एक अन्य विकल्प है:

...
var map = new ol.Map({
          layers: [...],
          overlays: [...],
          target: document.getElementById('map'),
          view: new ol.View({
             center: ol.proj.transform([minx,miny,maxx,maxy], 
                     'EPSG:4326', 'EPSG:3857'),
             zoom: ...,    
             maxZoom: ..., 
             minZoom: ..., 
             extent: ol.proj.transform([minx-n,miny-n,maxx+n,maxy+n], 
                     'EPSG:4326', 'EPSG:3857')
             })
        });
...

1

जैसे रागनगॉर्ड ने पहले ही बताया था कि extentअपने में स्थापित करना आवश्यक है ol.view

इस बात पर निर्भर करता है कि आप सबसे आसान तरीका क्या संदर्भित करना चाहते हैं, यह फ़ंक्शन का उपयोग करके अपने वांछित प्रक्षेपण ( ol.proj.Projection) या परत (किसी भी वर्ग) से सीधे सीमा प्राप्त करना है। EPSG: 3857 के मामले में यह काम करता है:ol.layergetExtent()

var map = new ol.Map({
    ...
    view: new ol.View({
        ...
        extent: ol.proj.get("EPSG:3857").getExtent()
  })
});

1

मुझे यह इंगित करना होगा कि क्या हम मानचित्र प्रक्षेपण पर विचार करते हैं, मेरे मामले में WGS84 और गोलाकार मर्केटर के बीच एक विकल्प है ol.proj.transformExtent। एक जवाब मिला था यहां । निम्नानुसार सौंपा गया है:

var map = new ol.Map({
   .
   .
   .
   view: new ol.View({
        extent:  ol.proj.transformExtent([minx, miny, maxx, maxy], 'EPSG:4326', 'EPSG:3857');
         .
         .
         .
        )}
)}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.