Я создал следующую функцию для отображения и адресации в JS:
function showMapForm(idDiv, divWidth, divHeight, idLat, idLng) {
document.getElementById(idDiv).style.width = divWidth+'px';
document.getElementById(idDiv).style.height = divHeight+'px';
if (document.getElementById(idLat).value=='' && document.getElementById(idLng).value=='') {
//Paris
iniLat = 48.85455;
iniLng = 2.358627;
} else {
iniLat = document.getElementById(idLat).value;
iniLng = document.getElementById(idLng).value;
}
var latlng = new google.maps.LatLng(iniLat, iniLng);
var myOptions = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById(idDiv), myOptions);
marker = new google.maps.Marker({
position: new google.maps.LatLng(iniLat, iniLng),
map: map
});
google.maps.event.addListener(map, 'click', function(eve) {
marker.setPosition(eve.latLng);
document.getElementById(idLat).value = marker.getPosition().lat();
document.getElementById(idLng).value = marker.getPosition().lng();
});
}
как вы можете видеть, для этого требуется идентификатор элемента div, желаемая ширина и высота, а также идентификатор скрытых полей, в которых я храню широту и долготу. Если этих значений нет, будет использоваться широта и долгота Париж.
Что я хотел бы сделать, так это улучшить эту функцию, чтобы она могла принимать строковое значение с таким адресом, как "улица Святого Иосифа № 45, Париж", и ставить маркер, если она находит адрес.
Мой вопрос: знаете ли вы, есть ли способ получить широту и долготу из строки поиска с помощью API карт Google? (первое вхождение это сделает)