API v3を使用してGoogleマップに画像としてWMSをオーバーレイするコードはhttp://www.gisdoctor.com/v3/mapserver.htmlです。Googleマップv3の単一のタイル画像としてのWMS
"WMSGetTileUrl" : function(tile, zoom) {
var projection = map.getProjection();
var zpow = Math.pow(2, zoom);
var ul = new google.maps.Point(
tile.x * 256.0/zpow,
(tile.y + 1) * 256.0/zpow
);
var lr = new google.maps.Point(
(tile.x + 1) * 256.0/zpow,
tile.y * 256.0/zpow
);
var ulw = projection.fromPointToLatLng(ul);
var lrw = projection.fromPointToLatLng(lr);
var bbox = ulw.lng() + "," + ulw.lat() + "," + lrw.lng() + "," + lrw.lat();
return url = "http://url/to/mapserver?" +
"version=1.1.1&" +
"request=GetMap&" +
"Styles=default&" +
"SRS=EPSG:4326&" +
"Layers=wmsLayers&" +
"BBOX=" + bbox + "&" +
"width=256&" +
"height=256&" +
"format=image/png&" +
"TRANSPARENT=TRUE";
},
"addWmsLayer" : function() {
/*
Creating the WMS layer options. This code creates the Google
imagemaptype options for each wms layer. In the options the function
that calls the individual wms layer is set
*/
var wmsOptions = {
alt: "MapServer Layers",
getTileUrl: WMSGetTileUrl,
isPng: false,
maxZoom: 17,
minZoom: 1,
name: "MapServer Layer",
tileSize: new google.maps.Size(256, 256)
};
/*
Creating the object to create the ImageMapType that will call the WMS
Layer Options.
*/
wmsMapType = new google.maps.ImageMapType(wmsOptions);
map.overlayMapTypes.insertAt(0, wmsMapType);
},
を次のように上記のリンクでjsのコードがあるすべてはもちろん、WMSは、256×256のタイルとして返され、正常に動作しますが、。それは私が要求したものなので、驚きはありません。しかし、http://groups.google.com/group/google-maps-js-api-v3/browse_thread/thread/c22837333f9a1812/d410a2a453025b38での議論に続いて、私はmapserverから離散した(単一の)イメージを要求するほうが良いかもしれないようです。これは私のサーバーには負担が少なくなります。いずれにしても、私は単一のイメージを試してみたいと思いますが、正しくイメージを作成することはできません。
具体的には、タイルのサイズを大きく変更しました。たとえば、1024 x 1024のタイルを試しました。タイル数は少なくなりましたが、返された画像はGoogle Mapsの基本レイヤーの境界と一致しませんでした。
タイルサイズを一切指定しないことをお勧めします。代わりに、現在のマップサイズより256ピクセル大きくなるように、タイルサイズを動的に把握する必要があります。そうすることで、地図のサイズに関係なく、1つの画像が返されます。また、シームレスなパンは、地図の端に沿って余分な256ピクセルの助けを借りて実装されます。
提案?
解決方法を見つけましたか? Weather Undergroundの人々は、このアプローチをマッピングに使用しています:http://www.wunderground.com/wundermap/たぶんそのうちの1人がこれを見てジャンプします:) – malonso