Prosty sposób na posiadanie mapy offline w Internecie? [Zamknięte]

15

Moim celem jest umieszczenie mapy świata na stronie internetowej, ale bez dostępu do Internetu. Preferowany jest tylko zestaw płytek w połączeniu z pewną śliską mapą js-lib. Miejsce do przechowywania nie jest tak naprawdę problemem, a maksymalny poziom powiększenia nie jest wymagany.

Jak najłatwiej to osiągnąć?

Znalazłem projekt, który wydaje się pasować do rachunku - Mapy na patyku, ale wydaje się martwy?

tek
źródło
2
Co dokładnie oznacza „maksymalny zoom nie jest wymagany”? Jakiego rodzaju skali / dokładności / rozdzielczości potrzebujesz?
Mr_Chimp,
2
mapnik (Windows) github.com/mapnik/mapnik/wiki/WindowsInstallation i użyj localhost jako adresu URL (komputer lokalny)
Mapperz
Dokładność i rozdzielczość nie są ważne, kraje i miasta burmistrzów są wystarczające, ale oczywiście chcę, aby były tak dobre, jak to możliwe. Prostota jest ważniejsza, staram się unikać dodatkowych usług i baz danych.
tek
1
Jeśli chcesz poświęcić kilka dni na konfigurowanie w systemie Windows, mapnik + postgis + postgresql + proj.4 + python 2.7 + ... jest opcją, ale po przejściu przez to polecam zbadanie odpowiedzi TileMill poniżej. Brzmi o wiele łatwiej.
ca0v
To jest naprawdę proste. Jedynym problemem jest uzyskanie danych mapy i problemy z licencjonowaniem związane z tworzeniem systemu map offline . Tj. Większość dostawców map, którzy zezwalają na bezpłatne korzystanie (np. Google), robi to tylko wtedy, gdy mapa jest dostępna publicznie. Ale to jest zupełnie inne pytanie ... Robiłem to tylko dla Wielkiej Brytanii, więc skorzystałem z Open Data OS, z którego można korzystać bezpłatnie.
Mr_Chimp,

Odpowiedzi:

17

Polecam zajrzeć do TileMill, który jest tworzony przez te same osoby, które pracowały w Maps On A Stick. TileMill albo był częścią Maps On A Stick, albo stał się tym, czym stał się Maps On A Stick - coś takiego. Zapomniałem połączenia. Tak czy siak...

TileMill pozwoli Ci załadować dane geograficzne, nadać im odpowiedni styl, a następnie utworzyć zestaw kafelków mapy PNG dla różnych poziomów powiększenia.

Dane wyjściowe TileMill to plik .mbtiles. To tylko baza danych sqlite, która zawiera pliki PNG. Jeśli pracujesz w trybie offline, prawdopodobnie łatwiej jest rozpakować pliki PNG do folderu (przy użyciu mbutil ) niż przy użyciu narzędzia sqlite, aby uzyskać do nich dostęp.

Jeśli twoja mapa jest dość prosta (tj. Minimalna interakcja), zalecam użycie Ulotki do biblioteki map.

W ulotce musisz następnie dodać warstwę kafelka (wskazówka: użyj tms zamiast xyz).

Mam nadzieję, że to pomaga.

Edycja: Kilka rzeczy do zapamiętania.

1) Powinieneś zdawać sobie sprawę z ograniczeń licencyjnych dla wszelkich wykorzystywanych danych map (patrz mój komentarz do powyższego pytania).

2) Jeśli podejdziesz wystarczająco blisko, aby zobaczyć drogi itp., Spodziewaj się kilku GB kafelków.

Mr_Chimp
źródło
Mam gotowy dowód koncepcji! Będę musiał dalej badać problemy licencyjne, ale najprawdopodobniej jest to najłatwiejsze rozwiązanie.
tek
2

Inną opcją byłoby coś w rodzaju mapwingis . Nie potrzebujesz kafelków, odczytuje pliki kształtów.

Ian
źródło
MapWinGIS jest całkiem niezły, ale pytanie określone w Internecie.
Mr_Chimp
Napisał PAGE, nie oparty na sieci i nie określał dostępu do Internetu, więc założyłem, że oznacza to serwer (lub lokalny), co byłoby w porządku dla mapwingis. Użyłem go w formie w bazie danych Access i nie mogę sobie wyobrazić, że trudniej byłoby go zaimplementować na stronie internetowej.
Ian
1

Jeśli możesz utworzyć plik MBTiles (na przykład za pomocą Tilemill), możesz przekonwertować ten plik na zwykłą torbę płytek w zagnieżdżonych folderach zgodnych z oczekiwanym układem z / x / y za tilestache-seed.pypomocą skryptu dołączonego do Tilestache. Oto jeden, który ostatnio stworzyłem:

http://mike.teczno.com/img/hachure/labels/

Michał Migurski
źródło