J'ai réussi à créer une excellente application de cartographie Web à l'aide de tuiles créées à partir de GeoWebCache et d'un ensemble de grilles personnalisé, mais je dois maintenant ajouter une superposition aux cartes de base. La seule interactivité dont j'ai besoin est une simple fenêtre d'information contextuelle qui provient d'un seul des attributs.
Par défaut, le jeu de données de superposition est un fichier de formes ESRI de 180 Mo. J'ai depuis réussi à simplifier le jeu de données à l'aide de ST_SimplifyPreserverTopology, qui a réduit la taille du fichier de formes ESRI à 28 Mo. Cependant, en tant que fichier GeoJSON, il s'agit toujours de 78 Mo, ce qui est tout simplement trop gros.
J'ai ensuite essayé CartoDB et chargé les données dans une table, puis ajouté la couche vectorielle dans les couches ouvertes, mais le volume de données est toujours trop important et la page HTML se bloque.
J'ai ensuite essayé GIS Cloud et un WMS externe mais qui est limité au WGS84 et n'a pas d'option info getfeature.
J'ai ensuite commencé à regarder Topojson qui, je pense, fonctionnerait très bien sur mon jeu de données, mais je ne pense pas qu'il existe un moyen de charger un topojson sur une carte dans OpenLayers 2.12 que je dois utiliser.
Mon autre option était UTF-Grid, j'ai donc chargé les données dans tilemill et exporté un MbTiles que je peux extraire en utilisant mbutil. Mais bien sûr, UTF-Grid ne prend en charge que EPSG: 3857 (web mercator), ce qui est différent de ma projection, EPSG: 27700. Ainsi, tous les fichiers .json sont nommés différemment de mes tuiles en cache sous-jacentes de geowebcache.
Existe-t-il un moyen de créer une grille UTF mais dans une projection différente?
C'est donc le contexte et je pense que j'ai essayé la plupart des options que je connais.
Donc, j'ai simplement besoin d'une couche de superposition interactive dans une carte OpenLayers 2.12 mais je ne peux pas utiliser de serveur comme GeoServer / Mapserver ou TileStache etc. et je ne peux pas avoir de script côté serveur comme PHP.
Quelqu'un peut-il offrir d'autres conseils ??
Merci
Réponses:
Développer mon commentaire d'origine:
Topojson peut fonctionner correctement avec openlayers 2.10 (vous convertissez réellement topojson en geojson avant de l'utiliser). Mais je ne suis pas sûr que cela résoudrait votre problème car il peut être encore trop gros pour être traité dans la plupart des navigateurs. Un exemple sur l'utilisation de topojson dans openlayers 2, basé sur l' exemple de geojson openlayers et certaines données que j'ai utilisées dans un article de blog .
http://www.gisky.be/cyclists/ol-topojson.html
Le bit réel qui est important n'est que la deuxième ligne:
Cette ligne crée un objet geojson (fusiegem) à partir de l'objet de données qui est topojson.
la source
Cela ressemble à un travail pour D3 - http://bl.ocks.org/mbertrand/5218300
la source
Vous pouvez diviser les données en fichiers GeoJSON et les nommer en fonction de la tuile. Une fois la carte chargée, vous pouvez rechercher les tuiles visibles et utiliser leurs noms / URL / coordonnées pour demander les fichiers GeoJSON appropriés, correspondant à un fichier par tuile.
La partie difficile est de créer les fichiers. Pour cela, vous devez absolument utiliser un outil. Une fois les fichiers créés, ils sont chargés selon leurs besoins et en si petits morceaux qu'ils ne submergeront pas le navigateur. Une autre douleur ici concerne les niveaux de zoom. Vous devrez décider quelles fonctionnalités sont visibles à partir de quels niveaux et créer vos fichiers en conséquence.
la source