2011-03-09 13 views
9

Versión básica: ¿Existe una biblioteca C#/.NET liviana que se pueda utilizar en una aplicación ASP.NET MVC para atender las solicitudes WFS?WFS (Web Feature Service) para ASP.NET MVC/C#

Versión detallada: Estamos desarrollando una aplicación C# ASP.NET MVC que se encuentra en la parte superior de una base de datos Sql Server 2008 con algunos datos geoespaciales básicos. Necesito poder mostrar un mapa con nuestras características simples de punto/línea (entidades DB) sobre un fondo de mapa en el navegador. El plan es usar OpenLayers para representar el mapa. El mapa de fondo está siendo proporcionado por un tercero que utiliza WMS, así que sé que puedo conectarme y mostrar que está bien.

El problema que tengo es que los datos que queremos mostrar en el mapa deben ser filtrados por el usuario (actualmente se muestran en forma de tabla). Parece que realmente necesito exponer un servicio WFS para permitir que el usuario filtre los datos para mostrarlos en el mapa.

¿Existe un componente C# ligero (e idealmente libre) que pueda hacer esto? He tenido una breve jugada con SharpMap, que en gran medida es adecuada para nuestras necesidades, pero aunque puedo usarla para representar un mapa y nuestros datos, no he podido averiguar cómo aplicar filtros (que variarán para solicitarla) a los datos representados. Alternativamente, ¿alguien tiene alguna otra sugerencia?

Estoy tratando de evitar el uso de geo-servidores de escala completa (por ejemplo, GeoServer, MapServer, etc.) si es posible ya que nuestros requisitos son bastante básicos y tenemos varias limitaciones de infraestructura.

¡Gracias de antemano!

Respuesta

2

WFS describe un servicio web. Puede implementar esto en .net usando WCF. Por el momento, no se proporciona un código de muestra para esto. Puede usar WCF en una aplicación ASP.Net.

source

3

No es estrictamente una respuesta a la pregunta que planteé en el título, pero he encontrado una solución a mi problema que se espera ayude a otros.

En lugar de tratar de implementar un servicio WFS simplemente he implementado un controlador que devuelve objetos ligeros GeoJSON. Esto permite que mi controlador use los mecanismos de filtrado/consulta que uso en otro lugar de mi sistema. GeoJSON funciona bien con OpenLayers.

Tuve que implementar un código simple para serializar SqlGeography en GeoJSON. Intenté usar el SqlGeography.AsGml() pero el soporte de OpenLayers para GML no parece demasiado avanzado.

Espero que esto ayude a alguien.