Consegui criar um ótimo aplicativo de mapeamento da web usando blocos criados a partir do GeoWebCache e um conjunto de grades personalizado, mas agora preciso adicionar uma sobreposição aos mapas base. A única interatividade necessária é uma janela de informações pop-up simples, proveniente de apenas um dos atributos.
Por padrão, o conjunto de dados de sobreposição é um ESRI Shapefile de 180Mb, desde então eu consegui simplificar o conjunto de dados usando ST_SimplifyPreserverTopology, que reduziu o tamanho do ESRI Shapefile para 28Mb. No entanto, como um arquivo GeoJSON, ele ainda tem 78Mb, o que é muito grande.
Tentei o CartoDB, carreguei os dados em uma tabela e adicionei a camada de vetor nos openlayers, mas o volume de dados ainda é muito grande e a página HTML falha.
Eu tentei o GIS Cloud e um WMS externo, mas isso é restrito ao WGS84 e não tem opção de informações de recurso.
Comecei então a olhar para o Topojson, que acho que funcionaria muito bem no meu conjunto de dados, mas não acho que exista uma maneira de carregar um topojson em um mapa do OpenLayers 2.12 que preciso usar.
Como minha outra opção era UTF-Grid, carreguei os dados no tilemill e exportei um MbTiles que posso extrair usando o mbutil. Mas é claro que o UTF-Grid suporta apenas o EPSG: 3857 (web mercator), que é diferente da minha projeção, EPSG: 27700. Portanto, todos os arquivos .json são nomeados de maneira diferente dos meus blocos em cache subjacentes do geowebcache.
Existe uma maneira de criar uma grade UTF, mas em uma projeção diferente?
Esse é o pano de fundo e sinto que tentei a maioria das opções que conheço.
Então, simplesmente preciso de uma camada de sobreposição interativa em um mapa do OpenLayers 2.12, mas não posso usar nenhum servidor como GeoServer / Mapserver ou TileStache etc. e não posso ter nenhum script no lado do servidor como PHP.
Alguém pode oferecer algum outro conselho?
obrigado
fonte
Respostas:
Expandindo meu comentário original:
O Topojson pode funcionar bem com os openlayers 2.10 (você realmente converte o topojson em geojson antes de usá-lo). Mas não tenho certeza se isso resolveria o seu problema, pois ainda pode ser muito grande para processar na maioria dos navegadores. Um exemplo de uso do topojson nos openlayers 2, com base no exemplo geojson dos openlayers e em alguns dados que usei em uma postagem do blog .
http://www.gisky.be/cyclists/ol-topojson.html
O bit real que é importante é apenas a segunda linha:
Essa linha cria um objeto geojson (fusiegem) a partir do objeto de dados que é topojson.
fonte
Parece um trabalho para o D3 - http://bl.ocks.org/mbertrand/5218300
fonte
Você pode dividir os dados em arquivos GeoJSON e nomeá-los de acordo com o bloco. Depois que o mapa carregar, você poderá consultar os blocos visíveis e usar seus nomes / urls / coordenadas para solicitar os arquivos GeoJSON apropriados, correspondendo a um arquivo por bloco.
A parte difícil é criar os arquivos. Para isso, você definitivamente precisa usar uma ferramenta. Depois que os arquivos são criados, eles são carregados conforme necessário e em pedaços tão pequenos que não sobrecarregam o navegador. Outra dor aqui é lidar com os níveis de zoom. Você terá que decidir quais recursos são visíveis em quais níveis e criar seus arquivos de acordo.
fonte