Клуб API Карт

API 2.0 Яндекс.Карт и координаты

Пост в архиве.

здесь берем образец карты с пользовательской меткой http://api.yandex.ru/maps/doc/jsapi/2.x/examples/markericonlayout.html

Тута узнаем координаты: http://api.yandex.ru/maps/tools/constructor/ получили для старой басманной 28/2

  

 

<!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (начало) -->
<div id="ymaps-map-id_134841336431394852021" style="width: 450px; height: 350px;"></div>
<div style="width: 450px; text-align: right;"><a href="http://api.yandex.ru/maps/tools/constructor/?lang=ru-RU" target="_blank" style="color: #1A3DC1; font: 13px Arial,Helvetica,sans-serif;">Создано с помощью инструментов Яндекс.Карт</a></div>
<script type="text/javascript">
function fid_134841336431394852021(ymaps) {
    var map = new ymaps.Map("ymaps-map-id_134841336431394852021", {
        center: [37.667778999999996, 55.768786018665814],
        zoom: 16,
        type: "yandex#map"
    });
    map.controls
        .add("zoomControl")
        .add("mapTools")
        .add(new ymaps.control.TypeSelector(["yandex#map", "yandex#satellite", "yandex#hybrid", "yandex#publicMap"]));
    map.geoObjects
        .add(new ymaps.Placemark([37.667779, 55.768096], {
            balloonContent: ""
        }, {
            preset: "twirl#lightblueDotIcon"
        }));
};
</script>
<script type="text/javascript" src="http://api-maps.yandex.ru/2.0/?coordorder=longlat&load=package.full&wizard=constructor&lang=ru-RU&onload=fid_134841336431394852021"></script>
<!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (конец) -->

--------------------------

безем значения, подставляем в наш код:

// Как только будет загружен API и готов DOM, выполняем инициализацию
        ymaps.ready(init);

        function init () {
            var myMap = new ymaps.Map("map", {
                    center: [37.667778999999996, 55.768786018665814],
                    zoom: 16
                }),
               
                // Создаем метку и задаем изображение для ее иконки
                myPlacemark = new ymaps.Placemark([37.667779, 55.768096], {
                    balloonContent: ''
                }, {
                    iconImageHref: 'img/marker.png', // картинка иконки
                    iconImageSize: [77, 90], // размеры картинки
                    iconImageOffset: [-3, -42] // смещение картинки
                });
            // Добавление метки на карту
            myMap.geoObjects.add(myPlacemark);
        }

 

 

  

Запускаем и.... на всю карту "для этого участка местности нет данных бла-бла-бла" Ну что за ерунда?

 

 

И кстати, у вас там над юзабилити кто-нибудь работает? Запарился пока нашел кнопку открытия темы!!!

 

 

 

 

16 комментариев
Алексей Yarrr!
28 января 2016, 03:37
Запарился пока нашел кнопку открытия темы!!!

А где искали?))

Алексей Yarrr!
28 января 2016, 03:37

Видимо, ерунда в том, что у вас "center: [37.667778999999996, 55.768786018665814],", а карту загружаете, скорее всего, без ключа longlat.

Местами пробовали менять координаты?

 

Александр
28 января 2016, 03:37

искал над блоком с первым вопросом. Обычно на форумах там кнопка бывает.

 

Поменял сейчас и.. зарабоотало. Горе разработчикам от меня громкое фэ

Алексей Yarrr!
28 января 2016, 03:37

Разработчики тут ни при чем, и они оставили возможность менять местами широту и долготу в координатах, отчего у вас и не получилось завести карту с первого раза.

Все потому, что новая версия API по умолчанию использует общепринятый порядок, но сервисы по старинке работают с обратным. Вот вы и наткнулись: карты подключи с настройками по умолчанию (без указания longlat), а координаты взяли сгенерированные автоматически. Если вы посмотрите внимательно на код, который возвращает конструктор, то увидите, что там при подключении апи карт есть тот самый ключик, который меняет местами широту и долготу.

С другой стороны, тот способ получения координат, который вы выбрали, весьма изощренный. В тулзах есть удобный инструмент, много проще, но координаты тоже наоборот :-)

