次のような「プロパティの値が無効です」エラーまたは「プロパティの値が無効です」エラーで、マーカーの位置と地図の中心の設定に問題があります。
エラー: プロパティの無効な値: (13.7323691218542、100.64347976627096) ソース ファイル: http://maps.gstatic.com/intl/en_us/mapfiles/api-3/13/5/main.js行: 26
これは、Firefox と Chrome でのテストに基づいています。
トップ HTML の内容: Javascript 関数 " move_it()
" cgi (nwfMap.cgi) をソースとする iframe (id: "mapIframe")
また、「mapIframe」iframe cgi には以下が含まれます。
また、「myInfoIframe」iframe cgi には以下が含まれます。move_it()
トップ HTML で定義された関数「 」の呼び出し この呼び出しは、マーカー (markerMe) を特定の場所に移動し、地図 (mapNwf) の中心を同じ特定の場所に設定することを目的としています。
" " の呼び出しは、move_it
実行しようとするまで正常に実行されました:
mrk.setPosition(pos);
または
mp.setCenter(pos);
ここで、「プロパティの値が無効です...」というエラーが発生しました。直前の実行は次のとおりです。
alert('mp = [' + mp.getCenter() + ']'); and
alert('mrk = [' + mrk.getPosition() + ']');
正しい位置 (緯度/経度) の値が表示されていれば問題ありません (地図の中心とマーカーの位置)
問題は、同じマップ変数とマーカー変数に対してどのように機能したのに、getCenter
andが失敗したのかということです。getPosition
setCenter
setPosition
getCenter
とが正しいデータで戻ってきた場合getPosition
、それは変数コンテキストの問題がないことを示していますよね?
しかし、なぜこれらの変数を介して値を「読み取る」ことしかできず、「設定」することはできないのでしょうか?
それは Google 行の外観に関連していますか: 上部の HTML、その iframe、および iframe の iframe でしょうか? 繰り返しとネストされたレベルにより、Googleマップのコンテキストの問題が発生し、問題が発生しますか?
アドバイスをよろしくお願いします!以下は、調査と調査に関連するコード部分です。
トップ HTML の関連部分
<html>
........
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script>
<script language="JavaScript">
function move_it(slat, slng) {
var ifrm = document.getElementById('mapIframe');
var mp = ifrm.contentWindow.mapNwf;
var mrk = ifrm.contentWindow.markerMe;
var pos = new google.maps.LatLng(slat,slng);
alert('mp = [' + mp.getCenter() + ']');
alert('mrk = [' + mrk.getPosition() + ']');
alert('pos = [' + pos + ']');
mrk.setPosition(pos);
mp.setCenter(pos);
}
</script>
.........
<div id="nwfMap">
<iframe width=100% height=520 frameBorder=0 src="nwfMap.cgi" name="mapIframe" id="mapIframe" scrolling=no></iframe>
</div>
........
</html>
「mapIframe」iframe の関連部分 (nwfMap.cgi で作成)
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var mapNwf = new google.maps.Map(document.getElementById('mapCanvas'), {
zoom: 8,
mapTypeId: google.maps.MapTypeId.HYBRID
});
var latLngPre = new google.maps.LatLng(0.0, 0.0);
var markerMe = new google.maps.Marker({
position: latLngPre,
title: 'Me Here',
map: mapNwf,
draggable: true,
animation: google.maps.Animation.DROP
});
.........
</script>
.........
<div id="myInfoForm" style="display: none;">
<iframe border=1 width=100% height=200 align=center marginwidth=0 marginheight=0 seamless=seamless frameBorder=0 src="nwfSetInfo.cgi" name="myInfoIframe" id="myInfoIframe" scrolling=no></iframe>
</div>
.........
「myInfoIframe」iframe の関連部分 (nwfSetInfo.cgi によって生成)
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script>
<script type="text/javascript">
parent.parent.move_it(13.7323691218542, 100.643479766271);
</script>