Mais

Permitir que o cliente carregue Layers para Openlayers 3

Permitir que o cliente carregue Layers para Openlayers 3


Quero permitir que os clientes adicionem camadas vetoriais na forma de um geojson para abrir as camadas 3. Deve se parecer com este violino. Eu sei como adicionar várias camadas, mas quero que o cliente seja capaz de adicionar uma camada e ver sua camada adicionada. A camada não precisa ser salva para sua próxima visita na página.


existem duas maneiras diferentes de você tentar,
1) você precisa hospedar seu servidor web para receber o arquivo que o cliente carregou. O arquivo será processado em seu servidor e retornará o arquivo geojson para o front-end.
aqui está um exemplo (com php)

então você obterá um arquivo geojson para mostrar em ol3.
2) o outro está usando a API de arquivo para processar o arquivo sem escrever o código do lado do servidor e ler o conteúdo do arquivo para mostrar em ol3.
dev.w3.org/2006/webapi/FileAPI/

Eu também faço uma lib javascript puro para converter arquivo zip com shp, dbf para geojson, assim como o usuário faz upload de seu arquivo e mostra em ol3.

(esta demonstração suporta .prj, portanto, não há necessidade de definir EPSG e atribuir a codificação adequada para mostrar a atribuição correta em ol3)


Consegui fazer upload de um arquivo KML no lado do cliente usando HTML5 FileReader.readAsDataURL ()

Segui isso para fazer upload de arquivo de texto simples e restringi-lo a arquivos kml

Seguindo o tutorial acima, use reader.result como URL para definir a origem de uma camada vetorial para o arquivo kml a ser carregado. Em seguida, adicione a camada vetorial ao objeto do mapa. Espero que esteja claro se você tem alguma experiência com OpenLayers 3.


Assista o vídeo: Tutorial OpenLayers 3 - Parte 1