Tarayıcıda vektör tabanlı haritalar oluşturmak için kütüphaneler


13

Bir web veya mobil uygulamada kullanılabilen ve resimler yerine vektör tabanlı haritaları yükleyen Leaflet veya OpenLayers gibi açık kaynaklı bir JavaScript kitaplığı var mı? Sadece yol bilgilerine ve bazı özel hedeflere ihtiyacım var.

Bulduğum tek kütüphane polymaps - ama yine de bir sunucu veya vektör SVG verileri (OpenStreetMap tercih edilir) hizmet veren hizmet gerekir. Ayrıca Mapsforge adlı güzel bir Android projesi var ama bir web uygulaması veya diğer mobil cihazlar için buna ihtiyacım olacaktı.

Yanıtlar:



10

Sadece çizim vektörleri için, Leaflet veya OpenLayers iyi olur. Orada yeni bir şey yok.

Vektör döşemeli haritalar için (yani farklı zum seviyelerinde farklı çözünürlükler / detay seviyeleri), TileStache basit ve iyi bir sunucudur. Polymaps (AFAIK, tek genel amaçlı çalışan js döşeli vektör görüntüleyici) ile çok sayıda deney ile kullanıyorum. Bazı insanlar döşenmiş vektör desteği eklemek için OpenLayers kullanmıştır , ancak AFAIK, bir yıl içinde gövdeye entegre edilmemiştir, bu nedenle yakın gelecekte ilgisizlik nedeniyle olmayacaktır.

TileStache (sunucu) kendisi çok iyi çalışıyor. Yine de, Polymaps ile birkaç hata buldum ve artık güncellenmediği için (terk edilmiş proje), kendimi üretimde kullanmaya ikna edemiyorum (kendim korumak zorundayım ... henüz kendim.)

Benim çözümüm AmigoCloud'da kullanılan özel bir OpenGL yerli vektör oluşturucu yazmak oldu . Aslında, tüm haritalar hizmetimizde bu şekilde oluşturuluyor. Bu amaçla, TileStache oldukça iyi teslimat yaptı.

TileStache Vektör Sağlayıcısına bakmak istiyorsunuz . Nasıl kullanılacağıyla ilgili örnekler için yazdığım çok temel bir vektör test takımına bakabilirsiniz .

Ne yazık ki, Leaflet'in döşenmiş vektörleri desteklediğini düşünmüyorum.


Teşekkürler! Web'de basit bir tilestache demosu var mı?
Karussell

Polymaps popülasyon yoğunluğu döşenmiş bir vektör sağlayıcı önbelleği kullanır (örn. Tilestache sunucusunu çalıştırmaz, ancak çıkışın nasıl görüneceğinin bir kopyası). Koda bakmak, vektör döşemeli polymaps.org/ex/population.html olduğunu açıkça ortaya koymalıdır . Ne yazık ki, çevrimiçi olarak sunulan fayans şeridi demoları vektör sağlayıcıyı kullanmıyor. Bununla birlikte, tilestache-server'ı yerel olarak çalıştırır ve localhost'unuzun demo URL'lerini yapılandırılmış bir vektör veri kaynağı (şekil dosyası, postgis, vb.) İle değiştirirseniz, çalışır. Msg gerekirse yardım için buraya.
Ragi Yaser Burhum

Bu yanıta katılmıyorum özellikle bu For just drawing vectors, Leaflet or OpenLayers will do just fine. Nothing new there.Bu, vektörlerin üst üste bindirilmesi durumunda işe yarar, ancak tüm haritanın (tüm temel katman) vektörler olarak organize edilmesine ne dersiniz?
giser

@giser Bu yüzden "sadece vektör çizim" ve "vektör döşenmiş haritalar" arasında bir ayrım yapıyorum. İkinci cevap, tamamen vektörlerden yapılmış "bütün" haritaları kullandığım terimdi. İşte böyle bir şeyin örneği: bl.ocks.org/mbostock/5593150
Ragi Yaser Burhum

@RagiYaserBurhum: Üzgünüm, yanlış anladım.
giser

10

Güncelleme: bunu yayınladıktan sonra , Mapbox , tarayıcıda WebGL tabanlı vektör temel harita oluşturma yapan Mapbox GL JS'yi yayınladı .

Bu noktada, yerleşik bir seçenek yoktur. Üretimdeki tek tam vektör üretim haritası Google'ın MapsGL'si ve tarayıcı desteği ve performansı nedeniyle çok sınırlı.

Şu anda açık kaynakla en yakın olan Kothic.js ve Kothic'in senaryosu ile kendi taşlarınızı yuvarlamak.


+1 hey, bu harika! neden indirilemediğini anlamıyorum!
Karussell

6

Sorunuzu doğru anlarsam, hem OpenLayers hem de Leaflet vektör verilerini yükler / gösterir.

Örneğin

http://leafletjs.com/examples/geojson/

bu, bir GeoJSON dosyasını arka planda CloudMade aracılığıyla OSM kullanan broşür haritasına yükler.

OpenLayers muhtemelen KML gibi daha farklı vektör formatlarını destekler

http://dev.openlayers.org/examples/dynamic-text-layer.html

Haritaya vektör verileri sunmak için bir sunucunun peşindeyseniz, MapServer, GeoServer ve ESRI ArcGIS Server'a bakın; bunların hepsi, verilerinizi haritanıza bir Web Özelliği Sunucusu (WFS) olarak sunacaktır.


Daha çok haritanın kendisini vektör verileri olarak ifade ediyorum, haritaya yüklediğim bazı özellikler değil.
Karussell

vektör türü aracılığıyla çok fazla veri sunmak tarayıcıyı asabilir veya hatta öldürebilir, çünkü çok fazla <svg>öğe nedeniyle bunu aklınızda bulundurmalısınız
Krystian

@Krystian SVG ile haritayı oluşturursanız. Açık bir şekilde OpenGL / WebGL ile oluşturabilirsiniz (Google Haritalar'ın Android / iOS ve deneysel WebGL javascript haritalarında yaptığı gibi).
Ragi Yaser Burhum

Evet @RagiYaserBurhum, bu konuda düşünmüyordu, ama yine de, bu özel durumda APIs vb .. çünkü sınırlaması WebGL'yi kullanamazsınız
Krystian

1
OP ArcGIS API bahsetmedi, bu yüzden (CBS bol ArcGIS olmadan yapılabilir) varsayalım değildi. Evet, ArcGIS JS'yi WebGL ile karıştırmanın bir acı olacağını kabul ediyorum. Döşenmiş vektörler yenidir - ancak gelecek olma şansları yüksektir. Belki
Ragi Yaser Burhum

2

SVG veya tuval yerine webgl teknolojisine dayanan GL-Solar adlı ilginç bir proje daha buldum . Erken gelişiminde olmasına rağmen bu umut vericidir.

Ayrıca MapCSS , Cartagen ve d3.js de belirtilmelidir. d3.js çevrimiçi osm editörü kullanılır iD . Ayrıca broşür ve html5 oluşturma hakkında bir blog yazısı var .

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.