Esto es lo que quiero: cuando hago zoom, las ciudades del país, debe aparecer como puntos y en un nivel determinado cuando acercar, yo quiero que ellos aparecen como los polígonos (mostrando el área de la ciudad y límites). ¿Cómo puedo hacer eso? Estoy pensando en crear dos tablas "cities_points" y "cities_polygons" en mi base de datos PostGIS. Alguna idea? (en realidad, no sólo las ciudades, pero es lo mismo para los otros componentes de mi mapa).
Respuestas
¿Demasiados anuncios?Un enfoque podría ser la creación de un punto de vista de los centroides de polígonos y agregarlo manualmente la tabla geometry_columns. El beneficio de este método es que no hay prácticamente ningún mantenimiento de la tabla de puntos como se mostrará las actualizaciones para el polígono de la tabla y hacer uso de cualquiera de sus índices. El punto de vista de la creación sería algo como esto:
CREATE VIEW the_schema.city_points AS
SELECT id, foo, bar, etc, ST_Centroid(the_geom);
A continuación, añadir a la tabla geometry_columns, así:
INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type")
SELECT '', 'the_schema', 'city_points', 'the_geom', ST_CoordDim(the_geom), ST_SRID(the_geom), GeometryType(the_geom)
FROM the_schema.city_points LIMIT 1;
Espero que ayude.
Usted puede tomar ventaja de grupos de capas en geoserver.
Teniendo en PostGIS las dos geometrías en tablas separadas, acaba de crear un grupo de capas en geoserver con dos capas y por medio de SLD estilo de conjunto de la escala con la que cada capa debe ser prestados (uso maxscaledenominator & minscaledenominator parámetros).
Que la tecnología (aparte de PostGIS, obviamente) se utilizan? Es una aplicación web? Si es así, me gustaría recomendar el uso Leaflet.js con un GeoJSON superposición de un recurso de servidor que devuelve los puntos o polígonos según el nivel de zoom de la consulta de los recursos. Puedo ser más específico, si sé los detalles.