Çeşitli JavaScript haritalama kütüphanelerini karşılaştırmak?


138

Web tabanlı bir haritalama sistemi üzerinde çalışıyorum ve hangi kütüphanenin kullanılacağını çözmeye çalışıyorum.

Bunlar, mevcut kütüphanelerin karşılaştırılmasına bağlantılar:

görüntü tanımını buraya girin

Şimdiye kadarki kütüphanelerin listesi:

  • Google Haritalar
  • Microsoft Sanal Dünya
  • MapQuest
  • Broşür - "Yorum daha küçük, daha hızlı, daha yeni ve daha anlaşılır şekilde daha az özellik olarak okunabilir ve daha az test edilebilir." -Geografika (aşağıya bakınız)
  • JavaScript için ArcGIS API - ArcGIS Sunucusu ile en iyi şekilde çalışır (aşağıya bakın). ESRI API'sını Google / Bing haritaları ile kullanmanıza izin veren Google Haritalar ve Bing haritaları uzantıları da vardır (bu çoğu kütüphanede geçerli olmasına rağmen).
  • Yahoo Harita API'sı
  • Michelin Üzerinden
  • OpenLayers - Kapsamlı dokümantasyon ve iyi bir işlevsellik ile farklı harita sağlayıcıları kullanma yeteneği.
  • Mapquery - MapQuery piyasaya sürüldü ve şimdi bazı yararlı dokümantasyonları var OpenLayers ve jQuery'yi birleştirmek için çok değerli bir amacı var. Özellikle OpenLayers + jQuery fikrini merak ediyorsanız veya bir JavaScript Haritalama Kütüphanesine katkıda bulunmak istiyorsanız, kendinize katılın ve çabalarınıza katkıda bulunun. Ancak, yalnızca son kullanıcı olmak istiyorsanız veya bu alanda yeni iseniz, sizin için olmayabilir.
  • Haritalama - Özellikle çok sayıda temel harita sağlayıcısıyla çalışmak gibi işleri kolaylaştırır. Ancak halen devam etmekte olan bir çalışmadır ve dokümantasyonda olduğu gibi bazı yerlerde işlevsellik eksiktir. (Örneğin, “FeatureCollection” türündeki bir GeoJSON nesnesi bir özellik toplama nesnesidir. ”Çok bilgilendirici değil.) Görünüşe göre aktif olarak geliştirilmekte olduğu ancak 4/4 / 11'den itibaren Github'da bir taahhüt olmadığı görülüyor. Ocaktan beri.
  • deCarta - Mobil ve masaüstü bir javascript mevcut - ilki HTML5 / CSS3 uyumlu ve ikincisi daha fazla tarayıcı uyumluluğu var. Kaynak kodu sağlandı. Ticari bir API için Friendliest geliştirici terimleri. Haritayı markalamanıza izin verilir ve birkaç farklı harita stili vardır. NAVTEQ veya OSM verisini seçebilirsiniz. Ayrıca birkaç tane Mobil API de var. - TheSteve0 tarafından düzenlendi - Bir deCarta çalışanı
  • CloudMade
  • Polymaps - Raster ve vektör verilerini birçok farklı kaynaktan birleştirmeyi çok kolaylaştırır. Kendi renklendirme, gruplama ve etkileşimi kolayca eklemenizi sağlar. Hızlı çalışır, arka plan döşemesinin yüklenmesini iyi yönetir ve sadece 30k Javascript'tir. Potansiyel aşağı tarafı: MSG 7 veya 8'de çalışmadığı ve çalışmayacağı anlamına gelen SVG'yi kullanır. Diğer tüm tarayıcılarda harika çalışır ve IE9'da çalışması gerekir.
  • Zıpla - zıp, kendi başına çalışan hafif bir harita kütüphanesidir, yani OpenLayers veya GoogleMaps API için bir sarmalayıcı değildir. Şu anda geliştirilme aşamasındadır, ancak birçok temel özellik iyi çalışmaktadır.
  • ModestMaps - Mapbox ve TileMill'in üreticilerinden daha küçük, daha hızlı, daha yeni bir JS haritalama kütüphanesi.
  • Mapiator

