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});

私は1年前にそれを使用しました...

それがうまくいかない場合は、htaccessを書いてください--mod_rewrite

例:そのようなもの:

RewriteRule ^(.*)/(.*)/(.*).png$ gentile.php?Zoom=$1&TileX=$2&TileY=$3 [NC]
于 2011-01-05T15:45:58.727 に答える