2012-03-03 5 views
0

내가 만든지도 타일을 테스트하기 위해 간단한 html을 만들었습니다. 문제는 TMS 프로젝션을 사용하도록 만들었지 만 OSM 예제를 사용했기 때문에 모든 타일이 수직적으로 거꾸로 보이고 있습니다. 나는 TMS 로의 전환을 시도했지만, 실패한 atempts의 몇 십 가지 이후에 나는 뭔가를 놓친 것 같다. 누군가 코드를 수정하도록 도울 수 있는가?OpenLayers 어떻게 OSM에서 TMS로 바꿀 수 있습니까?

<html> 
<head> 
    <link rel="stylesheet" href="style.css" type="text/css" /> 
    <script src="OpenLayers.js"></script> 
    <script src="OpenStreetMap.js"></script> 
    <script type="text/javascript"> 
     var map, layer; 

     //Initialise the 'map' object 
     function init() { 

      map = new OpenLayers.Map ("map", { 
       controls:[ 
        new OpenLayers.Control.Navigation(), 
        new OpenLayers.Control.PanZoomBar(), 
        new OpenLayers.Control.Permalink(), 
        new OpenLayers.Control.ScaleLine({geodesic: true}), 
        new OpenLayers.Control.Permalink('permalink'), 
        new OpenLayers.Control.MousePosition(),      
        new OpenLayers.Control.Attribution()], 
       maxExtent: new OpenLayers.Bounds(0.0, -10000.0, 10000.0, 0.0), 
       maxResolution: 64.000000, 
       numZoomLevels: 7, 
       units: 'm', 
       projection: new OpenLayers.Projection("EPSG:900913"), 
       displayProjection: new OpenLayers.Projection("EPSG:4326") 
      }); 

      // Add Base map. 
      layer = new OpenLayers.Layer.OSM("Base Map", "tiles/base/${z}/${x}/${y}.jpg", {numZoomLevels: 7, alpha: false, isBaseLayer: true}); 
      map.addLayer(layer); 

      // Add Layers. 
      layer = new OpenLayers.Layer.OSM("Terrain", "tiles/terrain/${z}/${x}/${y}.png", {numZoomLevels: 7, alpha: false, isBaseLayer: false}); 
      map.addLayer(layer); 
      layer = new OpenLayers.Layer.OSM("Lables", "tiles/lables/${z}/${x}/${y}.png", {numZoomLevels: 7, alpha: false, isBaseLayer: false}); 
      map.addLayer(layer); 

      var switcherControl = new OpenLayers.Control.LayerSwitcher(); 
      map.addControl(switcherControl); 
      switcherControl.maximizeControl(); 

      if(! map.getCenter()){ 
       var lonLat = new OpenLayers.LonLat(10, 10).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()); 
       map.setCenter (lonLat, 5); 
      } 
     } 

    </script> 
</head> 
    <body onload="init();"> 
    <div style="width:100%; height:100%" id="map"></div> 
</body> 

</html> 

Basicly 내가 필요한 것은 하나의 기본지도 층 (JPG) 및 모든 TMS, 256 * 256, 7 개 줌 레벨을 사용하여 몇 가지 선택 사항 층 (투명 PNG)와 '타일/layername/...'

에 위치

답변

관련 문제