Как преобразовать строку (адрес) в YGeoPoint в API Карт Yahoo? - PullRequest
3 голосов
/ 16 сентября 2008

У меня есть список адресов из базы данных, для которых я хотел бы разместить маркеры на карте Yahoo. addMarker() метод в YMap принимает YGeoPoint, который требует широты и долготы. Однако Yahoo Maps должен знать, как конвертировать адреса, потому что drawZoomAndCenter(LocationType,ZoomLevel) может принимать адрес. Я мог бы конвертировать, используя drawZoomAndCenter() затем getCenterLatLon(), но есть ли лучший способ, который не требует ничьей?

Ответы [ 2 ]

1 голос
/ 17 сентября 2008

Вы можете попросить объект карты выполнить геокодирование и перехватить обратный вызов:

<script type="text/javascript"> 
var map = new YMap(document.getElementById('map'));
map.drawZoomAndCenter("Algeria", 17);

map.geoCodeAddress("Cambridge, UK");

YEvent.Capture(map, EventsList.onEndGeoCode, function(geoCode) {
    if (geoCode.success)
        map.addOverlay(new YMarker(geoCode.GeoPoint));
});
</script>

Остерегайтесь одной вещи - в этом примере вызов drawAndZoom сам сделает запрос геокодирования, поэтому вы также получите обратный вызов. Вы можете отфильтровать это или установить центр карты на основе GeoPoint.

0 голосов
/ 16 сентября 2008

Если вы работаете с адресами США, вы можете использовать geocoder.us , который имеет API .

Кроме того, Google Maps Hacks имеет хак, "Hack 62. Найдите широту и долготу адреса улицы" , для этого.

...