Клуб API Карт

Проблема с получением координат YMaps.Geocoder через Events.Load

Пост в архиве.
yuribtr
11 февраля 2010, 01:35
Здравствуйте, имеется вполне рабочий пример получения координат методом геокодирования, взятый с этого примера
    <script type="text/javascript">
var map, geoResult;
YMaps.jQuery(function () {
map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
map.addControl(new YMaps.TypeControl());
});
function showAddress (value) {
map.removeOverlay(geoResult);
var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
if (this.length()) {
geoResult = this.get(0);
map.addOverlay(geoResult);
map.setBounds(geoResult.getBounds());
}else {
alert("Ничего не найдено")
}
});
YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {
alert("Произошла ошибка: " + error);
})
}
</script>

По определенным причинам мне нужно вставлять указанный код не в head страницы, а в body. При загрузке страницы,
после указанного участка кода следует

<div id="YMapsID" style="border: 1px solid #cccccc; width: 75%; height: 400px;"></div>
 <script type="text/javascript">
     showAddress("Москва, ул. Большая")
</script>

Так вот, геокодироание автоматически не проходит. Я так понимаю событие geocoder.Events.Load не вызывается.
Видимо имеет место очень малое время между созданием объекта карты и запуском на геокодирование.
Я пробовал поставить sleep(5) перед showAddress("Москва, ул. Большая"),
но к сожалению єто проблему не решило. Метка автоматически не появляется.

Проблема может быть решена вынесением скрипта создания карты в head и showAddress нужно выполнять
в body onload, но мне это никак не подходит.
Прошу помощи !
Заранее благодарен


2 комментария
Можно разместить скрипт подключения API и инициализации карты после контейнера для карты.

Тогда можно будет обращаться так, как вы хотите.

Вот пример: http://rodlex.narod2.ru/24.html
rodlex,
огромное спасибо Вам.
Все гениальное просто.
Все работает.