如何向OpenStreetMap添加叠加层

时间:2010-05-26 20:55:45

标签: php google-maps tiles openstreetmap

我目前使用谷歌地图并通过使用PHP脚本生成所需的PNG图像来为其创建切片

 var myTileLayer = new GTileLayerOverlay(
                                new GTileLayer(null, null, null, {
                                    //tileUrlTemplate: 'Overlays/Overlay_{Z}_{X}_{Y}.png',
                                    tileUrlTemplate: 'gentile.php?Zoom={Z}&TileX={X}&TileY={Y}',
                                    isPng:true,
                                    opacity:1.0
                                })
                            );

                                map.addOverlay(myTileLayer);

我现在希望使用OpenStreetMap并根据此来源:http://wiki.openstreetmap.org/wiki/OpenLayers_Simple_Example

我需要使用此代码来实现这一点,但是当我想要动态生成时,它似乎要我使用预制的瓷砖

 var newLayer = new OpenLayers.Layer.OSM("New Layer", "URL_TO_TILES/${z}/${x}/${y}.png", {numZoomLevels: 19});
 map.addLayer(newLayer);

我真的需要使用gentile.php吗?Zoom = {Z}& TileX = {X}& TileY = {Y}

1 个答案:

答案 0 :(得分:0)

我想,您是否想使用OpenLayers在OSM上显示您自己的Overlay(或者什么都有)-map?

你要使用,你的瓷砖就像“gentile.php?Zoom = {Z}& TileX = {X}& TileY = {Y}”这样的网址

因此尝试使用以下内容添加图层:

var newLayer = new OpenLayers.Layer.OSM("New Layer", "gentile.php?Zoom=${Z}&TileX=${X}&TileY=${Y}", {numZoomLevels: 19});

我一年前用过那个......

如果不起作用,请写一个htaccess - mod_rewrite

例如类似的东西:

RewriteRule ^(.*)/(.*)/(.*).png$ gentile.php?Zoom=$1&TileX=$2&TileY=$3 [NC]