Я пару раз пользовался Google Maps, но что удивительного в OpenLayers .
Прежде чем приступить к программированию, вот пара вопросов, которые приходят мне в голову,
- Зачем мне использовать OpenLayers вместо Google Maps?
- Во всяком случае, за исключением его лицензии OSS
- Сталкивались ли вы с ситуацией, в которой вы бы абсолютно рекомендовали не использовать OpenLayers?
- Я выполнил поиск "OpenLayers" в Stack Overflow ; Есть не так много ответов. Значит ли это, что это решение мало используется? Может ли это быть проблемой для долгосрочной жизнеспособности проекта?
- Для тех из вас, кто уже использовал OpenLayers: есть ли какие-либо распространенные ошибки / проблемы, с которыми я могу столкнуться?
- Как насчет использования JavaScript Framework с ним? Я видел, что он использует Prototype , и я знаю Prototype, так что все будет в порядке. Но как насчет использования чего-то еще, такого как MooTools ? (Что не совместимо с Prototype, кстати)
- Есть ли какие-либо проблемы со скоростью и производительностью? Мне нужно, чтобы мое приложение было отзывчивым, и я не могу ждать часами, чтобы отобразить карту.
- Есть ли карты, доступные для многих мест, или их много?
- То есть я во Франции, и мне нужно, чтобы мое приложение работало хотя бы для больших городов ... Это будет нормально?
- если нет, то легко ли найти слои и визуализации для OpenLayers и интегрировать их?
- Есть ли какой-нибудь API для отображения дорог?
- Например, чтобы показать дороги, которые являются односторонними.
- Если да, как я могу это сделать? Должен ли я иметь какой-нибудь файл, содержащий информацию о этих дорогах, и затем отображать их на карте самостоятельно?
- Знаете ли вы хороший учебник для OpenLayers?
Я еще не пробовал, это просто из синих вопросов ...
javascript
google-maps
openlayers
Паскаль МАРТИН
источник
источник
Ответы:
Это действительно отличные вопросы! Я профессиональный разработчик и фанат OpenLayers, поэтому я отвечу на ваши вопросы с этой точки зрения.
Зачем мне использовать OpenLayers вместо Google Maps?
Я бы не стал беспокоиться о долгосрочной жизнеспособности проекта. Это главная библиотека сопоставлений на стороне клиента с открытым исходным кодом.
Есть ли какие-либо распространенные ошибки / проблемы, с которыми я могу столкнуться?
Совместимость с JavaScript Framework
Есть ли карты, доступные для многих мест?
Есть ли какой-нибудь API для отображения дорог?
Знаете ли вы хороший учебник для OpenLayers?
Я надеюсь, что это полезно. И у меня есть Stack Overflow, если у вас есть вопросы!
источник
Это не обязательно вопрос OpenLayers ИЛИ Google Maps. В конце концов, вы можете использовать Google Maps для фона вашей карты в OpenLayers. Некоторые более конкретные ответы:
Почему OpenLayers?
Ловушки
Производительность
Фреймворки JavaScript
Доступные карты
источник
Я не видел большого присутствия пользователей OpenLayers на SO, но они там. В OpenLayers списки адресатов довольно активен (я на пользователях и Дев и видеть в любом из 50-100 писем в день обсуждает различные вещи. Вы можете найти списки из этих ссылок тоже.).
Я не могу ответить на все ваши вопросы, но одно, что я хотел бы сказать, это то, что OpenLayers и Google Maps не являются взаимоисключающими. OpenLayers - это библиотека javascript, и вы можете использовать ее для взаимодействия с картами Google. Посмотрите на этот пример: OpenLayers с помощью карт Google . И вот главная страница примеров OpenLayers .
источник
Один момент, который не был полностью сделан здесь, состоит в том, что использование OpenLayers позволяет избежать различных ограничений, накладываемых Google на условия обслуживания для своих картографических API, в том числе:
Вы не можете на законных основаниях использовать карту Google исключительно в разделе своего сайта, для которого требуется оплата, или для частного сайта, на который публика не может подписаться (например, корпоративная интрасеть). (IANAL, но см. Условия предоставления услуг, 9.1 и FAQ )
Вы не можете легально (или практически) использовать Google API для автономных приложений (т. Е. Когда плитки обслуживаются с вашего компьютера). Даже если бы не было юридических ограничений, Google делает это технически очень сложным, в то время как OpenLayers облегчает это.
Google оставляет за собой право закрыть доступ к API, если вы показываете карту с содержанием, которое она считает нежелательным. Пример, приведенный в FAQ, представляет собой карту нелегальных наркотиков, которая дает хорошее представление о серых областях, которые может охватывать это ограничение.
См. Этот FAQ и Условия предоставления услуг для более подробной информации.
Все это говорит о том, что как давний разработчик Карт Google, который недавно начал использовать OpenLayers, я чувствую, что у Карт Google есть лучшая документация, более широкое сообщество пользователей и более четкий и стабильный API, чем у OpenLayers. Таким образом, вы должны сделать компромисс где-то.
источник
Это действительно зависит от того, для чего вы хотите использовать карту. Чтобы просто нанести точки на карту, Google Maps будет в порядке. Слои карты для Google Maps также довольно подробны. OpenLayers, с другой стороны, предлагает гораздо больше функциональности и является очень расширяемым.
У OpenLayers есть много примеров, с которых можно начать.
Что касается карт, OpenLayers - это всего лишь API, поэтому вам нужно предоставить его для отображения слоев. API Карт Google будет ограничен слоями карт, предоставленными Google. С OpenLayer вы можете отобразить практически любой общедоступный картографический сервис (WMS, WFS, TMS, WMS-C). Очень хороший пример - openstreetmap.org - (глобальная карта улиц, собранная сообществом). OSM может быть добавлен к открытым слоям как слой TMS. Проверьте этот пример для получения инструкций.
источник
Некоторые клиенты могут отказаться или иметь серьезные оговорки в отношении использования Карт Google. Они могут иметь обоснованные опасения, что Google может представить рекламу или изменить API без предварительного уведомления. Однако Google Maps имеет преимущество интеграции с другими службами Google (метками, добавлением фотографий, услугами геокодирования). В Интернете вы всегда можете комбинировать множество различных картографических сервисов и API.
источник
Я согласен со всеми ответами, но есть один очень важный момент, который никто не упоминает. OpenLayers и Google Maps имеют разные цели.
OpenLayer - это отличная платформа для отображения геоданных, но Google Maps - это пул служб, которые включают в себя среду для отображения геоданных среди других служб.
Таким образом, Google Maps предоставляет множество сервисов и функций, которых нет у OpenLayes. Некоторыми примерами функций и сервисов Карт Google являются локализация региона, обнаружение датчиков (для устройства с GPS) и локализация пользователей, геокодирование и обратное геокодирование, просмотр улиц и т. Д.
источник
Я использовал оба API. Я делаю программное обеспечение для корпораций, и это программное обеспечение требует картографирования, но не у всех клиентов есть лицензия GoogleMaps, поэтому мне нужно поддерживать оба типа карт.
Я сделал общий API для абстрагирования различий между ними, и позвольте мне сказать вам, что некоторые вещи легче сделать в одном, чем в другом. Подобно ограничению границ, в которых вы можете панорамировать карту, это намного проще сделать в OpenLayers, но тепловые карты проще использовать в GoogleMaps (они официально поддерживаются Google, в отличие от доступных плагинов OpenLayers).
OpenLayers поддерживают автономные карты. Некоторые из моих пользователей находятся в частных интрасетях без подключения к интернету.
У GoogleMaps есть два абсолютно обязательных плагина, MarkCluster и Spiderfier, которые позволяют визуализировать огромное количество маркеров.
GoogleMaps InfoWindows проще в использовании и удобнее, чем OpenLayers.Popups. Это маленькие окна, которые могут открываться при нажатии на маркер. GoogleMap InfoWindows также намного более симпатичны по умолчанию, вам нужно немного поработать над CSS с помощью всплывающих окон.
У GoogleMaps есть просмотр улиц, который иногда полезен.
GoogleMaps имеет больше функций, которые могут вам понадобиться. Хотя многие функции присутствуют и в OpenLayers, но официально не поддерживаются.
Обычно в конце концов вы должны использовать OpenLayers из-за уменьшенной головной боли, которую вы можете получить от лицензирования и использования полосы пропускания от googlemaps. Оба хорошо справляются с базовым отображением (то есть отображают маркеры поверх карты). Если вы не можете найти нужную вам особенность из одной, которая отсутствует у другой, вы должны использовать OpenLayers. См. Это для получения дополнительной информации о биллинге googlemaps и о том, когда вы можете использовать его бесплатно.
Кроме того, GoogleMaps имеет свой базовый тип геолокации как «LatLng», а Openlayers используют «LonLat», что сводит меня с ума, потому что я все время ошибаюсь в порядке параметров в вызовах функций.
источник
В дополнение к тем, кто упомянул проблемы со скоростью, я хотел бы добавить, что средство визуализации VML в IE может работать очень медленно с векторным слоем со множеством функций. Один пользователь упомянул около 200. Это именно то, что я могу добавить, прежде чем IE значительно замедлится до точки зависания. Если вы добавляете функции, которые являются текстовыми метками, вы можете добавить половину меньше, вероятно, потому что внутренне каждая текстовая метка состоит из двух элементов VML.
В Google вы можете создать собственный GOverlay, чей контент является "div", который без проблем отображается в IE.
источник
Я хотел бы добавить пару вещей с двух точек зрения: использование клиента и получение данных.
Использование клиента:
Обслуживание данных:
Вы обслуживаете данные KML ? Если это так, то и OpenLayers, и Google Maps будут работать с ним, и вам, вероятно, придется принять решение в зависимости от использования клиента.
Вы обслуживаете другие виды услуг передачи данных? (WMS, WFS, CSV и т. Д.) Если это так, то, скорее всего, у OpenLayers есть примеры и поддержка для этого.
источник
OL имеет большую базу поклонников и, возможно, является наиболее широко используемым в мире продуктом с открытым исходным кодом.
В этом киберпространстве вы не видите столько потоков и сообщений об этом, потому что люди здесь склонны обсуждать другие виды технологий, такие как JSF и Mobile (не гео), а не потому, что OL похож на распорки.
Однако у Ol есть некоторые недостатки, в основном из-за того, что он настолько низок, что вам приходится писать много кода для выполнения обычных операций. Это тоже может работать хорошо, потому что как разработчик a: у вас есть весь код заранее, а b: настройка и настройка очень просты.
Существуют более сложные бесплатные геоинструменты, но все, что они делают, это называют openlayers и абстрагируют некоторые из более скучных хлопот.
Так что используйте его с уверенностью. Он зрелый, крепкий и не умрет в обозримом будущем. Однако, если вы хотите ускорить процесс разработки, вы должны попробовать другие инструменты, которые монтируются поверх него.
хорошего дня
источник