Клуб API Карт

Добавление меток на карту

aleksejj-shkavro
28 декабря 2010, 13:52

Пожалуйста помогите, проблема с добавлением меток на карту. Вот код, помогите исправить ошибки:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   
    <script src="http://api-maps.yandex.ru/1.1/index.xml?key=AF5uEE0BAAAAi48iPgIAC6pMGew-VkbQfHRAUg2k_KCgxQIAAAAAAAAAAAC8RnK_Xo6MG37Hlsr_e__sD2kg2w==" type="text/javascript"></script>
    <script type="text/javascript">
        // Создание обработчика для события window.onLoad
        YMaps.jQuery(function () {
            // Создание экземпляра карты и его привязка к созданному контейнеру
            var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

            // Установка для карты ее центра и масштаба
            map.setCenter(new YMaps.GeoPoint(25.89, 48.28), 10,
            YMaps.MapType.MAP);map.addControl(new YMaps.TypeControl());
            map.addControl(new YMaps.ToolBar());
            map.addControl(new YMaps.Zoom());
            map.addControl(new YMaps.MiniMap());
            map.addControl(new YMaps.ScaleLine());
            map.enableScrollZoom();
            alert("Загрузка завершена...");

            YMaps.jQuery('form').bind('submit', function (e) {
            e.preventDefault();
            var target = YMaps.jQuery(e.target);
           
            var geocoder = new YMaps.Geocoder(target.find('#search').val(), {results: 1});
                YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
                    var result = this.get(0);
                       if (result.precision=='exact'){map.addoverlay.Placemark(result);}
                            else alert("Error!!!");
                 });
            });

        });

    </script>
</head>

<body>
    <form>
    <p>
       <input  name="addrss" type="text" id="search" style="width:525px;" value="Чернівці" />
       <input  type="submit" value="Искать" />
    </p>
    <div id="YMapsID" style="width:600px;height:400px"></div>
</body>

</html>

7 комментариев
Подписаться на комментарии к посту
тут нет ошибок.
алертит "Error!!!" потому что приходит result.precision == 'other'
Почитайте про precision
Элемент  precision используется в случаях, когда      запрос требуется  геокодировать с точностью до дома.
В вашем запросе нет номера дома
при запуске все работает норм, но при нажатии на сабмит, прога должна проверять чи правильно указан адрес и ставить метку на карту если указан верно, она проверяет но не ставит метку...  
геокодер ничего не знает о том правильно указан адрес или нет.
он может найти или не найти.
А уж насколько то что он нашел правильно, решать вам.
Ошибка в этом ->  var geocoder = new YMaps.Geocoder(target.find('#search').val(), {results: 1});
                       или

YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
                    var result = this.get(0);
                       if (result.precision=='exact

Напишы правильный если можеш, пожалуйста
if (result.precision === 'exact' && result.kind === 'house') {
     map.addOverlay(result);
} else {
     alert('Указанный адрес не найден');
}
спасибо большое, помогло)))