OpenLayers şu anda kullanıyorum. Onunla çok şey yapabilirsiniz ve çoğu veri türünü destekler. Ancak her şey için en iyisi değil. Örneğin, Leaflet görüntü solması ve diğer görsel tweaks ile birçok yönden daha yumuşak görünüyor. Eğer jQuery ile ilgileniyorsanız, jQuery ve OpenLayers kombinasyonu gibi MapQuery'yi incelemek isteyebilirsiniz.

Yanıtlar:


93

Bu soru Topluluk Wiki'sine dönüştürüldü ve wiki kilitlendi, çünkü cevapların bir listesini arayan ve kapatılmasını engellemek için yeterince popüler görünen bir soru örneği. Özel bir durum olarak ele alınmalı ve bu konuda ya da herhangi bir Stack Exchange sitesinde teşvik edilen bir soru türü olarak görülmemelidir, ancak daha fazla içeriğe katkıda bulunmak istiyorsanız, bu cevabı düzenleyerek bunu yapmaktan çekinmeyin .


GIS dışı arka plan geliştiricileri için tek işlevli haritalama uygulamaları oluşturma - Leaflet'i (şimdi MapBox tarafından desteklenmektedir) öneririm. Kullanımı kolay ve küçük. Daha fazla işlevsellik, değişen kalite ve destek eklentilerine dayanır.

GIS çevrimiçi tip uygulaması - OpenLayers3'ü kullanın - tek bir kütüphanede tam veri kaynakları, kontroller vb. Paketi vardır. Aynı zamanda basit haritalama uygulamaları için de kullanılabilir, bu yüzden bir karışımınız varsa bunu her şey için kullanırım.

Google hala kütüphane / veri kombinasyonuna sahiptir (örneğin, StreetView başka hiçbir yerde mevcut değildir).

Esri'nin GUI web uygulaması oluşturucuları var ve aşağıda belirtildiği gibi, zaten yığınlarını kullanıyorsanız neden işleri karmaşıklaştırıyorlar.

Ticari API'ler (Google, Bing, Yahoo)

Herhangi bir ticari API kullanmak, sağlayıcının API veya Hizmet Şartları'nda yaptığı değişikliklerin insafına sizi bırakır. Örneğin, Google Haritalar’ı kullanan yerel yönetim portalınız aniden her yerde reklam yayınlıyorsa ne olur ? Bir Intranet sitesi için JavaScript Google Haritalar kodunuzu tekrar kullanmak ister misiniz? 10.000 $ 'lık lisans ücretini kendiniz ödemek zorunda kalacaksınız.

Microsoft, genellikle hizmetleri için (tanımlanmışsa) daha tanımlanmış ve sabit şartlara sahiptir, bu nedenle burada daha az riskli olabilir.

Twitter'a karşı yapılan son tepki , altlarında değişen bir API'ye sahip geliştiricilerin güzel bir örneği. Bir hizmet için ödeme yapmıyorsanız, o zaman siz (veya sisteminiz) satılmaktadır.

Google , haritalarını Ekim 2011'den itibaren kullanmak için ücret almaya başladı .

ESRI

Bir Esri yığını kullanıyorsanız başkalarının belirttiği gibi, JavaScript için ArcGIS API'sinin bunun üzerinde iyi bir şüphe yoktur. Bir CBS altyapısından gelen Esri, muhtemelen "yeni coğrafya" web devlerinden ziyade geleneksel CBS görevleri ve özellikleri hakkında daha fazla düşünmüştür (bu sadece bir düşünce / duygudur).

OpenLayers, ArcGIS REST katmanları için destek sağlamıştır ve kodunuzu ESRI tabanlı olmayan web siteleri için tekrar kullanmak istiyorsanız, açık bir API size en iyi şekilde hizmet eder.

OpenLayers kullanın ...

Geliştiricilerin neden OpenLayers dışında bir API kullandığını gerçekten düşünemiyorum. Açık Kaynak projeleri ilgili Açık Kaynak projeleriyle sonuçlanır , böylece GeoExt kütüphanesi , MapQuery ve GeoPrisma gibi çok sayıda tekrar kullanılabilir bileşen vardır .

