Szukam niestandardowej biblioteki mapowania, ale nie do wyświetlenia rzeczywistego obszaru geograficznego, ale do wyświetlenia niestandardowego planu piętra. Długo szukałem, ale większość rozwiązań, które znalazłem, dotyczą obszarów geograficznych.
Chciałbym dostosować kilka poziomów powiększenia (prawdopodobnie 3 poziomy) i idealnie szukam rozwiązania JavaScript, HTML5 (canvas, SVG).
Czy ktoś ma jakieś sugestie?
Odpowiedzi:
Tworzę własną aplikację mapową, używając własnych map obrazkowych. Nasz uniwersytet przeniósł się do nowego kampusu, a ja mapuję 7 kondygnacji (wewnątrz), z 5 poziomami powiększenia, z ręcznie rysowanych map.
Ulotka może współpracować z niestandardowymi kafelkami mapy! Postępowałem zgodnie z tym przewodnikiem (omarriott.com/aux/leaflet-js-non-geographical-imagery), po prostu wykonałem kilka prób i błędów z numerami poziomów powiększenia, aby upewnić się, że mapa się pojawiła (postępując zgodnie z przewodnikiem, dokładnie nie Pracuj dla mnie).
Istnieje wtyczka o nazwie Leaflet Indoor, ale opiera się ona na geoJson, którego nie miałem. Wszystko, co mam, to niestandardowe współrzędne obrazu i mój własny Json. W każdym razie, ulotka jest w stanie przekonwertować współrzędne obrazu na język (i odwrotnie) przy użyciu metod od projektu i projektu.
To, co zrobiłem, aby stworzyć różne podłogi, to zamiast tego użyć kontrolki warstwy. Oczywiście znalezienie interfejsu API i upewnienie się, że wszystko działa tak, jak powinno, zajmuje trochę czasu. Na przykład pogrupowałem znaczniki dla każdej podłogi i kodowałem sposób, aby ładnie renderować je na różnych poziomach powiększenia. A załadowanie innej podłogi wymaga również od operatora prawidłowego załadowania znaczników.
Wiem, że Ulotka zawiera mnóstwo przykładów opartych na mapach geograficznych i może pozostawić ludzi takich jak my w ciemności, ale chcę was zapewnić, że można to zrobić dla niestandardowych map. Potrzebujesz obrazu, umieść go poprawnie (z poprawnymi nazwami), załaduj do CDN, takiego jak Amazon, a następnie użyj interfejsu API Ulotki.
źródło
Nie znając przypadku użycia, możesz zajrzeć do biblioteki D3.js (Dokumenty oparte na danych) w celu wizualizacji danych. Chociaż nie wiem, czy sam obsługuje „poziomy powiększenia”, ale obsługuje mapy z możliwością powiększania .
Spójrz na ich wiele przykładów tutaj: https://github.com/mbostock/d3/wiki/Gallery
źródło
Traktuj plan piętra jako obszar geograficzny. OpenLayers lub Leaflet nie dbają o to, czy rzeczy, które wyświetlają, są wewnątrz, czy na zewnątrz - dopóki zdefiniujesz układ współrzędnych, wszystko będzie dobrze.
źródło