Порівнюючи різні бібліотеки JavaScript mapping?


138

Я працюю над веб-системою картографування і намагаюся розібратися, яку бібліотеку використовувати.

Це посилання на порівняння доступних бібліотек:

введіть тут опис зображення

Список бібліотек поки що:

  • Гугл-мапи
  • Microsoft Virtual Earth
  • MapQuest
  • Листовка - "Коментар менший, швидший, новіший і простіший також можна прочитати як менше функцій і менш перевірений". -Географіка (див. Нижче)
  • ArcGIS API для JavaScript - найкраще працює з сервером ArcGIS (див. Нижче). Також доступні розширення карт Google Maps та Bing , що дозволяє використовувати API ESRI для карт Google / Bing (хоча це стосується більшості бібліотек).
  • API Yahoo Map
  • Via Michelin
  • OpenLayers - обширна документація та хороший обсяг функціональності плюс можливість користуватися різними постачальниками карт.
  • Mapquery - MapQuery випущений і тепер має корисну документацію. Вона має дуже вагому мету поєднувати OpenLayers та jQuery. Якщо ви особливо зацікавлені в ідеї OpenLayers + jQuery або якщо ви хочете внести свій внесок у бібліотеку JavaScript Mapping, то приєднайтеся та докладіть своїх зусиль. Однак якщо ви просто хочете бути кінцевим користувачем, або ви новачок у цій галузі, це може бути не для вас.
  • Mapstraction - робить речі дуже простими, особливо працюючи з кількома постачальниками базових карт . Однак це все ще незавершене виробництво, і функціоналу не вистачає на місцях, як і документація. (Наприклад, "Об'єкт GeoJSON типу" FeatureCollection "є об'єктом збору функцій." Не дуже інформативно. з січня.
  • deCarta - має мобільний і настільний javascript - перший сумісний з HTML5 / CSS3, а другий має більшу сумісність браузера. Наведено вихідний код. Найдобріші умови розробника для комерційного API. Вам дозволяється брендувати карту, і є кілька різних стилів карти. Ви можете вибрати дані NAVTEQ або OSM. Вони також мають кілька мобільних API. - під редакцією TheSteve0 - співробітника deCarta
  • Хмара
  • Полімапи - дозволяє дуже легко складати растрові та векторні дані з багатьох різних джерел. Дозволяє легко додавати свої власні забарвлення, групування та взаємодію. Запускається швидко, добре керує завантаженням фонової плитки і становить лише 30 кб Javascript. Один потенційний бік: він використовує SVG, а це означає, що він не працює і не працюватиме в MSIE 7 або 8. Він чудово працює в будь-якому іншому браузері і повинен працювати в IE9
  • Jump - jump - це невелика бібліотека карт, яка працює самостійно, тобто не є обгорткою для OpenLayers або GoogleMaps API. Наразі він знаходиться в стадії розробки, але багато важливих особливостей добре працюють.
  • ModestMaps - Ще одна менша, швидша, новіша бібліотека відображення JS від виробників Mapbox і TileMill.
  • Мапіатор

Я зараз використовую OpenLayers. Ви можете зробити багато з цим, і він підтримує більшість типів даних. Однак це не найкраще для всього. Наприклад, Leaflet виглядає більш гладким у багатьох відношеннях, із затуханням зображення та іншими візуальними налаштуваннями. Якщо ви перебуваєте в jQuery, ви можете перевірити MapQuery, який є як поєднання jQuery і OpenLayers.

Відповіді:


93

Це питання було перетворене на Wiki Wiki та заблоковано, тому що це приклад запитання, який шукає список відповідей і є досить популярним, щоб захистити його від закриття. Це слід розглядати як окремий випадок і не слід розглядати як тип запитання, який рекомендується на цьому або будь-якому сайті Stack Exchange, але якщо ви хочете внести до нього більше контенту, тоді не соромтеся, редагуючи цю відповідь. .


Для не-GIS фонових розробників, що створюють однофункціональні програми для картографування - я, мабуть, рекомендую Leaflet (зараз підтримується MapBox). Простий у використанні і невеликий. Більш функціональні можливості покладаються на плагіни різної якості та підтримки.

Додаток типу GIS в Інтернеті - використовуйте OpenLayers3 - має повний набір джерел даних, елементів керування тощо в одній бібліотеці. Його також можна використовувати для простих додатків для картографування, тому якщо у вас є суміш, я б використовував це для всього.

У Google все ще є комбінація бібліотеки / даних (наприклад, StreetView більше ніде не доступний).

Esri має розробників веб-додатків GUI, і як зазначено нижче, навіщо ускладнювати речі, якщо ви вже використовуєте їх стек.

Комерційні API (Google, Bing, Yahoo)

Використання будь-якого комерційного API залишає вас на милість будь-яких змін, які постачальник вносить в API або Умови надання послуг. Що станеться, наприклад, якщо раптом на вашому порталі місцевого самоврядування, який використовує Карти Google, раптом з’являються рекламні оголошення ? Хочете використати свій код Google Maps для веб-сайту Інтранету? Вам доведеться платити ліцензійну плату в розмірі 10 000 доларів.

Майкрософт часто має більш визначені та визначені умови для своїх послуг (якщо вони платять), тому тут ризик може бути меншим.

Нещодавній зворотний зв'язок проти Twitter - хороший приклад розробників із API, який змінився під ними. Якщо ви не платите за послугу, ви продаєте вас (або вашу систему).

Google почав стягувати плату за використання своїх карт з жовтня 2011 року.

Есрі

Як уже згадували інші, якщо ви використовуєте стек Esri, то API ArcGIS для JavaScript, без сумніву, добре працюватиме над ним. Виходячи з фону ГІС, Есрі, напевно, більше задумувався над традиційними завданнями та особливостями ГІС, ніж веб-гігантами "неогеографії" (хоча це лише думка / почуття).

OpenLayers має вбудовану підтримку шарів ArcGIS REST , і якщо ви хочете повторно використовувати свій код для веб-сайтів, що не базуються на ESRI, то знов відкритий API служить вам найкраще.

Використовувати OpenLayers ...

Я не можу реально подумати, чому розробники використовуватимуть інший API, ніж OpenLayers. Відкриті проекти Джерело привести до супутніх проектів Open Source , так що є багатство повторно використовуваних компонентів там , таких як бібліотеки GeoExt , MapQuery і GeoPrisma .

Я просто додам, що те, що проект Open Source не робить його автоматично кращим, ніж комерційні еквіваленти, - але API OpenLayers відповідає комерційній конкуренції в цьому випадку, а також можливість бачити, як працює джерело, тести одиниці, будувати сценарії тощо означає, що ви можете легко будувати нові функції поверх нього.

Там були деякі недавні критики з OpenLayers, в основному пов'язані з якої складності, укладання, і розмір. Там були зустрічні аргументи, щоб вони тут і тут Крістофер Шмідт , один з провідних розробників OpenLayers.

Варто відзначити , що якщо вам потрібен простий Open Source відображення API , то подивіться на CloudMade в листівці .

Коментар менший, швидший, новіший та простіший, також можна прочитати як менше функцій та менш перевірений.

Скануйте документацію API на наявність Leaflet та OpenLayers . Останній включає такі елементи, як шари WFS, інструменти редагування та підтримка SLD. Він також був протестований у багатьох різних середовищах та працює в IE6 (дозволяє користувачам урядових та місцевих органів влади).

Для більш простого відображення просторових даних Leaflet виглядає ідеально і простіше розпочати. Однак я буду дотримуватися OpenLayers для більш багатих функцій GIS-додатків.

Коваджі

Одним з можливих недоліків часто є нові інновації вперше в системах комерційних провайдерів - однак вони майже завжди проникають у OpenLayers вчасно.

Нарешті, я впевнений, що існують певні сценарії, коли інші API більше підходять - на власному апаратному забезпеченні, щоб вони відповідали організаціям інших ІТ-систем, або якщо ви вже знаєте API зсередини і можете отримати систему, розроблену за половину часу .

Усі згадані вами API здатні створювати чудові системи онлайн-картографування, але ваш вибір також повинен відповідати вашим потребам або потребам вашої компанії в майбутньому.


50

На передній панелі відображення javascript з'явився новий програвач - Leaflet . Розроблений CloudMade за ліцензією BSD.

Виглядає справді перспективно.

введіть тут опис зображення

( Джерело )


3
Нічого цього, здається, вражаюча бібліотека. Я здивований, що цього не знав.
dkroy

2
Ось порівняння лістівок та поведінки на відкритих шарах навігації
dkroy

2
Хороша блок-схема. Листовка насправді дуже приємна.
Mr_Chimp

7
Спробувавши використовувати Leaflet для деяких складніших речей, мушу визнати, що він досить обмежений порівняно з OpenLayers або GeoExt. Налаштувати це дуже просто і виглядає дуже приємно, але є обмеження в тому, що ви можете зробити з точки зору взаємодії. Знову ж таки, у кожного є своє місце.
Mr_Chimp

3
Оновлена ​​копія діаграми (з січня 2012 року) доступна за адресою: geotux.tuxfamily.org/index.php/en/geo-blogs/item/…
буде.

35

У мене був проект Google Maps / arcgis api і близько року тому я вирішив спробувати OpenLayers. Чим більше я працював з ним, тим більше мені сподобалось, тому я вирішив мігрувати. Я скорочував 30 - 100 рядків коду google на 1 - 3 рядки знову і знову протягом усього коду. Просто тому, що OpenLayers мав функції для того, що я хотів зробити, і потрібно було вручну кодувати його для Google Maps.


2
Це все добре. Дякуємо за ваш внесок! Я не впевнений, що для цього є правильна відповідь, тому думки та анекдоти корисні.
Mr_Chimp

2
+1 Я завжди вибирав OpenLayers на Картах Google, якщо завдання полягає у тому, щоб відображати більше, ніж рука, заповнена маркерами.
underdark

20

CartoDB - це інструмент для аналізу, візуалізації та обміну геопросторовими даними в PostGIS. Цегеопросторова платформа бази данихз відкритим кодом, яка забезпечує рівень API SQL. Це дозволяє розробникам вносити запити до хмарної бази даних PostrgreSQL + OpenGIS, оптимізованої для геопросторових цілей.

введіть тут опис зображення



12

Я порівнюю (з виділеннями та примітками) код, необхідний для виконання простого, конкретного та загального завдання в:

  • MapQuest
  • Гугл-мапи
  • кусатися
  • Ovi
  • Есрі
  • OpenLayers
  • jQuery Geo

тут: http://trippingthebits.com/geopres/

Пост призначений для презентації, яку я виклав на jQuery Geo, який, на жаль, відсутній у вашому списку.


Це гарна стаття. Мені подобається ваше кольорове кодування! Дуже гарна ідея.
Mr_Chimp

jQuery Geo FTW!
Самєр

1
Дякую @SameerAlibhai! Будьте в курсі, ми незабаром публікуємо випуск Candidate 1.
ryanttb

11

Я хочу, щоб візуалізувати земну кулю в браузері Cesium - це приємно. (Працює без плагіна, але веб-переглядачу потрібна підтримка WebGL)

Може відображати 3D, 2D та 2.5D перегляд

Цезій підтримує 3D, 2D і 2.5D

Підтримка різних растрових / векторних форматів (KML тощо)

Підтримка різницевих растрових / векторних даних

Безкоштовне управління польотами Камера та Камера

Керуйте камерою

... і все в межах (сучасних) браузерів.


2
вау, це дійсно дуже приємний проект! :)
Кристян

