| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Философия программирования > Использование карт местности |
| Автор: Sollare 22.11.2010, 12:04 |
| Здравствуйте, существует идея для проекта/приложения, в двух словах: есть карта города, на которой пользователь отмечает определенные точки, и нужно просчитать кратчайший путь, проходящий через эти точки. Сам алгоритм вопросов не вызывает, а вызывает вот что: Какими картами пользоваться? Мой "научный руководитель" сказал, что можно использовать карты гугла, но я не уверен, до такой ли степени они открыты, чтобы можно было прописывать им свои алгоритмы, и пользоваться ими в такой мере. Если все таки можно - подскажите какую нибудь статейку об этом. Если гугля не подойдет, то посоветуйте, какими средаствами еще можно воспользоватсья - какой формат карт местности/города сейчас распространен, и вызывающий меньше всего проблем? |
| Автор: Sibit 22.11.2010, 13:36 |
| А приложение какое будет, оффлайн, онлайн? на какой системе? Какой бюджет? Сколько пользователей? Исходя из этого и выбирать решение. Для начала посмотри здесь http://gis-lab.info/qa.html#webmap |
| Автор: Sollare 22.11.2010, 16:08 | ||
Приложение разрабатывается как конкурсный проект в университете. Насчет оффлайна/онлайна - вот как раз выбираем. Если гуглмапс можно использовать - то логично, что будет онлайн. Но можно же и использовать уже созданные карты городов, и вот я как раз хочу выяснить, какие есть распространенные, не сложные в осовоении форматы. |
| Автор: Sibit 23.11.2010, 06:29 |
| Тогда нужно разъяснить, что подразумевается под картами. Самые распространенные гис-системы - это MapInfo и ArcGis. Формат файлов у них - tab и shp соответственно. Shp он более распространен, и его поддержка есть почти везде, но напрямую с файлами никто не работает, только через уже готовые приложения или библиотеки. С mapInfo, например, можно работать через OLE. Это что касается векторных форматов, с растровыми все проще там поставляется обычная картинка и файл привязки(исключение geoTiff, там привязка в заголовках). Большинство же карт которые можно найти в инете, делается обычно для GPS- приемников. Форматов там много, но они отлично конвертируются друг в друга. Тут для начала нужно определиться с исходными материалами, оптимально, ИМХО, использовать http://ru.wikipedia.org/wiki/OpenStreetMap существуют сервисы позволяющие получить данные оттуда в каком-нибудь популярном формате, и уже работать с ними как нужно. Тут стоит помнить, что гугл выдает растровые данные. Самый простой вариант, ИМХО, поднять сервис на основе GeoServer или MapServer(эти приложения позволяют публиковать данные во всех распространенных форматах), там разместить обработанные данные из OpenStreetMap (при желании можно и слои Google добавить), и уже к этому подключить свое приложение. |
| Автор: Sollare 23.11.2010, 13:13 | ||
Спасибо за разъяснения, пока ничего не понятно, но будем разбираться) Еще вопросик по поводу гугла - на его основе есть вот такая вещь, как раз высчитывающая оптимальный путь, проложенный через отмеченные точки: http://gebweb.net/optimap/ Она же реализована на картах гугл, можно в двух словах - как они такого добились? |
| Автор: Sollare 25.11.2010, 15:32 | ||
А большие ли возможности предоставляет гугл для разработчиков? Просто я вот примерно так представлю себе работу алгоритма: извлекаем карту, из нее получаем граф, по нему рассчитываем кратчайший путь, выводим на экран. Позволит ли гугл извлечь координаты перекрестков, коими у нас будут вершины графа - вот в чем вопрос... И еще - из вышеупомянутых shp, tab есть возможность извлечь координаты перекрестков, для создания графа? Полазив по инету, не нашел способа. Я просто даже не знаю с чего начать) Я бы как делал - в программе сделал возможность импорта карт (например shp), через нее открывалась бы карта, извлекались бы вершины, заносились в бд, и по ним производился рассчет. Это возможно сделать? |
| Автор: Sibit 26.11.2010, 12:21 | ||||
Сильно сомневаюсь. Вообще стоит внимательно изучить api google maps, сразу все станет на свои места.
Это форматы хранения геоданных, соответственно на что маны хватит, то с ними и можно делать. Вообще неплохо бы определиться с источником данных, а потом уже думать о формате. Я думаю тебе сначала нужно просветлиться насчет геотехнологий, посмотреть как вообще работать с геоданными, поставить какую-нибудь ГИС. Тогда станет понятно, куда копать. Я уже давал ссылку на gis-lab, еще можно здесь инфу посмотреть http://www.geofaq.ru/ |
| Автор: ufna 27.11.2010, 00:54 |
| В MP формате есть множество карт, есть Open Street Maps - также открытый формат. Данные дорожного графа можно брать из них, карту рисовать векторно из них же или загружать тайтлы из гугл мэпс, опен стрин, яндекса и т.п. Но граф дорог ищи именно в открытых форматах, т.к. текущие системы прямого апи не предлагают - только через задницу. |
| Автор: Sollare 27.11.2010, 07:52 |
| Ну я уже наметил примерный путь развития - беру карту в MP или OSM, из него получаю граф, далее в программе рассчитываю по нему, получаю последовтельность точек в виде вершин графа, являющихся кратчайшим путем - и наношу линии на гугль мапс. |
| Автор: ТарасАтавин 24.11.2013, 16:34 | ||
|