Çevrimdışı döşenmiş harita web uygulaması


23

Bunu buraya ya da Stackoverflow'a göndermek isteyip istemediğimden emin değilim. Bir deneyeyim.

Önerilen HTML5 standardında, web uygulaması verilerini bir önbellek bildirimi kullanarak yerel bir önbellekte saklama seçeneği vardır . Çevrimdışı bir döşemeli web haritası uygulaması için bu tekniği kullanmak istiyorum ve burada standart bir Geoserver kurulumuna dayanarak hızlı bir prototip yaptım .

Varsayılan katmanlardan birinden oluşturulan OpenLayers istemci sayfasını kopyaladım ve <html>etiketi değiştirdim .

<html xmlns="http://www.w3.org/1999/xhtml" manifest="cache.manifest">

Ve cache.manifestsadece okuyan dosyayı yarattım

CACHE MANIFEST
http://lima.schaaltreinen.nl:8080/

Bu, konuyla ilgili sınırlı bir anlayışa dayanarak, söz konusu URL'den yüklenen her şeyi yerel olarak önbelleğe almalıdır: tüm döşemeler ve OpenLayers JS. Aslında, Firefox’taki ilk aramada, yerel depolamaya izin vermemi istiyor, ancak çevrimiçi ya da çevrimdışı olarak tazelemeye başladığımda, sayfa OpenLayers nesnesinin tanımlanmadığını belirten kırpılıyor. OpenLayers JS'yi yüklememiş gibi görünüyor.

İşleyen bir çevrimdışı OpenLayers tabanlı fayanslı web haritası uygulamasını başarıyla kimse uyguladı mı? Veya bunun daha fazla araştırılmasıyla ilgili ipuçları?

Yanıtlar:


9

Haritalar bir Stick ve MapBox iPad üzerindeki Haritalarla ilginizi çekebilir . (feragatname: ikincisine dahil olan ilk tasarlanmış, ancak her ikisi de BSD lisanslıdır ve " .mbtiles" olarak adlandırılan temel döşeme biçimi SQL tabanlıdır.)

Çubuktaki Haritalar çevrimdışı bir OpenLayers haritasıdır. İstemci tarafı depolaması yerine taşınabilir bir veritabanı / sunucuyla ilerlemenin ana nedeni, tarayıcıları büyük veri depolaması olarak kullanmanın çok iyi çalışmadığı ve önbelleği doldurmanın ve dizine eklemenin maliyetli olabileceğidir.


İlginç bir çözüm, düşündüğüm şeyi değil, uygulanabilir görünüyor. Özel karo katmanlarına sahip bir Çubuğa MapBox / Maps'i yüklemek ne kadar kolay ya da zor?
mvexel

1
Nispeten basit: birkaç araç var - C tabanlı bir ithalatçı ( github.com/developmentseed/mb_tiles_importer ), mbtiles çıkaran bir gdal2tiles sürümü ( github.com/developmentseed/gdal2mb ) ve yaklaşmakta olan bir GUI aracı var.
tmcw

4

'Localhost'ta kendi tilecache'inizi oluşturmanız gerekeceğini düşünüyorum http://code.google.com/p/cumberland/wiki/TilePyramiderAndOpenLayers

Örnekler

    Using vmap
    http://localhost:8081/vmap0/levelzero/0/0.png
    The tile near the middle of the tile set in the third zoom level of vmap0.
    http://localhost:8081/vmap0/leveltwo/3/4.png
    The tile near the middle of the tile set in the fifth zoom level of landsat2000.
    hhttp://localhost:8081/vmap0/landsat2000/1/8500/8500.png
Source:
    The tile at the origin of the tile set in the first zoom level of basemap.
    http://www.osgeo.org/services/basemap/L1/0/0.png

Not: Boşluk olmamalıdır


Bu kullanışlıdır, ancak örneğin bir iPhone / iPad'de çalışmasını istediğiniz zaman her zaman mümkün olmayabilecek yerel bir web sunucusu gerektirir. Genel olarak, bunu bir HTML5 / önbellek bilgili anlayışlı web tarayıcısı dışında istemci tarafında herhangi bir gereksinim olmadan elde etmek istiyorum.
mvexel


1
Zaten orijinal sorudaki o sayfaya bağlantı verdim. Bunu yapmanın yolu olduğunu biliyorum, ama uygun olup olmadığını öğrenmeye çalışıyorum.
mvexel

3

Bununla ilgili makalelerde göründüğü gibi bir karmaşıklık şudur:

Bildirim dosyasının MIME türünün text / cache-manifest olduğunu unutmayın.

Ve tüm örneklerin önbelleğe alınacak belirli dosyaları listeledikleri görülüyor (ancak daha fazla okumam gerekebilir).


Bu benim için belli olmayan bir şey: belirli somut URL'leri beyaz listeye almanız gerekip gerekmediğini veya URL öneklerini kullanıp kullanmamanız. Bunu henüz test edemedim. Sahip olan var mı?
mvexel

3

Belki başka bir yaklaşım: Geopublisher http://www.geopublishing.org/ , haritalarınızı çevrimdışı kullanım için yayınlayabilir. Geopublisher, vektör ve tarama verilerini bir araya getirmenize ve dijital haritalar oluşturmanıza olanak sağlayan bir Masaüstü yazılımıdır. Sonra bu haritayı bağımsız bir Java uygulaması olarak dışa aktarabilirsiniz. Otomatik başlatma dosyaları vb. Bile oluşturur ve hedeflenen bilgisayarlarda Java yüklemesi gerektirmez.

GÜNCELLEME 2018: Jeopublisher artık aktif olarak geliştirilmemiştir.


not: URL, sitenin İngilizce sürümüne olsa bile, hedef Almancadır. Düzeltmek için sol gezinti sütununda [ingilizce] bağlantısını bulun.
matt wilkie
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.