誰かが私を助けてくれるのではないかと思います。
このページでは、ユーザーはマップ上に配置されたマーカーを (チェックボックスを使用して) フィルタリングできます。任意のマーカーをクリックすると、「リバース ジオコード」アクションが実行され、[場所の検索] ボタンの選択と連動して、ユーザーはクリックしたマーカーの特定の半径内にある POI を表示できます。
デモ目的で、[コイン] チェックボックスを選択し、緑色のマーカーをクリックしてから [場所の検索] ボタンを選択すると、マーカーが跳ね返り、右側のサイドバーに POI が表示されます。
私が抱えている問題は、Internet Explorer ではすべて正常に動作することですが、これを Chrome で実行しようとすると、マーカーの「バウンス」機能が失われ、「逆ジオコード」が実行されず、受け取ったエラー コンソールに表示されます。次のエラー:
Uncaught ReferenceError: reversegeocode is not defined
私のコードの55行目:
reversegeocode();
私はこのサイトや他のサイトでいくつかの読書を行い、ガイダンスを読んで、コードのこの部分を次のように変更しようとしました:
function geocodePosition(pos) {
var clickListener =
document.getElementById('findosgb36lat').value = this.mylat;
document.getElementById('findosgb36lon').value = this.mylon;
document.getElementById('address').value = this.myaddress;
if(bouncingMarker)
bouncingMarker.setAnimation(null);
if(bouncingMarker != this) {
this.setAnimation(google.maps.Animation.BOUNCE);
bouncingMarker = this;
}
else bouncingMarker = null;
}
geocoder.geocode({latLng: pos }, function(responses) {
if (responses && responses.length > 0) {
updateMarkerAddress(responses[0].formatted_address);
} else {
updateMarkerAddress('Cannot determine address at this location.');
}
});
}
function updateMarkerAddress(str) {
document.getElementById('address').value = str;
}
function getAddress(latlng) {
if (!geocoder) {
geocoder = new google.maps.Geocoder();
}
geocoder.geocode({ 'latLng': latlng }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
// Looping through the result
for (var i = 0; i < results.length; i++) {
if (results[0].formatted_address) {
document.getElementById('address').value =
results[0].formatted_address;
}
}
}
}
)
}
しかし残念ながら、これは機能せず、実際には構文エラーによる問題がさらに発生します。
私はJavascriptに比較的慣れていないので、おそらく完全に誤解しています. しかし、誰かがこれを見て、どこが間違っているのか教えてください。
多くの感謝と親切な敬意