Estoy frente a un problema y quisiera pedir su ayuda para encontrar la mejor solución de cartografía!
Detalles del proyecto:
- El Usuario puede elegir 1 de los varios cientos de territorio basado en funciones para asignar sus valores. Un buen ejemplo: la Población.
- Cada función representa los datos en un grupo de unidades territoriales. Estas unidades pueden ser muy grandes (i.e países o continentes), y puede ser muy pequeño (asentamientos). Cada unidad está representada como un (multi)polígono.
- El usuario puede filtrar en qué unidades territoriales que quiere mostrar. En otras palabras, él puede filtrar las zonas que se muestran. Basado en los valores de la función seleccionada y las áreas seleccionadas, el mapa creado será un 30% transparente Choropleth la superposición de mapas. Esto agrega una dinámica de comportamiento, a fin de mapas estáticos no son una opción.
- El Usuario puede seleccionar un gran número de territorios. I. e: todos los asentamientos de un país. Esto presenta varios miles de polígonos en pantalla.
- Tengo un alto nivel de resolución de ESRI shapefile de datos en cada unidad. Puedo convertirlos a cualquier formato SIG.
La implementación actual: uso de Google Maps con la Fusión de las Tablas de la capa de agregado. La Fusión de la Tabla es generada dinámicamente con respecto al procedimiento siguiente:
- Un pre cargados de la base de la fusión se utiliza la tabla, que contiene toda la geometría de datos para todas las áreas posibles. Un areaId clave principal es la parte de la tabla
- Generada dinámicamente la fusión de la tabla se carga en tiempo de ejecución que contiene los valores y área de identificadores para la función seleccionada.
- Cuando esta dinámica se crea la tabla, podemos obtener la fusión de la tabla para mostrar al unirse a la tabla dinámica con la tabla base .
- Los colores se calcula en tiempo de ejecución y se aplica como el formato condicional en la capa de la vista
El problema: Cuando se genera una nueva fusión de la tabla google necesita algo de tiempo para almacenar en caché el mapa generado de azulejos en el lado del servidor. Hasta ahora no he encontrado una solución para obtener información sobre estos mapas se ha generado o no a la hora de mostrar el mapa para el Usuario. Cuando se muestra el mapa por primera vez(y probablemente la última vez..ya que son generados en tiempo de ejecución) el usuario no ve el Choropleth mapa("Datos todavía pueden ser la carga de" mensaje en teselas de mapa), se tiene que actualizar la página varias veces para obtener el mapa que se muestra correctamente. Y en total, esta solución es muy lento. Toma 10-25sec para subir los datos a la Fusión de las Tablas de servicio y otro de 2 20sec para obtener las teselas en caché en los servidores de google.
Lo que he intentado:
- Capas KML en Google Maps: no tomar Kml de más de 10M. El problema de caché es todavía presente
- La creación de polígonos en el lado del cliente: es una exageración para el navegador por grandes figuras como los continentes y en los casos cuando la 3000-4000 pequeñas formas como los asentamientos se muestran.
Buscando: un servidor de asignación de solución que se me puede instalar y utilizar en el proyecto del servidor para generar dinámicamente estos mapas. La solución podría calificar si todo el proceso no tarda más de 10 segundos. La capa de trama detrás de la Choropleth mapa debe ser preferentemente de Mapas de Google, pero no necesariamente.
Cualquier sugerencias son más apreciados y gracias por su ayuda de antemano!