2012-03-03 30 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/...」

に位置しています

答えて

関連する問題