2012-03-03 62 views
0

我已經創建了一個簡單的html來測試我製作的一些地圖塊。麻煩的是我讓他們使用TMS投影,但我使用了一個OSM示例,所以我所有的貼圖都是垂直顯示的。我嘗試切換到TMS,但經過幾次失敗的嘗試似乎我錯過了一些東西,任何人都可以請幫助修復代碼?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格式)和一些可選層(具有透明度的PNG)全部採用TMS,256×256,7個縮放級別和位於「瓦/ layername/......」

回答