Клуб API Карт

трек на карте

savvdm
3 июня 2009, 12:53

Хочется показать на карте путь предполагаемого путешествия и поместить ссылку на карту с треком в ЖЖ. Как проще всего это сделать с помощью Яндекс карт? Трек есть в одном из следующих форматов: plt, gpx, kml. Нарисован от руки, поэтому содержит всего несколько десятков точек.

16 комментариев
Подписаться на комментарии к посту
Королев Михаил
3 июня 2009, 12:59

например при помощи проекта "менеджер треков"

ну или скажем при помощи "конструктора схем проезда"

Спасибо за ответ!

По первому варианту: хотелось бы обойтись без посторонних сайтов.

По второму варианту: не хочется ещё раз ставить точки вручную - трек уже нарисован. Вот если бы его можно было импортировать...

Королев Михаил
3 июня 2009, 13:24
ну или самому сделать на api нечто с нуля, или сэкономить немного времени,сделав трек на моём проекте, забрать полученный YmapML и прикрутить его к себе :)
А что у вас за проект?
Королев Михаил
3 июня 2009, 14:02
из первой ссылки:) менеджер треков - gps-помощник :)

А, понял, спасибо! Я подумаю на эту тему

Константин Удовиченко
3 июня 2009, 16:29
Попробуй воспользоваться конвертером http://www.otrip.ru/kml2yamapsml/ , он еще кривоват и будет переделан, но и сейчас кое-что умеет. По крайней мере перевести трек из KML в YMapsML он способен. :)

Да, у меня была идея написать что-то подобное на XSLT.

В принципе, это не совсем то, что я хотел - полученный XML всё равно надо куда-то выкладывать (или он у вас будет лежать, пока вам не надоест ;)).

Всё равно, спасибо за совет и ссылку!

Вот если бы ссылки, сформированные с помощью static api Яндекс карт можно было бы постить в ЖЖ - это было бы здорово. Но они, как я понимаю, будут работать только на том сайте, для которого зарегистрирован ключ.

Константин Удовиченко
3 июня 2009, 17:03
Карта через Static API это картинка, ее без проблем можно постить в ЖЖ используя img src, у меня через карта через Static API в RSS сайта идет и, соответственно, в ЖЖ и другие ресурсы постится. Или я что-то не помниаю? Другой разговор, что обычная карта это javascript, с которым в ЖЖ есть некоторые проблемы.

Впринципе, обработать KML файл и сгенерить (помимо XML) еще и ссылку на Static API не такая большая проблема. Сделаю это в следующей версии...

А, так они не проверяют, с какого сайта пришли по ссылке? Зачем тогда ключ, вообще?

Я думал, там проверяется referer на соответствие с тем сайтом, для готорого выдан ключ (он ведь тоже в ссылке на static api присутствует).

Константин Удовиченко
3 июня 2009, 17:51
Что-то мне подсказывает, что мы говорим о разном...

Разницу между JavaScript API и Static API можно посмотреть в документации, в соответствующих разделах.

JavaScript API это динамичные карты, с возможносью увеличивать, двигать и т.п. Ссылка на API ключ (http://api-maps.yandex.ru/1.0/?key=ваш_ключ) это обычный js файл...

А Static API это просто сервис который выводит картинку, предварительно получив набор точек через адресную строку. А картинку можно воткнуть куда угодно, куда можно воткнуть картинку, хоть в аватар. :)

Так, что если Вы хотите вставлять в ЖЖ, то придется использовать Static API, если на свой сайт, то берете JavaScript API. В случае, упомянутого выше конвертера, то можно сделать не только XML и ссылку на Static API, но и сгенерировать javascript код, вставив который на свой сайт, вы получите тоже, что самое, если бы Вы загрузили XML.

На мой взгляд использование XML удобнее, по этой причине и взялся писать конвертер, однако использование JavaScript API в полном объеме - практичней и позволяет реализовать больше "выкрутасов".

В ссылку на картинку, которую возвращает static api, также входит api key:

http://static-maps.yandex.ru/1.x/?l=map&pl=c:8822DDC0,w:5,37.656577,55.741176,37.656748,55.741419,37.655131,55.741814,37.658257,55.742524,37.659811,55.743066,37.659667,55.743233,37.659551,55.743603,37.659775,55.743928,37.662398,55.745281&key=ABYQNEkBAAAAgM-ZTwMAK_IKAfJkc-72mWoAq8el6lFmTeEAAAAAAAAAAAChHQgTyECkUqGduyet_fMaeQ6ckw==

Это наводит на мысль, что такую ссылку тоже где попало не опубликуешь - она, скорее всего, работает только для того сайта, для которого ключ. Т.е на своём сайте можно такую ссылку разместить, а в форуме - не факт.

Попробуй скопировать ссылку, приведённую выше в браузер - получишь 401 - Unauthorized, потому что referer пустой.

Константин Удовиченко
3 июня 2009, 19:41

Не знаю точно, как там сделано, но если такие ссылки можно вставлять куда угодно, то твоим ключом может воспользоваться кто угодно. Зачем тогда, вообще, ключи регистрировать? Бери ключ из чужого поста, и пользуйся ;)

Думаю, тут всё не так просто :)

Константин Удовиченко
3 июня 2009, 20:01
Думаю, все ответы можно найти тут http://api.yandex.ru/maps/agreement.xml

5.1. Пользователь не имеет права получать API-ключ для третьих лиц или для использования на сайтах, принадлежащих третьим лицам.

- т.е. в ЖЖ, к примеру :(