Sadece şunu açıklayacağım, çünkü bir proje Açık Kaynak otomatik olarak bunu ticari eşdeğerlerden daha iyi hale getirmez - ancak OpenLayers API bu durumda ticari rekabeti ve kaynağın nasıl çalıştığını, ünite testlerini nasıl çalıştığını görme yeteneği ile eşleşir. komut dosyaları oluşturma, bunun üzerine kolayca yeni özellikler oluşturabileceğiniz anlamına gelir.

Bazı olmuştur son eleştiri karmaşıklığı, stil ve büyüklük ayrılmasından kaynaklanmaktadır, openlayers arasında. Bunlara burada ve burada , OpenLayer'in önde gelen geliştiricilerinden biri olan Christopher Schmidt tarafından karşı tartışmalar yapıldı .

Bu basit bir Açık Kaynak haritalama API gerekiyorsa o zaman CloudMade en bakmak dikkati çekiyor el broşürü .

Bu yorum daha küçük, daha hızlı, daha yeni ve daha anlaşılır şekilde daha az özellik olarak okunabilir ve daha az test edilebilir.

Broşür ve OpenLayers için API belgelerini tarayın . İkincisi, WFS katmanları, düzenleme araçları ve SLD desteği gibi öğeleri içerir. Ayrıca birçok farklı ortamda test edilmiştir ve IE6'da çalışmaktadır (hükümet ve yerel makam kullanıcılarına izin vermektedir).

Mekansal verilerin daha basit gösterilmesi için Leaflet ideal görünüyor ve başlaması daha kolay. Ancak daha zengin özelliklere sahip GIS uygulamaları için OpenLayers ile bağlantı kuracağım.

Uyarılar

Olası bir dezavantaj, genellikle ticari sağlayıcıların sistemlerinde ilk olarak görülen yeni yeniliklerdir - ancak bunlar neredeyse her zaman zamanında OpenLayers'a filtre uygular.

Sonunda, diğer API'lerin daha uygun olduğu bazı senaryolar olduğundan eminim - özel donanımda, başka bir BT sistemiyle uyum sağlamak için veya zaten içeriden bir API tanıyorsanız ve zamanın yarısında geliştirilen bir sistem elde ederseniz .

Bahsettiğiniz tüm API'ler mükemmel çevrimiçi haritalama sistemleri üretme yeteneğine sahiptir, ancak seçiminiz sizin veya şirketinizin gelecekteki gelişim ihtiyaçlarına da uygun olmalıdır.


50

Javascript haritalama cephesinde yeni bir oyuncu var - Leaflet . CloudMade tarafından BSD lisansı altında geliştirilmiştir.

Gerçekten umut verici görünüyor.

görüntü tanımını buraya girin

( Kaynak )


3
Vay bu etkileyici bir kütüphane gibi görünüyor. Bundan haberim olmadığına şaşırdım.
dkroy

2
İşte broşür ve açılış katmanları gezinme davranışının bir karşılaştırması .
dkroy

2
Güzel akış şeması. Broşür gerçekten çok hoş.
Mr_Chimp

7
Leaflet'i daha karmaşık şeyler için kullanmaya çalıştıktan sonra, OpenLayers veya GeoExt ile karşılaştırıldığında oldukça sınırlı olduğunu kabul etmeliyim. Kurulumu çok kolay ve çok güzel görünüyor ama etkileşimler açısından yapabilecekleriniz için bir sınır var. Yine de, her birinin bir yeri var.
Mr_Chimp

