Интеграция Cycle Trail Map

Электронные карты, GPS-навигация, проект "Навигатор"
Ответить
  • Автор
  • Сообщение
Сообщения: 383
Зарегистрирован: 2011-сен-27 14:02
Реальное имя: Роман
Откуда: Тольятти

Интеграция Cycle Trail Map

Сообщение romanshuvalov » 2015-апр-10 12:42

Добрый день, господа.

Сегодня моя карта Cycle Trail Map в общем-то доведена до этапа, когда её можно интегрировать в другие сервисы. В связи с этим предлагаю в ВелоСамарском Навигаторе добавить новый слой с этой картой. Карта СТМ создавалась главным образом для того, чтобы на любом масштабе видеть все имеющиеся в базе данных OpenStreetMap лесные тропы, что важно и полезно для составления маршрутов. Она выглядит малость нагромождённой по сравнению с другими картами, но зато на ней видно всё и сразу. Нагромождение линий может сильно помешать рассматриванию паутины векторных маршрутов в Навигаторе, поэтому традиционная карта от Google конечно же тоже нужна, но при рассматривании отдельного маршрута слой СТМ может быть крайне полезным. А уж в Рисовалке тем более. Поэтому и предлагаю добавить его в качестве опции.

Шаблон для тайлов:

Код: Выделить всё

http://ctm.rsh.su/tile/{$z}/{$x}/{$y}.png
Пример тайла: http://ctm.rsh.su/tile/11/1309/664.png

Изображение

Карта отрендерина до 13-го уровня, начиная с 14-го автоматически происходит редирект на карту OpenCycleMap (шаблон URL остаётся прежним). Тайлы покрывают всю Самарскую область и часть соседних областей.

Поскольку использованы данные OpenStreetMap и (с 14-го масштаба) тайлы OpenCycleMap, необходимо выполнить требования о размещении копирайта:
- до 13-го масштаба включительно: Data © OpenStreetMap Contributors, tiles © Roman Shuvalov
- с 14-го масштаба: Data © OpenStreetMap Contributors, tiles © Andy Allan

