오프라인 타일 맵 웹 앱


23

크로스 오버이기 때문에 이것을 여기에 게시할지 또는 Stackoverflow에 게시할지 확실하지 않습니다. 한번 해보자.

제안 된 HTML5 표준에는 캐시 매니페스트를 사용하여 웹 애플리케이션 데이터를 로컬 캐시에 저장하는 옵션이 있습니다. 나는 오프라인 타일 웹지도 응용 프로그램이 기술을 사용하고자하고 빠른 프로토 타입을했다하고 여기 Geoserver의 설치 표준을 기반으로.

방금 기본 레이어 중 하나에서 생성 된 OpenLayers 클라이언트 페이지를 리핑하고 <html>태그를

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

그리고 cache.manifest단순히 읽는 파일 을 만들었 습니다.

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

문제를 제한적으로 이해하면 해당 URL에서로드 된 모든 타일, 모든 타일 및 OpenLayers JS를 로컬로 캐시해야합니다. 실제로 Firefox에서 처음 호출하면 로컬 저장소를 허용하라는 메시지가 표시되지만 온라인 또는 오프라인으로 새로 고침을 누르면 OpenLayers 객체가 정의되지 않았다는 페이지가 나타납니다. OpenLayers JS를로드하지 않은 것 같습니다.

오프라인으로 작동하는 OpenLayers 기반 타일 웹 맵 앱을 성공적으로 운영 한 사람이 있습니까? 아니면 이것을 더 조사하는 방법에 대한 힌트?

답변:


9

Stick 및 MapBox iPad의지도 프로젝트에 관심이있을 수 있습니다 . (면책 조항 : 전자는 후자에 관여하도록 설계되었지만 둘 다 BSD 라이센스가 있으며 " .mbtiles" 라는 기본 타일 형식 은 SQL 기반입니다.)

Stick의지도는 오프라인 OpenLayers지도입니다. 클라이언트 측 스토리지 대신 휴대용 데이터베이스 / 서버를 사용하는 주된 이유는 대용량 데이터 스토리지가 제대로 작동하지 않아 브라우저를 사용하는 것이 아니라 캐시를 채우고 인덱싱하는 데 많은 비용이들 수 있기 때문입니다.


흥미로운 해결책, 내가 생각한 것이 아니라 실행 가능한 것처럼 보입니다. 사용자 정의 타일 레이어가있는 스틱에 MapBox / Maps를로드하는 것이 얼마나 쉬운가?
mvexel

1
비교적 간단합니다 .C 기반 임포터 ( github.com/developmentseed/mb_tiles_importer ), mbtiles ( github.com/developmentseed/gdal2mb ) 를 출력하는 gdal2tiles 버전 및 곧 출시 될 GUI 도구와 같은 몇 가지 도구가 있습니다.
tmcw

4

'localhost'에 자신의 tilecache 를 만들어야한다고 생각 하십시오 http://code.google.com/p/cumberland/wiki/TilePyramiderAndOpenLayers

    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

참고 : 공백이 없어야합니다


이 기능은 유용하지만 로컬 웹 서버가 필요합니다. 예를 들어 iPhone / iPad에서 실행하려는 경우에는 항상 가능한 것은 아닙니다. 일반적으로 HTML5 / 캐시 매니페스트에 능숙한 웹 브라우저 이외의 클라이언트 측에서 요구 사항 없이이 작업을 수행하려고합니다.
mvexel


1
나는 원래 질문에서 이미 해당 페이지에 링크했습니다. 나는 이것이 갈 길이라는 것을 알고 있지만 그것이 실현 가능한지 알아 내려고 노력하고 있습니다.
mvexel

3

이것에 관한 기사에서 나타나는 것처럼 보이는 한 가지 복잡성은 다음과 같습니다.

매니페스트 파일의 MIME 유형은 text / cache-manifest입니다.

그리고 예제는 모두 캐시 할 특정 파일을 나열하는 것 같습니다 (그러나 더 읽어야 할 수도 있습니다).


구체적인 구체적인 URL을 허용해야하는지 또는 URL 접두사를 사용할 수 있는지 여부는 분명하지 않습니다. 나는 이것을 아직 시험 할 수 없었다. 누구 있어요?
mvexel

3

또 다른 방법은 Geopublisher http://www.geopublishing.org/ 가 오프라인 사용을 위해지도를 게시 할 수 있다는 것입니다. Geopublisher는 벡터 및 래스터 데이터를 함께 연결하고 디지털지도를 만들 수있는 데스크탑 소프트웨어입니다. 그런 다음이 맵을 독립형 Java 애플리케이션으로 내보낼 수 있습니다. 심지어 자동 시작 파일 등을 생성하며 대상 컴퓨터에 Java를 설치할 필요가 없습니다.

업데이트 2018 : Geopublisher는 더 이상 적극적으로 개발되지 않았습니다.


참고 : URL이 사이트의 영어 버전 인 경우에도 대상은 독일어입니다. 수정하려면 왼쪽 탐색 열에서 [english] 링크를 찾으십시오.
matt wilkie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.