3
Grafiğin güncellenmiş kopyası (Ocak 2012'den itibaren) mevcuttur: geotux.tuxfamily.org/index.php/tr/geo-blogs/item/…
Will.

35

Bir Google Maps / arcgis api projem vardı ve yaklaşık bir yıl önce OpenLayers'ı denemeye karar verdim. Ne kadar çok çalışsam o kadar çok hoşuma gitti bu yüzden göç etmeye karar verdim. 30 - 100 satır google kodunu kodum boyunca tekrar tekrar 1 - 3 satırlara böldüm. Bunun sebebi, OpenLayers'in ne yapmak istediğim ile ilgili sıkıntıları olması ve google maps için elle kodlamak zorunda kalmasıydı.


2
Hepsi iyi. Giriş için teşekkürler! Bunun için doğru bir cevap olduğundan emin değilim, bu yüzden görüşler ve fıkralar faydalıdır.
Mr_Chimp

2
+1 Görev, işaretçilerle dolu bir elden fazlasını göstermekse, her zaman Google Haritalar üzerinden OpenLayers'ı seçerdim.
underdark

20

CartoDB , coğrafi verilerinizi PostGIS’te analiz etmek, görselleştirmek ve paylaşmak için bir araçtır. Bu bir var açık kaynak bir SQL API katmanı sağlar coğrafi veritabanı platformu. Geliştiricilerin coğrafi amaçlara göre optimize edilmiş bir bulut PostrgreSQL + OpenGIS veritabanına sorgulamalarını sağlar.

görüntü tanımını buraya girin



12

Basit, belirli ve ortak bir görev yapmak için gereken kodu (vurgulamalar ve notlar ile) karşılaştırabilirim:

  • MapQuest
  • Google Haritalar
  • bing
  • Ovi
  • ESRI
  • OpenLayers
  • jQuery Geo

burada: http://trippingthebits.com/geopres/

Yazı, listenizde ne yazık ki eksik olan jQuery Geo'da verdiğim bir sunum için.


Bu iyi bir makale. Renk kodlamanızı seviyorum! Çok iyi fikir.
Mr_Chimp

jQuery Geo FTW!
Sameer

1
@SameerAlibhai! Bizi izlemeye devam edin, yakında Release Candidate 1'i yayınlayacağız.
ryanttb

11

Tarayıcı içinde bir dünya görselleştirmek istiyorum Sezyum güzel bir tanesidir. (Eklenti olmadan çalışır ancak tarayıcı WebGL desteğine ihtiyaç duyar)

3D, 2D ve 2.5D görünümünü görüntüleyebilir

Sezyum, 3D, 2D ve 2.5D'yi destekliyor

Farklı raster / vektör formatları (KML vb.) Desteği

Differnet raster / vektör veri desteği

Kamera ve Kamera uçuşlarını ücretsiz kontrol edin

Kamerayı kontrol et

... ve (modern) tarayıcılardaki her şey.


2
vay, bu gerçekten çok güzel bir proje! :)
Krystian

1
Tamam, ama o zaman bize Sezyum'un neden standart WFS'yi (Web Özelliği Hizmeti) desteklemediğini (ve diğerleri) açıklayabilir misiniz? Bana öyle geliyor ki, çok güçlü bir izleyici, ancak bir CBS sistemi değil.
Web-GIS girişimcisi

11

Tam bir karşılaştırma yapmak için yetkin değilim, ancak Polymaps ile üç farklı küçük proje yaptım ve bu konuda yorum yapabilirim. Temel gücü, raster ve vektör verilerini birçok farklı kaynaktan birleştirmeyi çok kolaylaştırmasıdır. Özellikle kendi renklendirme, gruplama ve etkileşimi kolayca eklemenize izin vermek için tüm gereksinimlerinizi karşılayabilir. Polymap'ler ayrıca oldukça verimlidir: hızlı çalışır, arka plan döşemesinin yüklenmesini iyi yönetir ve yalnızca 30k Javascript'tir.

Polymaps ile birincil dezavantajı, SVIE'yi kullanmasıdır; bu, MSIE 7 veya 8'de çalışmadığı ve çalışmayacağı anlamına gelir. Diğer tüm tarayıcılarda harika çalışır ve IE9'da çalışması gerekir, ancak ne kadar iyi test edildiğinden emin değilim. SVG aynı zamanda güçlüdür: programlanması kolaydır ve görüntü oluşturma, özellikle ölçekleme vektörü ve raster özelliklerini küçük artışlarla gösterir.

Kütüphaneler hakkında bir uyarı: Google'ın raster döşemelerini temel harita olarak kullanmak istiyorsanız Javascript kütüphanelerini kullanmanız gerekir. OpenStreetMap, vb. Kütüphaneleri seçmenize izin veren çok daha izin verilen lisanslara sahiptir.

