Клуб API Карт

Проблема с геокодированием

marauderfelix
30 января 2013, 16:27

Добрый день, подскажите пожалуйста, что я делаю не так в функции geocoder, возвращаемый объект = null, заранее благодарю!

 

 

 <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0px; padding: 0px }
  #map { height: 100% }
</style>
    <!--
        Подключаем API карт 2.x
        Параметры:
          - load=package.full - полная сборка;
     - lang=ru-RU - язык русский.
    -->
    <script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU"
            type="text/javascript"></script>
    <script type="text/javascript">
        // Как только будет загружен API и готов DOM, выполняем инициализацию
        ymaps.ready(init);
var myMap
var myCollection
var mymarkd
        function init () {
            myMap = new ymaps.Map('map', {
                    center: [55.8, 37.8],
                    zoom: 10
                });
            // Для добавления элемента управления на карту
            // используется поле controls, ссылающееся на
            // коллекцию элементов управления картой.
            // Добавление элемента в коллекцию производится
            // с помощью метода add().
            // В метод add можно передать строковый идентификатор
            // элемента управления и его параметры.
            myMap.controls
                // Кнопка изменения масштаба
                .add('zoomControl')
                // Список типов карты
                .add('typeSelector')
                // Кнопка изменения масштаба - компактный вариант
                // Расположим её справа
                .add('smallZoomControl', { right: 5, top: 75 })
                // Стандартный набор кнопок
                .add('mapTools');
myCollection = new ymaps.GeoObjectCollection();
myMap.behaviors.enable('scrollZoom');
        }
function d_mark(lat, lng){
 mymarkd = new ymaps.Placemark([lat, lng], {
                    hintContent: ''
                }, {
                    draggable: true // Метку можно перетаскивать, зажав левую кнопку мыши.
                });
myCollection.add(mymarkd);
myMap.geoObjects.add(myCollection);
}
function mark(lat, lng){
 myGeoObject = new ymaps.Placemark([lat, lng], {
                    hintContent: ''
                }, {
                    draggable: false
                });
myCollection.add(myGeoObject);
myMap.geoObjects.add(myCollection);
}
function remove_marks(){
myCollection.removeAll();
}
function pan_to(lat, lng){
myMap.panTo([lat, lng], {duration: 500});
}
function set_zoom(){
myMap.setZoom(zoom, {duration: 1000});
}
function set_center(lat, lng, zoom){
myMap.setCenter([lat, lng], zoom, {
    checkZoomRange: true
});
}
function get_coord(){
return mymarkd.geometry.getCoordinates();
}
function geocoder(){
ymaps.geocode('Москва', {results: 1}).then(
    function (res) {
alert(res.geoObjects.get(0).geometry.getCoordinates());
    },
    function (err) {
        alert('Ошибка');
    });
}
    </script>
</head>
<body>
<div id="map" style="width:100%; height:100%"></div>
</body>
<br>
<input type="button" onClick="geocoder();" value="geo"/>
<br>
<input type="button" onClick="d_mark(55.8, 36.8);" value="marker1"/>
</html>

 

5 комментариев
Подписаться на комментарии к посту
Возможно, у вас с кодировками какие-то проблемы.

Спасибо! Вы правы.

И как мне это исправить? На англ. работает, но мне нужно делать запросы на русском. Заранее спасибо

Сохранить страницу в правильной кодировке, очевидно.

Не помогло, помог: decodeURIComponent( escape( s ) );