разработка веб-сайта на основе местоположения / карты - PullRequest
7 голосов
/ 19 июня 2010

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

Я искал в Интернете фреймворк для разработки на основе карт и нашел слишком много: Гео-сервер, Картографический сервер, Открытые слои, Geoext, API карт Google и многое другое.

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

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

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

Спасибо

Ответы [ 7 ]

5 голосов
/ 29 июня 2010

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

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

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

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

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

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

5 голосов
/ 25 июня 2010

Клиент

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

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

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

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

Сервер

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

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

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

1 голос
/ 30 июня 2010

бесплатно, с открытым исходным кодом: www.openstreetmap.org,

Вы также можете построить свой собственный сервер, используя ту же технологию:

http://weait.com/content/build-your-own-openstreetmap-server

API: http://wiki.openstreetmap.org/wiki/OpenLayers

1 голос
/ 25 июня 2010

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

1 голос
/ 25 июня 2010

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

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

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

Вот ссылка на Bing Maps Dev на телефоне с Windows, например

1 голос
/ 21 июня 2010

Я могу рекомендовать использовать Google Maps API для отображения ваших карт в браузере.Вы можете найти мои причины в этом ответе .

В текущей версии API есть поддержка получения информации о географическом местоположении для мобильных устройств .

0 голосов
/ 01 июля 2010

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

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

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

РЕДАКТИРОВАТЬ:

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

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