この例では、trails.com サーバーが独自のCDNを介してカスタム タイル画像を配信し、.NET WebHandler を使用して Google マップの上にそれらのタイルを表示しています。
[Trails.com][3] ではなくMSRMaps.comからデータを取得する必要があるため、代わりに MSRMaps.com WebHandler を指定します。
以下は、トレイルがどのようにそれを行っているかです。関数を、代わりにmsrmaps.comサーバーを呼び出すもの ( MSR タイル リンクgetTileUrl
など) に置き換えます。
var layer = new GTileLayer(new GCopyrightCollection(''), 1, 21);
layer.getTileUrl = function(a, b)
{
var ll = G_NORMAL_MAP.getProjection().fromPixelToLatLng(new GPoint(a.x * 256, (a.y + 1) * 256), b);
var ur = G_NORMAL_MAP.getProjection().fromPixelToLatLng(new GPoint((a.x + 1) * 256, a.y * 256), b);
return "http://cdn-www.trails.com/services/TopoGetGoogleMapTile.ashx?z=" + b + "&style=drgsr&ll=" + ll.y + "," + ll.x + "&ur=" + ur.y + "," + ur.x;
}
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
map.setUIToDefault();
var mapType = new GMapType([layer], G_NORMAL_MAP.getProjection(), 'Trails', { errorMessage: google.mapError, textColor: "white", linkColor: "white" });
map.addMapType(mapType);
map.setMapType(mapType);