(Bu cevap 2011'den itibarendir ve çok şey değişmiştir. Polymaps artık korunmamaktadır. Bu noktada Leaflet tercih edilen açık kaynak kodlu kütüphanedir.)


4
Cevabımla ilgili sadece bir güncelleme; Polymaps birkaç yıldır hiçbir gelişme göstermedi. Hala bazı benzersiz yetenekleri olan ilginç bir kütüphane, ama yeni bir proje için kullanmazdım. Bu günlerde Leaflet kullanıyorum.
Nelson

9

Ben bir haritacılık mezunuyum ve web haritalamaya yeni başlayan biriyim, ancak farklı teknolojileri karşılaştıracak bir proje üzerinde çalışıyorum ve web haritalamaya başlamak için temel bir “nasıl yapılır” kılavuzu hazırladım. Analizim hiçbir şekilde kapsamlı değildir ve her kütüphaneyi kendileriyle oynayarak ve daha tecrübeli programcılardan gelenler gibi mesajlar aracılığıyla algılamaya çalışıyorum. Herhangi bir geri bildirim almaktan memnuniyet duyarım.


(+1) Katkılarınız için teşekkürler - topluluğumuza hoş geldiniz!
whuber


7

Urban Mapping'ten Mapfluence da aynı şekilde yer alıyor. Web tabanlı coğrafi servisler sunan, RESTfully ve JavaScript ile erişilebilen barındırılan haritalama platformu (rota üzerinde geliştirilmiş dokümanlar / eğitimler) API. Veya eğer istersen OL. Kendi temel karolarımızı üretiyoruz , büyük bir talep üzerine veri kataloğuna sahibiz ve veri ve diğer görselleştirme sorgularını destekliyoruz.

Geoservices hakkında Wed on O'Reilly web seminerine göz atın + coğrafi neyin ne olduğuna genel bir bakış için büyük veriler.


7

Ayrıca Geomajas'a da bakabilirsiniz . Bu, Java ile yazılmış bir GIS çerçevesidir (GWT kullanan bir Java istemcisi dahil). Ancak, şu anda JavaScript'te tam bir istemci tarafı API sağlamak için bir eklenti bulunmaktadır. Henüz sabit değil ama bir göz atmaya değer. Geomajas'ı kullanmanın avantajı arka uç ile istemci arasında güçlü bir entegrasyon olup, işi sunucuya kolayca boşaltma ve özellikle güvenlik için eklenmesi de dahil olmak üzere birkaç avantajı vardır.


6

Ammap'i tavsiye ederim: http://www.ammap.com Flash haritaları kullanıyorlardı, ancak son zamanlarda birçok harika özelliğe sahip JavaScript haritaları kullandılar.


4

Bir veri görselleştirme kütüphanesi arıyorsanız, Highcharts'ın arkasındaki insanlardan Highmaps'ı inceleyin (kendim dahil - şu anda bir yazılım geliştiricisi olarak çalışıyordum). Ticari olmayan kullanım için ücretsizdir, mobil tarayıcılarda (tam dokunma desteği) ve eski IE'yi IE6'ya kadar harika çalışır. Aşağı açılan ve zengin araç ipuçları gibi gelişmiş dinamik özellikleri destekler.

görüntü tanımını buraya girin görüntü tanımını buraya girin



1
Düzenli, yeterince adil.
Oystein,

3

JavaScript haritalama kütüphanelerinden istediğiniz özellikleri karşılaştırmak için ilginç bir metodoloji bulunabilir (bu kullanım durumuyla sınırlı değildir). NACIS 2012 etkinliğinde Richard Donohue & al. . İlginç olan, amaç ve istenen özelliklere göre nasıl sınıflandırma yaptıkları ile ilgilidir.



2

Heron'u da düşünebilirsiniz . Ext üzerine kurulmuş ve açık katmanları bir araya getirerek özelleştirebileceğiniz birçok şablonu var.

Diğer bir potansiyel aday GeoJS'dir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.