На сайте проекта (http://cycletrailmap.romanshuvalov.com) я использовал API Яндекс.Карт, в нём у слоя есть функция getCopyright(pos,zoom), которая должна возвращать строку с копирайтом. Определив эту функцию и вписав туда что-то вроде

Код: Выделить всё

if (zoom > 13) {
  return 'Data © <a href="http://openstreetmap.org/copyright">OpenStreetMap Contributors</a>, tiles © <a href="http://thunderforest.com/opencyclemap/">Andy Allan</a>';
}
return 'Data © <a href="http://openstreetmap.org/copyright">OpenStreetMap Contributors</a>, tiles © <a href="http://romanshuvalov.com">Roman Shuvalov</a>';
получим простое решение проблемы с копирайтами. У вас в Навигаторе я вижу Google Maps API, его я не изучал, но в нём наверняка будет что-то подобное.

Словом, интеграция карты СТМ в Навигатор в качестве отдельного слоя должна быть довольно простой задачей. Если возникнут сложности, могу попробовать разобраться с Google Maps API и помочь решить проблемы, если таковые возникнут.

И еще, маленькое пожелание: уменьшите толщину маршрутов (красных линий) раза эдак в полтора. Или даже в два. Будет чище и опрятней.

Такие дела. Спасибо за внимание, жду обратной связи :HI:
_________________
Велосипедная карта Самарской области
По ссылке онлайн-карта и инструкция для загрузки на Андроид. Карта доступна и в Навигаторе в качестве подложки.

Аватара пользователя
Сообщения: 9940
Зарегистрирован: 2006-янв-20 13:53
Байк: Univega Alpina HT-560 - 2004, серебристо-черный
Реальное имя: Сергей
Стиль катания: Неспешные покатушки
Откуда: Кинель

Re: Сервис "Рисовалка"

Сообщение honzales » 2015-апр-10 13:09

ALPINE63rus писал(а):И еще, маленькое пожелание: уменьшите толщину маршрутов (красных линий) раза эдак в полтора. Или даже в два. Будет чище и опрятней.
Пробовали, не понравилось.
_________________
У хаски никогда не было ни карты, ни компаса, ни GPS, но он никогда не заблудится. А ты?
Изображение

F.A.Q. по навигации без GPS.
F.A.Q. по навигации с GPS.

Аватара пользователя
Сообщения: 348
Зарегистрирован: 2007-авг-04 17:49
Байк: Ragley Big Wig
Способ связи: 433,3МГц CTCSS 186,2Гц
Откуда: Самара

Re: Сервис "Рисовалка"

Сообщение Dark Templar » 2015-апр-10 14:21

А трудно будет встроить в качестве карты приведенную в приличный вид пользоватескую? Оба проекта бы сильно выиграли и не пришлось бы ALPINE63rus, которому и так есть чем заняться, повторять часть функционала рисовалки.
_________________
Join the HEMA, travel the world, meet interesting people and fight them

Аватара пользователя
Сообщения: 12258
Зарегистрирован: 2004-апр-08 10:04
Откуда: Самара

Re: Сервис "Рисовалка"

Сообщение JackOfShadows » 2015-апр-10 14:33

У нас в "Навигаторе" и "Рисовалке" справа/сверху 2 кнопки - "Карта" и "Спутник". Наиболее логичным выглядит добавить третью кнопку "Вело" и открывать по ней Cycle Trail Map / OpenCycleMap.

Сообщения: 383
Зарегистрирован: 2011-сен-27 14:02
Реальное имя: Роман
Откуда: Тольятти

Re: Сервис "Рисовалка"

Сообщение romanshuvalov » 2015-апр-10 19:23

Так я обо всём этом и сказал. Предлагаю добавить в навигатор третью кнопку. Все данные для реализации я привёл, если нужна помощь - изучу Google Maps API и помогу, но судя по функционалу рисовалки ваш программист и так прекрасно во всём разбирается.

Повторять навигатор у себя на сайте СТМ я ни в коем случае не собираюсь, суть моего проекта была только в рендеринге своей карты и затем её использовании в мобиле, в печатном виде и где-нибудь ещё. В вашем Навигаторе, например.
_________________
Велосипедная карта Самарской области
По ссылке онлайн-карта и инструкция для загрузки на Андроид. Карта доступна и в Навигаторе в качестве подложки.

Аватара пользователя
Сообщения: 12258
Зарегистрирован: 2004-апр-08 10:04
Откуда: Самара

Re: Сервис "Рисовалка"

Сообщение JackOfShadows » 2015-апр-13 19:08

ALPINE63rus писал(а):Так я обо всём этом и сказал. Предлагаю добавить в навигатор третью кнопку. Все данные для реализации я привёл, если нужна помощь - изучу Google Maps API и помогу, но судя по функционалу рисовалки ваш программист и так прекрасно во всём разбирается.
Разбираться-то он разбирается, но полгода очередной урок по "Рисовалке" написать не может и тем более импорт файлов из нескольких секций kml/gpx/plt сделать.

Ты можешь сказать, сильно ли сложно сделать отображение множества твоих тайлов оверлеями на гугл мапс? Начать, видимо, можно с

https://developers.google.com/maps/docu ... mple?hl=ru
https://developers.google.com/maps/docu ... mple?hl=ru

и возможно http://habrahabr.ru/post/146107/

?

Сообщения: 383
Зарегистрирован: 2011-сен-27 14:02
Реальное имя: Роман
Откуда: Тольятти

Re: Сервис "Рисовалка"

Сообщение romanshuvalov » 2015-апр-14 11:46

отображение множества твоих тайлов оверлеями на гугл мапс
Оверлеи в данном случае не лучшее решение. Надо именно слой тайлов. Я почитаю гугл мапс API и попробую прям написать готовый код.

Вопрос - а известно, какая версия API Google Maps используется в Навигаторе? Судя по всему вторая, по которой даже документацию Гугл не даёт - пихает третью. Разница по всей видимости невелика, но код надо отлаживать будет прямо на ВелоСамаре.

upd.: Вот, что получилось на данный момент. http://cycletrailmap.romanshuvalov.com/ ... etest.html
Переключалка в левом нижнем углу унаследована от третьей версии гугл-карт (во второй должна остаться там где и сейчас, как в Навигаторе). С копирайтом еще не разобрался.

upd.2: Нашел пример с копирайтом, разбираться буду чуть позднее.
_________________
Велосипедная карта Самарской области
По ссылке онлайн-карта и инструкция для загрузки на Андроид. Карта доступна и в Навигаторе в качестве подложки.

Аватара пользователя
Сообщения: 12258
Зарегистрирован: 2004-апр-08 10:04
Откуда: Самара

Re: Сервис "Рисовалка"

Сообщение JackOfShadows » 2015-апр-14 12:50

Апи уже давно третье.

Сообщения: 383
Зарегистрирован: 2011-сен-27 14:02
Реальное имя: Роман
Откуда: Тольятти

Re: Сервис "Рисовалка"

Сообщение romanshuvalov » 2015-апр-14 12:54

JackOfShadows писал(а):Апи уже давно третье.
Это хорошо. Не понятно только, зачем используется ключ при подключении скрипта.

В общем, я попробую скопировать исходник навигатора к себе (то, что относится к созданию карты) и всё сделать локально. Когда всё получится, выделю добавленные и изменённые строчки и можно будет встроить уже на сайт.
_________________
Велосипедная карта Самарской области
По ссылке онлайн-карта и инструкция для загрузки на Андроид. Карта доступна и в Навигаторе в качестве подложки.

Аватара пользователя
Сообщения: 12258
Зарегистрирован: 2004-апр-08 10:04
Откуда: Самара

Re: Сервис "Рисовалка"

Сообщение JackOfShadows » 2015-апр-14 12:57

ALPINE63rus писал(а):
JackOfShadows писал(а):Апи уже давно третье.
Это хорошо. Не понятно только, зачем используется ключ при подключении скрипта.
Они требуют по полиси (или раньше требовали) - чтобы при превышении какого-то количества запросов в месяц они могли предупредить о переходе на платный план.

Сообщения: 383
Зарегистрирован: 2011-сен-27 14:02
Реальное имя: Роман
Откуда: Тольятти

Re: Сервис "Рисовалка"

Сообщение romanshuvalov » 2015-апр-14 13:26

Глянул - и правда. Только не требуют, а рекомендуют. Так что пусть ключ висит.

А тем временем успех не за горами: http://cycletrailmap.romanshuvalov.com/ ... est.html?2

Сейчас доразбираюсь со строкой копирайта и в общем-то всё готово. Есть у меня еще кое-какие мысли по поводу создания специального стиля карты именно для использовании в качестве подложки (посветлее и менее нагромождённое), но об этом позже.

И еще, напрягает высота карты. Она задана жёстко (500 px), и на FullHD (да и на 1366х768) экранах большая часть площади окна браузера остаётся незадействованной. Попробую сделать её относительной, чтоб подстраивалась под высоту браузера.
_________________
Велосипедная карта Самарской области
По ссылке онлайн-карта и инструкция для загрузки на Андроид. Карта доступна и в Навигаторе в качестве подложки.

Сообщения: 383
Зарегистрирован: 2011-сен-27 14:02
Реальное имя: Роман
Откуда: Тольятти

Re: Сервис "Рисовалка"

Сообщение romanshuvalov » 2015-апр-14 14:17

Всё готово.

С копирайтом получился отстой, но контролы гугла у меня не отображаются, отлаживать не могу (чинить долго и нет времени). Если моё решение (div под картой) не устраивает - просьба запихнуть копирайт в карту самостоятельно, но вообще вроде и так неплохо смотрится.

http://cycletrailmap.romanshuvalov.com/ ... est.html?3

См. исходный код, там три фрагмента, помечены комментариями. Всё подряд копировать нельзя, т.к. я во время отладки и что-то другое изменял, уже не помню, что.
_________________
Велосипедная карта Самарской области
По ссылке онлайн-карта и инструкция для загрузки на Андроид. Карта доступна и в Навигаторе в качестве подложки.

Аватара пользователя
Сообщения: 12258
Зарегистрирован: 2004-апр-08 10:04
Откуда: Самара

Re: Сервис "Рисовалка"

Сообщение JackOfShadows » 2015-апр-14 14:23

Отлично, будем прикручивать. Спасибо.

Сообщения: 383
Зарегистрирован: 2011-сен-27 14:02
Реальное имя: Роман
Откуда: Тольятти

Re: Сервис "Рисовалка"

Сообщение romanshuvalov » 2015-апр-14 14:29

Позже, когда будет время, я всё-таки хочу попробовать отрендерить карту с другим стилем - более светлым, примерно как карта Google сейчас. Чтоб на ней было лучше видно ваши красные треки, а то на СТМ будет слишком всё наляписто. СТМ задумывалась как самостоятельная карта, я не планировал её использование в качестве подложки под что-то. Поэтому попробую сделать "подложечный" вариант. Но это потом.

:HI:
_________________
Велосипедная карта Самарской области
По ссылке онлайн-карта и инструкция для загрузки на Андроид. Карта доступна и в Навигаторе в качестве подложки.

Сообщения: 383
Зарегистрирован: 2011-сен-27 14:02
Реальное имя: Роман
Откуда: Тольятти

Re: Сервис "Рисовалка"

Сообщение romanshuvalov » 2015-апр-16 14:16

Ещё предложение - в окошке (балуне) с информацией о треке внести изменения:

Изображение

До:

Изображение

После:

Изображение

Если к верхней строчке доступа нет (оно возможно самим Гуглом рисуется), тогда либо забить на неё, либо можно попробовать обернуть всё во внешний див с "text-align: center", но не факт, что получится. Вместо center можно кстати и left поставить.
_________________
Велосипедная карта Самарской области
По ссылке онлайн-карта и инструкция для загрузки на Андроид. Карта доступна и в Навигаторе в качестве подложки.

Сообщения: 383
Зарегистрирован: 2011-сен-27 14:02
Реальное имя: Роман
Откуда: Тольятти

Re: Сервис "Рисовалка"

Сообщение romanshuvalov » 2015-май-19 21:33

Ну что, давайте, что ли, добавим подложку CycleTrailMap и в остальные страницы навигатора - ViewPLT.php, navigatorMap.php и прочее. Я посмотрел код, вижу, где и что внедрить - между

Код: Выделить всё

mapmap=new google.maps.Map(mapObjmap,mapOptionsmap);
и

Код: Выделить всё

mapmap.setOptions({styles:stylesmap});
надо добавить вот это:

Код: Выделить всё

var ctmTypeOptions = {
				getTileUrl: function(coord, zoom) { return "http://ctm.rsh.su/tile/"+zoom+"/"+coord.x+"/"+coord.y+".png"; },
				tileSize: new g.Size(256, 256),
				maxZoom: 17,
				minZoom: 0,
				name: "Велокарта"
			};
			var ctmMapType = new g.ImageMapType(ctmTypeOptions);
			mapmap.mapTypes.set('ctm', ctmMapType);
			g.event.addListener(mapmap, 'maptypeid_changed', function() { // показать/скрыть копирайт OSM/CTM/OpenCycleMap
				document.getElementById("ctm_copyright").style.display = (mapmap.getMapTypeId() == 'ctm') ? 'block' : 'none';
			});
		});
И еще там кое-чего в mapOptions по аналогии с тем, что делали на главной странице навигатора. Помню, меня предупреждали про костыльную генерацию кода из смеси php+js, но строки очевидно статические, и в них можно всё это вписать (и еще не забыть про див с копирайтом).

За дело взяться могу и сам.
_________________
Велосипедная карта Самарской области
По ссылке онлайн-карта и инструкция для загрузки на Андроид. Карта доступна и в Навигаторе в качестве подложки.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей