住所に基づいてマップ上のマーカーを削除しようとしていますが、何らかの理由で機能しません。それは私が見ていない明らかなものに違いない。m と locationall[i][0] が同一であることを確認したにもかかわらず、deleteMarker メソッドの if(m==locationsall[i][0]) には入りません。
//alert(tmp);
//alert(locationsall[0][0]);
マップ コードへの追加:
$('#map').show();
var geocoder = new google.maps.Geocoder();
var address = document.getElementById("address").value +", " + document.getElementById("city").value;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
locationsall[counter] = new Array();
locationsall[counter][0] = address;
locationsall[counter][1] = lat;
locationsall[counter][2] = lng;
var mapOptions = {
zoom: 13,
center: new google.maps.LatLng(lat, lng),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var i;
for (i = 0; i < locationsall.length; i++) {
locationsall[i][3] = marker = new google.maps.Marker({
position: new google.maps.LatLng(locationsall[i][1], locationsall[i][2]),
map: map
});
//markersArray.push(marker);
}
counter++;
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
テキスト ボックスから住所を取得し、それを「1 大通り、都市」にフォーマットするコード
var tmp = locations.splice(locations.indexOf(location), 1);
deleteMarker(tmp);
マーカー コードを削除します。
function deleteMarker(m){
for (i = 0; i < locationsall.length; i++) {
if(m==locationsall[i][0]){
alert(locationsall[i][0]);
alert(locationsall[i][3]);
locationsall[i][3].setMap(null);
}
}
}