아래로, 그래서 그것을 할 수없는 것을 모든하지만 게시 된 코드에서 오타를 가정하는 것은 - 예를 들어, '저울해야한다 : ''이 아니라 ''비늘 [ '- 귀하의 작업 코드에없는 경우, numZoomLevels, minZoomlevel과 같은 다른 배율 의존 옵션을 배율 설정보다 우선 적용하므로지도 옵션에 설정하지 않아야합니다.
하지만 더 중요한 점은 레이어 설정이 맵 설정보다 우선하며,이 경우 제 3 자 제공 업체 인 OpenLayers.Layer.OSM이 자신의 척도를 설정할 수 있다고 생각하지 않습니다. 상대적으로 작은 OSM 영역에서 작업하는 경우 maxExtents의 경계 상자를 다운로드하고지도 데이터를 직접 제공하여 유연성을 높이는 것이 어떻습니까?
몇 가지 유용한 링크 :
http://trac.osgeo.org/openlayers/wiki/SettingZoomLevels
https://gis.stackexchange.com/questions/1825/openlayers-use-scales-instead-of-resolutions
이 추가 : 여기
그리고 그것이 정확하게 확대되는지도의 (비 Mapnik)와 함께 연주하는 바이올린입니다 요청하신대로 전 세계가 아닌 최대한으로 :
http://jsfiddle.net/Cybele42/UfWp9/3/
자바 스크립트 :
var projMercator = new OpenLayers.Projection("GOOGLE");
var projBritNatGrid = new OpenLayers.Projection("EPSG:27700");
var navigation_control = new OpenLayers.Control.Navigation({});
var controls_array = [
navigation_control,
new OpenLayers.Control.PanZoomBar({}),
new OpenLayers.Control.LayerSwitcher({}),
new OpenLayers.Control.MousePosition({})
];
var layerOSM = new OpenLayers.Layer.OSM("OpenStreetMap");
var scales = [200000,150000,100000,50000,20000,10000,5000,2500];
var map = new OpenLayers.Map({
div: "map",
units: 'm',
scales: scales,
Projection: projMercator,
DisplayProj: projBritNatGrid,
controls: controls_array
});
map.addLayer(layerOSM);
var myMaxExtent = new OpenLayers.Bounds("350000,380000, 380000,400000");
myMaxExtent.transform(projBritNatGrid, projMercator);
var lonlat = new OpenLayers.LonLat("362431.71","389042.78");
lonlat.transform(projBritNatGrid, projMercator);
map.setCenter(lonlat, 13);
map.events.register("zoomend", map, function(){
document.getElementById("getCenter").innerHTML=map.getCenter();
document.getElementById("getScale").innerHTML=map.getScale();
});
HTML :
<script type="text/javascript" src="http://openlayers.org/dev/OpenLayers.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/proj4js/1.1.0/proj4js-compressed.min.js"></script>
<script type="text/javascript" src="http://spatialreference.org/ref/epsg/27700/proj4js/"></script>
<div id="map"></div>
<table class="gridtable">
<tr><th>object</th><th>value</th></tr>
<tr><td>Center</td><td><div id="getCenter"></div></td></tr>
<tr><td>Scale</td><td><div id="getScale"></div></td></tr>
</table>
CSS :
#map
{
width: 600px;
height: 600px;
border: 1px solid black;
}
table.gridtable {
font-family: verdana,arial,sans-serif;
font-size:11px;
color:#333333;
border: 1px solid black;
}
table.gridtable th {
border: 1px solid black;
padding: 8px;
background-color: khaki;
}
table.gridtable td {
padding: 8px;
border: 1px solid black;
background-color: #ffffff;
}