Estoy trabajando con Geoserver, sirviendo 48 condados de Estados Unidos inferiores a capas abiertas (3109 polígonos, muchos más vértices). Los condados se cargan en una base de datos postgis. Tengo curiosidad acerca de la experiencia del desarrollador cuando intento llevar esa cantidad de vértices al cliente.
¿Con qué formato WFS has obtenido los mejores resultados? ¿Se ha utilizado una sintonización adicional para Geoserver?
Me doy cuenta de que WMS en mosaico sería más rápido, pero quiero permitir cambios dinámicos en un mapa coroplético usando openLayers, es decir. el usuario envía un formulario, se llama un script de Python y se devuelven nuevos contenedores de datos para que las capas abiertas vuelvan a cargar el mapa div. También quiero probar esto en forma de resolución completa antes de reducir la complejidad del polígono en capas abiertas.
GEOJSON es, en mi opinión, el mejor formato, es fácil de leer, fácil de usar en JavaScript y generalmente de menor tamaño que GML / KML. Incluso puede contener información sobre el estilo, ver aquí .
No es un estándar oficial, pero es compatible tanto en folletos como en capas abiertas y en muchas aplicaciones de escritorio gis como qgis.
fuente
Usar GeoJSON es un buen comienzo para acelerar su sistema, pero puede no ser suficiente. Debería considerar construir varias versiones de su capa de datos, una por capa de zoom, y aplicar métodos de generalización / simplificación a cada versión. El cliente debe solicitar la capa relevante según el nivel de zoom seleccionado. Eso aseguraría que el nivel de detalle de los datos intercambiados entre el servidor y el cliente es adecuado, y aumentaría de manera más significativa tanto la transferencia de red como la representación. Para ir más allá, podría extender su sistema con mosaico de vectores e indexación espacial como se describe en este documento , pero no estoy seguro de que Openlayers y Geoserver puedan manejarlo ... ¡todavía!
Seguro: Olvídate de GML.
fuente
¿Por qué no utilizar su script de Python para crear un nuevo archivo SLD y enviarlo al servidor WMS con su solicitud?
Hay un ejemplo aquí .
fuente
Ya he recorrido un camino similar dos veces y la representación del lado del cliente para algo más que un pequeño número de puntos o polígonos realmente simples no es una buena idea. Una vez que se haya atado a esa arquitectura, es costoso retirarse y en cualquier proyecto es probable que vea un cambio en los requisitos o un aumento en el volumen de datos a medida que varias partes interesadas / supervisores comienzan a ver de qué es capaz su sistema. El enfoque de representación del lado del cliente basado en navegador no escala.
Si quieres renderizado dinámico, secundo el enfoque de @ iant. Anteriormente describí una serie de opciones para un problema diferente pero relacionado aquí . También utilicé la generalización de polígonos para ayudar en la representación del lado del cliente y, aunque definitivamente ayuda, genera problemas más difíciles, como si desea desplegar el polígono no generalizado a medida que el usuario se acerca más.
Incluso si está trabajando con una plataforma conocida, por ejemplo, conoce el hardware, la versión del navegador y los complementos de todos los clientes, lo cual es poco probable, no tiene idea de qué tipo de carga tienen esos clientes. Este tipo de enfoque requiere que el navegador pueda obtener MUCHO tiempo de CPU para mantener fluida la experiencia del usuario y cualquier otra cosa molestará a sus usuarios.
fuente