Клуб API Карт

Определение координат по адресу.

Lestat-riw
11 июля 2011, 08:17

Была поставлена задача: для большого проекта создать карту, отображающую местонахождение определенной организации... Таких организаций тысячи... поэтому вопрос встал в динамическом выводе...

Подскажите пожалуйста, как оптимизировать след. код:


 <body style="margin:0;">
    <script src="http://api-maps.yandex.ru/1.1/?modules=traffic&amp;key=ANpUFEkBAAAAf7jmJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ==" type="text/javascript"></script>
    <script type="text/javascript">
        // Создание обработчика для события window.onLoad
       
        YMaps.jQuery(function () {
            // Создание экземпляра карты и его привязка к созданному контейнеру
            var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]

            // Создание и добавление YMapsML-документа на карту
            var ml = new YMaps.YMapsML('http://geocode-maps.yandex.ru/1.x/?geocode="%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C%20%D0%9D%D0%B8%D0%B6%D0%B5%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C%2C%20%D0%9D%D0%B8%D0%B6%D0%BD%D0%B8%D0%B9%20%D0%9D%D0%BE%D0%B2%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%2C%20%D1%83%D0%BB%D0%B8%D1%86%D0%B0%20%D0%91%D0%B0%D1%82%D1%83%D0%BC%D1%81%D0%BA%D0%B0%D1%8F%2C%2021"&key=ANpUFEkBAAAAf7jmJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ==');

            // Обработчик успешной загрузки YMapsML
            YMaps.Events.observe(ml, ml.Events.Load, function (ml, error) {
                var geoResult = ml.get(0).get(0);
                geoResult.description = geoResult.metaDataProperty.GeocoderMetaData.text;
                map.addOverlay(geoResult);
                map.setBounds(geoResult.getBounds()
                map.addControl(new YMaps.Zoom()
               map.addControl(new YMaps.ToolBar()
               map.addControl(new YMaps.Traffic.Control({ showInfoSwitcher: true }, { infoLayerShown: true })
               map.addControl(new YMaps.TypeControl()
            }

            // Обработчик неудачной загрузки YMapsML
            YMaps.Events.observe(ml, ml.Events.Fault, function (ml, error) {
                alert('Ошибка: ' + error);
            }
        }
    </script>
    <div id="YMapsID" style="width:100%;height:300px; overvlow:hidden;"></div>
</body>

Так, чтобы вместо:  %D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C%20%D0%9D%D0%B8%D0%B6%D0%B5%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C%2C%20%D0%9D%D0%B8%D0%B6%D0%BD%D0%B8%D0%B9%20%D0%9D%D0%BE%D0%B2%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%2C%20%D1%83%D0%BB%D0%B8%D1%86%D0%B0%20%D0%91%D0%B0%D1%82%D1%83%D0%BC%D1%81%D0%BA%D0%B0%D1%8F%2C%2021

Можно было ввести нормальный адрес типа Нижний новгород ул. Пролетарская 11
8 комментариев
Подписаться на комментарии к посту

encodeURIComponent('Нижний новгород ул. Пролетарская 11');

Т.е. заменить мне строчку на такую:
            var ml = new YMaps.YMapsML('http://geocode-maps.yandex.ru/1.x/?geocode=encodeURIComponent('Нижний Новгород ул. Пролетарская 11');&key=ANpUFEkBAAAAf7jmJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ==');

Правильно?

нет :)

YMaps.YMapsML('http://geocode-maps.yandex.ru/1.x/?geocode='+encodeURIComponent('Нижний Новгород ул. Пролетарская 11')+'&key=ANpUFEkBAAAAf7j

mJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ==');encodeURIComponent - это функция которая из русских букв сделает страшные :)
var ren = encodeURIComponent('Нижний новгород ул. Пролетарская 11');
var ml = new YMaps.YMapsML('http://geocode-maps.yandex.ru/1.x/?geocode=ren&key=ANpUFEkBAAAAf7jmJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ==');

Попробовал так, тоже не работает((
Все равно не получается...

    var rel = encodeURIComponent('Нижний Новгород ул. Пролетарская 11');
        var ml = new YMaps.YMapsML('http://geocode-maps.yandex.ru/1.x/?geocode='+rel+'&key=ANpUFEkBAAAAf7j
mJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ==');

Подскажите плз. что я не так делаю?

никаких прямых ошибок не вижу.

как проявляется проблема и нету ли ссылки на страницу-жертву?

Все заработало. спасибо.
Ошибка была в энтере....
YMaps.YMapsML('http://geocode-maps.yandex.ru/1.x/?geocode='+encodeURIComponent('Нижний Новгород ул. Пролетарская 11')+'&key=ANpUFEkBAAAAf7j  ------ЗДЕСЬ--------------
mJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ==');
ТЕМА СИСЕК РАСКРЫТА!!!!!!!!!!!!!!!!