#google-maps-api-3 #geocoding #google-geocoding-api
#google-maps-api-3 #геокодирование #google-geocoding-api
Вопрос:
Я создал код для добавления нескольких маркеров и информационных окон с помощью службы геокодирования. Я скопировал метод из документов API v3. Мой скрипт извлекает информацию об адресе из ASP.Чистый веб-сервис и записывает их в скрытый элемент div.
function codeAddress(address)
{
//Get the location information from address
geocoder.geocode( { 'address': address}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
//Add a google marker onto the given address
var marker = new google.maps.Marker({
map: map,
animation: google.maps.Animation.DROP,
position: results[0].geometry.location
});
//Prepare a infoWindow to display complete address
var faddress = "<h4>Office Address:</h4><span>" address "</span>";
var infowindow = new google.maps.InfoWindow({content: faddress});
//Opening information window on mouseover event of marker
google.maps.event.addListener(marker, 'mouseover', function(){
infowindow.open(map, marker);
});
//closing the info window when mouse is moved out of marker
google.maps.event.addListener(marker, 'mouseout', function(){
infowindow.close();
});
}
});
}
Следующий фрагмент кода считывает адрес из скрытых элементов div и добавляет маркер вместе с InfoWindows. Этот код отлично работает с Internet Explorer 7.0 / 8.0.
//Populate the result onto div element
$.each(arr,function(index, item){
$(".result").append("<div class='block'>" item "</div>");
});
//Loop through the div element and add marker to map
$(".block").each(function(){
codeAddress($(this).text());
})
Но тот же код не работает, когда я открываю его в Firefox 6.0 / IE 9.0.
Служба геокодирования возвращает ZERO_RESULTS для того же вызова. Когда я вызываю метод 5 раз с одним и тем же адресом, он может добавлять маркеры.
Есть идеи, есть ли у службы геокодирования проблемы с новыми браузерами?
Заранее спасибо…
Судхир
Комментарии:
1. В дополнение к этому я создал блоки DIV с адресом и добавлением маркера при щелчке DIV. Это отлично работает в IE 8.0, но не работает в Firefox 6.0. есть идеи, что происходит, как Google Maps API v3 может вести себя по-разному в зависимости от браузера?
Ответ №1:
это код, который я использую для создания карт, вы можете использовать его и настроить в соответствии с вашими потребностями:
var address = document.getElementsByTagName('address')[0].innerHTML;
var title = document.getElementById('contact').getElementsByTagName('h2')[0].innerHTML;
var geocoder;
var map;
geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address },
function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var myOptions = {
zoom: 15,
center: results[0].geometry.location,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: title
});
} else {
alert("Geocode was not successful for the following reason: " status);
}
});