Я пытаюсь отобразить маркер для адреса, который пользователь вводит в веб-форме. Проблема в том, что я получаю следующую ошибку
Невозможно вызвать метод 'getSouthWest' из неопределенного
, когда я пытаюсь показать маркер, используя следующий код:
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
//Remove all markers from the map
clearMarkers();
//Display the new marker on the map
showFullAddressesOnMap(latitude, longitude, address);
//Center the map according to the marker
map.fitBounds(results[0].geometry.bounds);
}
});
function showFullAddressesOnMap(latitude, longitude, fullAddress) {
displayMarker(-1, "", "", "", fullAddress, true, latitude, longitude);
}
function displayMarker(appID, title, image, imageType, address, markerType, lat, lng) {
var listingLatLng = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker({
position: listingLatLng,
map: map,
icon: markerType ? imgBluePin : imgGreenPin,
title: title + address
});
var content = GetContent(appID, title, image, imageType, address);
marker.info = new google.maps.InfoWindow({
content: content,
size: new google.maps.Size(50, 50)
});
google.maps.event.addListener(marker, 'click', function () {
closeAllWindows();
marker.info.open(map, marker);
});
bounds.extend(listingLatLng);
map.fitBounds(bounds);
markers.push(marker);
}
Кроме того, ошибка не возникает каждый раз. Вот адрес, который дает сбой кода.
Франция, Иль-де-Франс, Париж, 75006, Париж, 7 rue casimir delavigne
Я думаю, что ошибка вызвана, когда вызывается FitBounds
. При возникновении ошибки границы, возвращаемые геокодированием, уменьшаются до уровня провинции.
В чем причина ошибки? Мне нужно увеличить карту до уровня улицы, когда пользователь вводит адрес с названием улицы.