Клуб API Карт

Как передать адрес?

elena-bredova
4 февраля 2009, 00:24

К сожалению, не программист...а поставить карту на сайт надо.


Взяла пример http://api.yandex.ru/maps/jsapi/examples/geocoding.html

Чуть модифицировала:

<!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>
    <title>Тест</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=7"/>
    <script src="http://api-maps.yandex.ru/1.0/index.xml?key=00000000" type="text/javascript"></script>
    <script type="text/javascript">
        var map, geoResult;

        window.onload = function init () {
            map = new YMaps.Map(document.getElementById("YMapsID"));
            map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
            
            var typeControl = new YMaps.TypeControl();
            map.addControl(typeControl);
            typeControl.removeType(YMaps.MapType.HYBRID);
            map.addControl(new YMaps.ToolBar());
            map.addControl(new YMaps.Zoom());
            map.addControl(new YMaps.MiniMap());
            map.addControl(new YMaps.ScaleLine());
        }

        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("Ничего не найдено")
                }
            });
        }
    </script>
</head>

<body>


    <a href="javascript:showAddress('д. Подрезово')">Показать адрес на карте</a><br />


        <div id="YMapsID" style="width:400px;height:400px"></div>

</body>

</html>

 

Работает. Но...ведь это бред - нажимать ссылку, чтобы увидеть где этот пункт назначения на карте. Попыталась тупо подставлять в строчке

var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});

 вместо value - д. Подрезово...не работает

Адрес будет браться из БД и по идее должен динамически подставляться и соответвенно должна отображаться карта.


Помогите, умоляю!


UPD: Совет twirl-team с переносом строки showAddress('д. Подрезово'); в конец функции init - помог. Спасибо большое всем, кто откликнулся! :)

5 комментариев
Подписаться на комментарии к посту
а вы в самый конец скрипта (перед ) поставьте вызов функции showAddress('д. Подрезово');
перед тэгом < / script>
Перенесите строку showAddress('д. Подрезово'); в конец функции init (перед закрывающей скобкой).
у меня заработало после того как я сменил кодировку на windows-1251 и перепаисал заново все слова написанные кирилицей в документе, до этого была utf-8. Также если кодировка в браузере (у меня ff) , то опятьже выдает ошибку...