Fiz meu próprio aplicativo de mapa usando meus próprios mapas de imagens. Nossa universidade mudou para um novo campus e estou mapeando 7 andares (internos), com 5 níveis de zoom, a partir de mapas desenhados à mão.
O Leaflet pode trabalhar com blocos de mapa personalizados! Eu segui este guia (omarriott.com/aux/leaflet-js-non-geographic-imagery), apenas que fiz algumas tentativas e erros com os números do nível de zoom para garantir que o mapa fosse exibido (seguir o guia exatamente não trabalhe para mim).
Existe um plugin chamado Leaflet Indoor, mas ele depende do geoJson, que eu não tinha. Tudo o que tenho são coordenadas de imagem personalizadas e meu próprio Json personalizado. De qualquer forma, o folheto é capaz de converter as coordenadas da imagem em lat (e vice-versa) com os métodos de projeto e projeto.
O que fiz para criar pisos diferentes foi usar o controle de camada. Obviamente, leva um tempo para descobrir a API e garantir que tudo funcione como deveria. Por exemplo, agrupei meus marcadores para cada andar e codifiquei uma maneira de renderizá-los perfeitamente em diferentes níveis de zoom. E carregar um piso diferente requer um manipulador para carregar marcadores corretamente também.
Sei que o Leaflet tem vários exemplos de mapas geográficos e pode deixar pessoas como nós no escuro, mas quero garantir que é possível fazer isso para mapas personalizados. Você precisa da imagem, agrupe-a corretamente (com nomes corretos), carregue-a em uma CDN como a Amazon e use a API do Leaflet.