Александр
28 января 2016, 03:37

А кто причем? Дева Мария? Вот еще косяк: задаю у дива через css размеры #map {width:476px; height:430px;}

 

Карта получается вытянутой. Смотрю через фаирбаг: <aside id="map">

<ymaps class="ymaps-map ymaps-i-ua_js_yes" style="z-index: 0; width: 476px; height: 760px;">
спрашивается кто разрешил ставить высоту 760px!!! и растягивать мой блок?
Алексей Yarrr!
28 января 2016, 03:37
А кто причем? Дева Мария?

Не, Баба Гутя.

спрашивается кто разрешил ставить высоту 760px

Почему-то мне кажется, что разработчик). Надо код смотреть.

Александр
28 января 2016, 03:37

а-ха-ха. Точно)

 

Алексей Yarrr!
28 января 2016, 03:37

верстку блока и родителя еще, и стили по возможности.

 

если не сложно - повтори на jsfiddle, народе или где-нибудь страничку покажи. тогда будет ссылки достаточно

Александр
28 января 2016, 03:37

с этим рзаобрался. такой вопрос. поставил я свою метку. А над ней курсор меняется. Ну я применил мегахак: .ymaps-image-with-content {cursor: url("http://api-maps.yandex.ru/2.0.15/release/../images/ef50ac9e93aaebe3299791c79f277f8e") 16 16, url("http://api-maps.yandex.ru/2.0.15/release/../images/ef50ac9e93aaebe3299791c79f277f8e"), move;}
все как бы супер, но если нажать на метке на кнопку мыши и не отпуская потащить, то карта не двигается. Как бы это исправить.

 

и еще || попрос. Есть ли возможность устанавливать пользовательские балуны? В гугле там пришлось стороннюю библиотеку цеплять

и еще вопрос: фаирбак мне в консоли ошибки генерит: attempt to run compile-and-go script on a cleared scope. Что он хочет?

 

Алексей Yarrr!
28 января 2016, 03:37

 

Как бы это исправить.

 

С ходу не скажу, это замороченная штука.

 

 Есть ли возможность устанавливать пользовательские балуны? В гугле там пришлось стороннюю библиотеку цеплять

 

В доках и в примерах есть куча информации. Стороняя библиотека не нужна.

фаирбак мне в консоли ошибки генерит: attempt to run compile-and-go script on a cleared scope. Что он хочет?

http://stackoverflow.com/questions/5433415/error-attempt-to-run-compile-and-go-script-on-a-cleared-scope

1. Мегахаки не нужны, у геообъекта есть опция cursor

"Тащить" карту за геообъект можно выставив ему опцию interactivityModel: 'default#transparent'

Александр
28 января 2016, 03:37

 Чего-то я не понял как это пишется

 

        ymaps.ready(init);

        function init () {
            var myMap = new ymaps.Map("map", {
                    center: [55.768786018665814, 37.667778999999996],
                    zoom: 16
                }),
               
                // Создаем метку и задаем изображение для ее иконки
                myPlacemark = new ymaps.Placemark([55.768096,37.667779 ], {
                    balloonContent: ''
                }, {
                    iconImageHref: 'img/marker.png', // картинка иконки
                    iconImageSize: [78, 92], // размеры картинки
                    iconImageOffset: [-39, -92] // смещение картинки
                });
            // Добавление метки на карту
            myMap.geoObjects.add(myPlacemark);
        }

тут нет ни малейшего намека на геообъект

Placemark - это геообъект с геометрией типа Point

т.е. данный вызов будет делать тоже самое

 

new ymaps.GeoObject({
    geometry: {type: "Point", coordinates: [55.768096,37.667779]},
    properties: {
        balloonContent: ''
    }
}, {
    iconImageHref: 'img/marker.png', // картинка иконки
    iconImageSize: [78, 92], // размеры картинки
    iconImageOffset: [-39, -92] // смещение картинки
});

разработчики плохие, потому что вы не нашли несуществующую кнопку? =)

Александр
28 января 2016, 03:37

:-D это сделали специально, чтобы народ поменьше вопросов задавал