1

我目前使用谷歌地图并通过使用 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}

4

1 回答 1

0

我想,您想使用 OpenLayers 在 OSM(或其他)地图上显示您自己的叠加层吗?

而且您必须使用并且您的图块位于诸如“gentile.php?Zoom={Z}&TileX={X}&TileY={Y}”之类的 URL

所以尝试添加图层:

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]
于 2011-01-05T15:45:58.727 回答