私はGoogleマップでオーバーレイをしようとしています。 maptilerを使って画像のタイルを生成しましたが、maptilerで生成された例はv2で、v3を使用したいと思います。 maptilerで生成されたサンプルも非常に複雑で不必要な不透明なものがあります。 v2以降、GMのv3が大幅に変更されました。画面上のある点のLatLngを生成するにはいくつかの問題があります。 getProjection()は未定義のままです。何をしていても、どのように投影を取得するのですか?Google Maps API 3オーバーレイ、投影を取得する必要があります
<script>
var mapBounds = new google.maps.LatLngBounds();
var mapMinZoom = 8;
var mapMaxZoom = 14;
var overlay;
var maptiler = new google.maps.ImageMapType({
getTileUrl: function(coord, zoom) {
if ((zoom < mapMinZoom) || (zoom > mapMaxZoom)) {
return "none.png";
}
var ymax = 1 << zoom;
var y = ymax - coord.y -1;
var tileBounds = new google.maps.LatLngBounds(
overlay.getProjection().fromDivPixelToLatLng(new google.maps.Point((coord.x)*256, (coord.y+1)*256) , zoom),
overlay.getProjection().fromDivPixelToLatLng(new google.maps.Point((coord.x+1)*256, (coord.y)*256) , zoom)
);
if (mapBounds.intersects(tileBounds)) {
return "" + zoom + "/" + coord.x + "/" + (Math.pow(2,zoom)-coord.y-1) + ".png";
} else {
return "none.png";
}
},
tileSize: new google.maps.Size(256, 256),
isPng: true
});
var map;
function initialize() {
map = new google.maps.Map(document.getElementById("map_canvas"));
map.setZoom(11);
map.setMapTypeId('satellite');
mapBounds.extend(new google.maps.LatLng(50.9388615939, 3.80480816501));
mapBounds.extend(new google.maps.LatLng(51.4402541425, 4.73612507791));
map.fitBounds(mapBounds);
overlay = new google.maps.OverlayView();
overlay.draw = function() {};
overlay.setMap(map);
map.overlayMapTypes.insertAt(0, maptiler);
}
</script>
オーバーレイ部分は、インターネット上で見つかった、プロジェクションにつながるハックです。残念ながらそれは動作しませんでした。どのようなアイデアはこれを修正する方法ですか? V2では次のようなことができます:
var mercator = new GMercatorProjection()
mercator.fromPixelToLatLng(new GPoint((tile.x)*256, (tile.y+1)*256) , zoom)
これはもうv3では不可能です。
誰でも手伝ってもらえますか?
maptilerによって生成された例では、ここで見つけることができます:
http://gmapsexample.staging1.kunstmaan.be/googlemapsv2.html
この作品v3では簡単な例です:
http://gmapsexample.staging1.kunstmaan.be/googlemapsv3_simple.html
しかし、私はへのマップ以外のすべてをしたいです特定の色になっているので、これは私が仕事をしようとしている例です:
http://gmapsexample.staging1.kunstmaan.be/googlemapsv3.htmlの
おかげで、
大安