さっそくですが、MapAPIのgetZoom()で躓いております。
Ver2のAPIを利用してMapを表示し、住所からGClientGeocoder()でジオコーディングをした後に
getZoom()を実行するとFireFoxのデバッガでは「getZoomは関数ではありません」というエラーが出て
地図自身は「恐れ入りますがこの地域の詳細地図は表示できません」と出てしまいます。
実際にエラーを起こしているJSは下記の用になります
function showMap(latlng){
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map2"));
map.addControl(new GMapTypeControl());
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(latlng,5));
zoo = map.getZoom();
}
if (latlng){
map.setCenter(latlng, 15);
var marker = new GMarker(latlng);
map.addOverlay(marker);
GEvent.addListener(map, 'click', function(overlay, point) {
document.materal.lat.value = point.y; // ido
document.materal.lon.value = point.x; // ido
map.clearOverlays();
var point = new GPoint( point.x,point.y);
var marker = new GMarker(point);
map.addOverlay(marker);
});
GEvent.addListener(map, "zoom", function(){
document.materal.zoom.value = getZoom();
} );
}else{
alert("住所から緯度経度に変換できません");
}
}
function moveAddress(address){
geocoder = new GClientGeocoder();
geocoder.getLatLng(address, showMap);
}
何かご助言頂けたらと思います
はじめまして。コードを読んだ限りですが、
map.setCenter(new GLatLng(latlng,5));
は
map.setCenter(new GLatLng(latlng),5);
だと思いますよ。
そうしないと地図にズームレベルが設定されませんから。
そのせいで ”getZoom()がない” とか起こられている気がします。
---------
ついでなのですが、
GPoint を使って GMarkerに緯度経度を与えることはできるのですが
それは古い書き方なので、
いまは
var point = new GLatLng(point.y, point.x);
var marker = new GMarker(point);
ですよ~。
ご参考まで。
ご指摘ありがとうございました
>map. getZoom
>map.setCenter(new GLatLng(latlng),5);
以上2点で期待通りの挙動になりましたが、このズームの値を元に、もう一つ地図を開こうとした際に
元の地図のlat、lon、ズーム値を渡したところ、地点が正確なのにズーム値がおかしかったのですが
元の地図と新しい地図でそれぞれnew GMap、new GMap2とやってしまっておりました
Googleでmap APIなどとして情報を探そうとした時にも
3つのverが混ざって表示されるのでなかなか難しいです。