Здравствуйте, имеется вполне рабочий пример получения координат методом геокодирования, взятый с этого примера
<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, но мне это никак не подходит.
Прошу помощи !
Заранее благодарен