поиск адреса с помощью API Google Maps Javascript - PullRequest
0 голосов
/ 31 августа 2010

Я создал следующую функцию для отображения и адресации в 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? (первое вхождение это сделает)

1 Ответ

4 голосов
/ 31 августа 2010

Использовать геокодер :

...