2010-06-19 6 views
7

Я хочу начать разработку веб-сайта на основе карты. Сначала я заказал устройство regulat Gps только для проверки сайта, позже я хотел бы использовать gps и другие сотовые устройства Iphone. Так что мне нужно что-то довольно общее.разработка местоположения/карта на основе веб-сайта

Я искал в Интернете каркас разработки на основе карт и придумывал слишком много из них: Geo-сервер, сервер карт, открытые слои, геотекст, api-карты Google и многое другое.

Я не опытный веб-разработчик (скорее, парень из C++), поэтому мне нужно что-то довольно простое, хотя и надежное в одно и то же время. Кроме того, мне нужен бесплатный, и у вас не будет проблем с лицензированием в будущем.

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

Может кто-то опытный порекомендовать один?

Благодаря

ответ

5

Клиент

Я бы с OpenLayers - это с открытым исходным кодом JavaScript Клиентская библиотека, похожий на API Карт Google или Bing API. Однако OpenLayers освободит вас от любых проблем с лицензированием или изменит API, поскольку источник доступен и может быть изменен - ​​это не относится к API Google/Bing/Yahoo. Однако вы можете использовать данные из этих сервисов в виде слоев в OpenLayers и отбрасывать их, если они внезапно заполняются рекламными объявлениями или имеют коммерческие ограничения.

Посмотрите на примеры, чтобы увидеть, если есть один вы можете использовать, чтобы сделать свой первый тест-приложение - http://openlayers.org/dev/examples/

GeoExtJS представляет собой набор дополнительных инструментов и виджетов, которые работают с OpenLayers, возведенный на вершине другого JavaScript framework ExtJS - также с открытым исходным кодом. ExtJS в основном используется для создания пользовательских интерфейсов - форм ввода данных, сеток и т. Д. С использованием JavaScript для отображения в браузере.

Если вы ищете древовидные структуры для включения и выключения слоев и других более продвинутых виджетах пользовательского интерфейса, то GeoExtJS стоит изучить.

Сервер

Если вы только отображение точек, то вы можете создать динамический KML или в формате GeoJSON на вашем веб-сервере и ссылки в этой OpenLayers. Есть библиотеки на всех языках, на которых вы можете основываться. Python стал ключевым языком в геопространственных технологиях и имеет библиотеки GeoJSON, с которыми вы могли бы работать.

GeoServer и MapServer - это серверные программы, которые позволяют вам обслуживать пространственные данные из баз данных с символикой, маркировкой и т. Д. Если у вас много разных наборов данных, тогда стоит потратить время на это.

MapServer написан на C++, поэтому вам, вероятно, проще попробовать это - однако вы можете уйти без специального программного обеспечения на стороне специалиста, особенно если ваши данные состоят из значений X, Y/Lon, Lat которые могут быть легко построены как точки.

1

Я использую Bing Maps для мобильных устройств. Главным образом потому, что он быстрый, и обеспечивает гораздо лучше выглядящие карты, 3d-модели и спутниковые представления для Великобритании, чем карты Google.

У меня также возникли проблемы с заменой Google службы, чтобы обеспечить некоторые улучшения, и это ломает мое приложение, где, по крайней мере, с использованием Bing API, более совместимость рассматривается для существующих приложений. Не то чтобы мне не нравились карты Google. Его резервное копирование для меня ..

Я генерирую карты обоих поставщиков, Bing как основной, вторичный Goole ... это означает, что если в автономном режиме не работает, что происходит, мои пользователи по-прежнему используют мое приложение ,

Heres a link to Bing Maps Dev on a WIndows Phone for example

1

Я бы посмотрел Cloudmade. У них есть несколько API, бесплатные опции, платные опции и использование OpenStreetMap, который для многих мест является одним из наиболее точных решений для сопоставления.

5

Для начала (вы сказали, что вам нужно показать позицию gps в реальном времени) Я думаю, что Google Maps - хороший вариант здесь. Это решение имеет очень простой API и поддержку сообщества, также преимущество здесь (я никогда не сравнивался с чем-то другим, но у меня есть хороший опыт с GMaps и его учебники/ресурсы). Это для клиентской стороны, для серверной части любая веб-инфраструктура должна выполнять эту работу (я использую Django, а также дублирую некоторые гео-вещи, упомянутые ниже в этом ответе).

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

  1. Устройство GPS отправляет данные на сервер (веб-приложение) периодически, данные хранятся в БД.
  2. Пользователи используют браузер для отображения данных с картой (например, карты Google), которая периодически обновляет периодичность позиции в течение некоторого запланированного интервала (например, ajax вызывает сервер для самой текущей позиции). Каждый раз, когда получен ответ, карта должна обновляться.

Я не знаю, есть ли более специализированные решения для этого случая.

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

Все технологии, упомянутые здесь, являются бесплатными.

0

Хотя его все еще в черновике, HTML5 будет поддерживать Geolocation API.Большинство основных браузеров и ручных устройств должны поддерживать его в ближайшем будущем и должны сделать жизнь намного проще для разработчиков, которые хотят независимого от службы решения. Тем не менее вам все равно понадобится служба сопоставления, такая как карты Google, если вам нужно отобразить местоположения.

function showMap(position) { 
    // Show a map centered at (position.coords.latitude, position.coords.longitude) 
} 

// One-shot position request. 
navigator.geolocation.getCurrentPosition(showMap); 

EDIT:

Его уже поддерживается в нескольких основных браузерах:

  • Mozilla Firefox: поддерживается в Firefox 3.5 и более поздних версий.
  • Chrome: Поддержка через Google Gears Geolocation API
  • Opera: Поддерживается в ночные сборки
  • Safari: поддержка скоро в Safari браузер IPhone в.
  • Internet Explorer: экспериментальная поддержка доступна с IE8.
Смежные вопросы