1
Гаразд, але тоді ви можете пояснити нам, чому Cesium не підтримує (та багато інших) стандартний WFS (Web Feature Service)? Мені здається, це дуже потужний глядач, але зовсім не система ГІС.
Web-GIS підприємець

11

Я не компетентний робити повне порівняння, але я зробив три різні невеликі проекти з Polymaps і можу це прокоментувати. Його основна сила полягає в тому, що це дозволяє дуже легко складати растрові та векторні дані з багатьох різних джерел. Він може відповідати всім вашим вимогам, зокрема, дозволяючи легко додавати свої власні забарвлення, групування та взаємодію. Полімапи також досить ефективні: вона працює швидко, вона добре управляє завантаженням фонової плитки, і це лише 30 Кб Javascript.

Основним недоліком Polymaps є те, що він використовує SVG, а це означає, що він не працює і не працюватиме в MSIE 7 або 8. Він чудово працює в будь-якому іншому браузері і повинен працювати в IE9, але я не впевнений, наскільки він добре перевірений. SVG також є сильним: його легко програмувати, і візуалізація виглядає чудово, особливо масштабування векторних та растрових особливостей невеликими кроками.

Одне застереження щодо бібліотек: якщо ви хочете використовувати растрові плитки Google як базову карту, ви повинні використовувати їх бібліотеки Javascript. У OpenStreetMap тощо є набагато більше дозвільних ліцензій, які дозволяють вибрати ваш вибір бібліотек.

