Клуб API Карт

создать карту вручную

river-school
6 августа 2014, 14:49

Здравствуйте!

Еесть список геогр. объектов с названиями и координатами.

подскажите, как нанести их на карту (как добавить - поятно, но вот где при этом указывать его название - не очень понял)

9 комментариев
Подписаться на комментарии к посту
Посмотрите пример в песочнице
http://api.yandex.ru/maps/jsbox/2.1/placemark

что-то ничего не выходит. даже с добавлением объектов.

кстати, судя по этому примеру в песочнице, там названия вписываются в сами метки, и появляются при перетаскивании. Хотелось бы, что бы названия отображались рядом с метками (как если бы я создавал карту в конструкторе), а не внутри их.

 

задача такая - есть массив с названиями и координатами

var citys=[['Абакан',91.443699,53.722356],['Алупка',52.297113,54.901383], ...........]

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

 

 я делал так

ymaps.ready(init);

 

function init () {

var myMap = new ymaps.Map("map", {center: [44.005986,56.326887],zoom: 2});

for(city in citys){

myGeoObject = new ymaps.GeoObject({geometry: {type: "Point",coordinates: [city[1], city[2]]}, properties: {iconContent: city[0], hintContent: city[0]}});

myMap.geoObjects.add(myGeoObject);

}

//myMap.setBounds(myMap.geoObjects.getBounds());

}

 

Не надо перебирать массивы через for in.

Он вообще-то для объектов

При такой записи for(city in citys) в переменную "city" попадут индексы массива citys

 

и ваш код 

coordinates: [city[1], city[2]]

присвоит в поле coordinates массив из 2-х undefined

вот спасибо большое. так лучше. но всё равно не то. Метки собраны в какой-то одной области, показывают совсем не туда, куда нужно. для определения координат я пользовался API яндекса, не может же быть чтобы координаты неверными были. И пока непонятно, как добиться того, чтобы надписи были не прямо в метках, а рядом с ними.  и еще вопрос - сюда скриншот можно как-нибудь вставить?

лучше вставить код на jsfiddle.net и запостить тут ссылку

да код-то тут приведен. я хотел вставить карту, которая получилась.

но главное - почему на карте показаны не те объекты, координаты которых я указывал. или что случилось с координатами. и как добиться того, чтобы масштаб карты был рассчитан таким образом, чтобы объекты занимали всю карту.  при указании myMap.setBounds(myMap.geoObjects.getBounds()); вообще карта пропадает

Проверьте порядок координат в ваших данных. По умолчанию API работает с latlong (широта, долгота). Как изменить порядок, можно посмотреть здесь http://api.yandex.ru/maps/doc/jsapi/2.1/dg/concepts/load.xml (параметр coordorder)

как мне яндекс дал эти координаты, в том же виде я их и использую

HTTP геокодер отдает координаты в порядке longlat