Хочу сначала получить координаты адреса который ввел, а потом его использовать для определения дистанции к моим объектам. Но получается, что событие определения координат происходит позже, чем вывод моих объектов.
var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
map.setCenter(new YMaps.GeoPoint(<?php echo $_COOKIE['town'] ?>), 10);
map.addControl(new YMaps.TypeControl());
map.addControl(new YMaps.ToolBar());
map.addControl(new YMaps.MiniMap());
map.addControl(new YMaps.Zoom());
<?php if ($street): ?>
var xy = 0;
var geocoder = new YMaps.Geocoder("<?php echo $_COOKIE['tName']." ".$street ?>");
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
xy = geocoder.get(0).getGeoPoint(); // получаю координаты
});
<?php endif; ?>
<?php foreach ($rows as $row): ?>
var s = new YMaps.Style();
s.iconStyle = new YMaps.IconStyle();
s.iconStyle.href = "images/icon/<?php echo $row->icon_file ?>";
s.iconStyle.size = new YMaps.Point(24, 24);
s.iconStyle.offset = new YMaps.Point(-12, -12);
<?php if ( $street): ?>
var sys = new YMaps.GeoCoordSystem();
var len = sys.distance(new YMaps.GeoPoint(<?php echo $row->lon.",".$row->lat ?>),new YMaps.GeoPoint(xy)); // использую координаты, но их еще как-бы нету, в этом и проблема ...
<?php endif; ?>
var placemark = new YMaps.Placemark(new YMaps.GeoPoint(<?php echo $row->lon.",".$row->lat ?>), {style: s} );
map.addOverlay(placemark);
<?php endforeach; ?>
});
PS: есть мысль создать еще одну мнимую карту, где получить координаты, записать их в глобальную javascript'овскую переменную, а уже потом выводить нормальную карту, но мне это кажется неправильным решением ... также пробовал while'ом ждать, тоже не помогло ...