(Ця відповідь отримана з 2011 р., І багато чого змінилося. Полімапи більше не підтримуються. На даний момент Листовка є бажаною бібліотекою з відкритим кодом.)


4
Просто оновлення моєї відповіді; Полімапи не мали жодного розвитку протягом двох років. Це все ще цікава бібліотека з унікальними здібностями, але я б не використовував її для нового проекту. У ці дні я використовую Leaflet.
Нельсон

9

Я студент з картографії та новачок у веб-картах, але працюю над проектом зіставлення різних технологій та склав основний посібник "як", щоб розпочати роботу з веб-картою. Мій аналіз аж ніяк не є всебічним, і я намагався зрозуміти кожну бібліотеку, граючи з ними та через такі повідомлення від більш досвідчених програмістів. Я був би радий отримати будь-який відгук.


(+1) Дякую за ваш внесок - ласкаво просимо до нашої спільноти!
whuber


7

Mapfluence від Urban Mapping також є в суміші. Розміщена платформа картографування, що пропонує веб-сервіси геосервісів, доступні RESTfully та API (покращені документи / підручники на шляху). Або OL, якщо ви цього хочете. Ми надаємо власні базові плитки , маємо великий каталог даних на вимогу та підтримуємо дані та інші запити щодо візуалізації.

