2009-05-01 14 views
7

मैं ओपनलेयर के साथ अपना नक्शा प्रदर्शित करने के लिए एक छवि का उपयोग कर रहा हूं। मेरे जे एस कोड इस तरह दिखता है:ओपनलेयर (स्केल/ज़ूम समस्या) के साथ मानचित्र के लिए पीएनजी या जेपीईजी का उपयोग

map = new OpenLayers.Map('map'); 

var options = {numZoomLevels: 7, 
       isBaseLayer: true, 
       }; 

var globe = new OpenLayers.Layer.Image(
    'Globe ESA', 
    'http://upload.wikimedia.org/wikipedia/commons/0/07/World_map_blank_black_lines_4500px.gif', 
    new OpenLayers.Bounds(-180, -90, 180, 90), 
    new OpenLayers.Size(4500, 2234), 
    options); 

map.addLayers(globe); 

markers = new OpenLayers.Layer.Markers("markers"); 
map.addLayer(markers); 

map.addControl(new OpenLayers.Control.LayerSwitcher()); 
map.zoomToMaxExtent(); 
map.addControl(new OpenLayers.Control.MousePosition()); 

मेरे सीएसएस है:

#map { 
    width: 640px; 
    height: 480px; 
    border: 1px solid black; 
} 

लेकिन मैं OpenLayers बड़ी छवि नीचे पैमाने पर नहीं मिल सकता है। यह हमेशा पूर्ण संकल्प पर प्रदर्शित होता है और मैं पूरी दुनिया को प्रदर्शित करने के लिए ज़ूम आउट नहीं कर सकता। कृपया मदद करें।

उत्तर

11

आपको छवि का आकार सेट करने की आवश्यकता है क्योंकि यह पूरी तरह से ज़ूम आउट होने पर प्रदर्शित होना चाहिए।

var globe = new OpenLayers.Layer.Image(
    'Globe ESA', 
    'http://upload.wikimedia.org/wikipedia/commonS/0/07/World_map_blank_black_lines_4500px.gif', 
    new OpenLayers.Bounds(-180, -90, 180, 90), 
    new OpenLayers.Size(1125,558), 
    options); 

मैंने आकार को मूल के आकार के एक चौथाई में बदल दिया। यदि आप इसे और भी ज़ूम आउट करना चाहते हैं तो आप इसे छोटा कर सकते हैं।

+0

धन्यवाद बहुत धन्यवाद जॉन, मुझे विश्वास नहीं है कि मैंने आकार को छोटे मान पर सेट करने की कोशिश नहीं की है =) बहुत अच्छा काम किया! –

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