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/......」