Перегляньте веб-семінар O'Reilly в ср. Про геосервіси + великі дані для огляду того, що є що в гео.


7

Ви також можете поглянути на Geomajas . Це система GIS, написана на Java (включаючи клієнт Java, що використовує GWT). Однак наразі працює плагін, щоб забезпечити повний API клієнтської сторони в JavaScript. Не зовсім стабільний, але варто його переглянути. Перевагою використання Geomajas є сильна інтеграція між бек-ендом і клієнтом, яка має кілька переваг, включаючи можливість легко завантажувати роботу на сервер і додається спеціально для безпеки.


6

Я б рекомендував ammap: http://www.ammap.com Раніше вони мали флеш-карти, але нещодавно представили карти JavaScript з великою кількістю чудових функцій.


4

Якщо ви шукаєте бібліотеку візуалізації даних, перегляньте Highmaps від людей, що стоять за Highcharts (я включена - зараз працюю розробником програмного забезпечення). Це безкоштовно для некомерційного використання, чудово працює з мобільними браузерами (повна сенсорна підтримка) та старим IE аж до IE6. Підтримує розширені динамічні функції, такі як розгортання та багаті підказки.

введіть тут опис зображення введіть тут опис зображення



1
Досить справедливо, відредаговано.
Ойстейн

3

Цікаву методологію можна знайти для порівняння потрібних функцій бібліотек відображення JavaScript (не обмежуючись цим випадком використання). Вона була представлена ​​на заході NACIS 2012 Річардом Доноуе та ін. . Цікава частина - про те, як вони роблять класифікацію залежно від мети та необхідних особливостей.



2

Можливо, ви також можете розглянути чапля . Він побудований на Ext і відкритих шарах разом, у них є багато шаблонів, які ви можете налаштувати.

Ще один потенційний кандидат - GeoJS .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.