Respuestas:
Esta pregunta se ha convertido a Community Wiki y wiki bloqueado porque es un ejemplo de una pregunta que busca una lista de respuestas y parece ser lo suficientemente popular como para protegerla del cierre. Debe tratarse como un caso especial y no debe verse como el tipo de pregunta que se recomienda en este, o en cualquier sitio de Stack Exchange, pero si desea contribuir con más contenido, no dude en hacerlo editando esta respuesta .
Puede elegir entre soluciones con un componente de servidor de mapas o sin él. Las soluciones de servidor, por supuesto, admiten más datos y aplicaciones más sofisticadas.
Si sabe que QGIS desea crear visualizaciones únicas de datos, recomendaría QGIS2Leaf o Export to OpenLayers 3, que son complementos para QGIS que le permiten exportar capas a un mapa web. Actualización (basada en el comentario de Tom Chadwin): qgis2leaf y qgis-ol3 ahora se han fusionado en qgis2web .
Una opción intermedia es QGIS Cloud , una opción de Servidor QGIS alojado: simplemente prepara el proyecto localmente y luego lo publica en la web donde lo encontrará en un visor listo para usar. Tienen cuentas gratuitas de hasta cierto tamaño de datos. Por lo tanto, no necesita su propio servidor si eso es un problema para usted.
Si desea ejecutar su propio servidor de código abierto , puede comenzar con esta Introducción a Geoserver del FOSS4G del año pasado: http://workshops.opengeo.org/geoserver-intro/ . Las herramientas involucradas suelen ser Geoserver, PostGIS y OpenLayers. Los costos iniciales son su tiempo de trabajo más alojamiento.
Es difícil estimar el tiempo de implementación sin conocer sus casos de uso.
GeoGATE
enlace , GeoGATE es increíble con PostGIS y Geoserver, e incluye cientos de herramientas listas para usar que puede configurar a través de un panel de control fácil de usar con sus datos
Penn State tiene una clase de mapeo web abierto . Debería ser suficiente para enseñarle cómo funciona el mapeo web y también las tecnologías involucradas. La mayoría, si no todas, las herramientas utilizadas en la clase son gratuitas, por lo que el costo no debería ser un problema. Aquí está el TOC:
Lección 0: Orientación
Lección 1: Introducción al mapeo web abierto
Lección 2: Servidores de mapas web (WMS)
Lección 3: Servidores de características web (WFS)
Lección 4: Lenguaje de marcado extensible (XML)
Lección 5: Servidores de mapas web avanzados
Lección 6: Lenguaje de marcado geográfico (GML)
Lección 7: WFS revisitado
Lección 8: Crear una aplicación de mapeo web
Lección 9: Creación de un cliente de mapeo web personalizado fino
Que te diviertas :)
Google Fusion Tables parece prometedor con mapeo y consultas espaciales
Pros: fácil de configurar
Contras: todos sus datos están en servidores de Google (¿buenos o malos?)
http://sites.google.com/site/fusiontablestalks/stories
Nota: Muchos medios / compañías de noticias lo están utilizando - Ejemplo Guardian UK Newspaper http://www.guardian.co.uk/environment/datablog/interactive/2011/mar/07/carbon-emissions-public-buildings-map
Ahora hay un asistente de Fusion ordenado para configurarlo más rápido http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/fusiontableslayer_builder.html
Ejemplos: http://www.latimes.com/news/local/la-me-us-congress-census-map,0,4500533.htmlstory
Uno de los mejores: http://tinyurl.com/England-Deprivation-Mapped
Hay tantas opciones y muchas respuestas geniales. Dos de mis opciones favoritas que aún no se han enumerado aquí son CartoDB y MapBox . Ambos proporcionan alojamiento web y visualización de datos y algunas herramientas muy sofisticadas con precios que comienzan desde GRATIS.
Te beneficiarás de tener un software de escritorio para configurar tus datos. ArcMap y Quantum GIS son excelentes opciones para la parte de escritorio.
Diría que la fortaleza de MapBox es hacer hermosos mapas web con plantillas realmente excelentes y fáciles de usar y elementos de interfaz de usuario listos para usar . MapBox requiere un programa de escritorio llamado TileMill (también gratuito) que utiliza una interfaz de estilo muy similar a CSS.
La fortaleza de CartoDB es que expone sus raíces PostGIS a través de una API SQL.
Ambos se pueden usar solos o en combinación con otras bibliotecas de mapeo de JavaScript (por ejemplo , Leaflet , Google Maps , OpenLayers ).
No importa qué plataformas decida comenzar a utilizar para ingresar en el mapeo web, sin duda se beneficiará al aprender algunos JavaScript. Codecademy es un excelente lugar para comenzar (¡también GRATIS!).
También asistí a una conferencia donde presentaron la Suite OpenGeo , que es una pila de OpenLayers, GeoServer, GeoExt y PostGIS. Ofrecen las versiones "Enterprise Edition" (versión de pago con soporte) o " Community Edition " (gratis). (Actualización) OpenGeo Suite ahora es Boundless Suite.
Otro paquete que se demostró en la conferencia fue GeoMoose , que es una pila de MapServer y OpenLayers.
Puede considerar descargar el DVD en vivo de OSGEO , que puede ejecutar en un entorno de máquina virtual en caso de que no quiera instalar un montón de cosas en su máquina mientras lo prueba. Viene preempacado con un montón de diferentes paquetes de software SIG de código abierto, incluidas herramientas de mapeo web.
Editar
Debido a la popularidad de esta pregunta y respuesta, estoy agregando la edición de contenido en esta publicación debido a cambios con los proveedores y las API en los últimos meses.
La elección de la API está relacionada con el alcance y el propósito de su proyecto, sin mencionar su presupuesto si de hecho desea utilizar alguna funcionalidad específica. La otra advertencia importante es su experiencia de desarrollo web y en qué idioma prefiere o le interesa.
Creo que la mejor manera de responder a su pregunta es proporcionar una buena lista de API disponibles para usted. Aquí hay tres que vienen a la mente. ¡De ninguna manera son todos ellos!
ArcGIS
APIs:
Pros:
Contras:
Resumen:
ArcGIS tiene mucho que ofrecer para los productos SIG web y tiene muchos recursos para ayudarlo en el camino. Solo tenga en cuenta los costos potenciales con los que se encuentra cuando desea publicar sus propios datos.
APIs:
Pros:
Contras:
Resumen:
Google tiene un nombre sólido en el mercado y servicios en línea bastante confiables. Solo asegúrese de comprender los entresijos de sus usos, para no pisar ningún dedo legal. La nueva página de Precios y Planes es bastante útil en ese sentido.
Fuente abierta
API (todo basado en JavaScript):
Pros:
Contras:
Resumen:
El código abierto es realmente una gran opción para cualquiera que quiera probar las aguas de Web GIS. Con los cambios y las mejoras que se realizan todos los días en la comunidad, el código abierto puede ser la forma económica de abordar sus necesidades geoespaciales.
Como dije, estas no son todas las opciones que tiene, pero al menos ahora hay una publicación con enlaces para que usted y otros se familiaricen con algunos de los principales actores del mundo de los SIG web.
Parece que ha obtenido las respuestas de código abierto en la pregunta anterior. Si su empresa tiene el presupuesto, ESRI puede ser una muy buena opción. Para aclarar, las API de mapeo web en sí mismas son de uso gratuito, sin embargo, el servidor ArcGIS y SDE de back-end le costará dinero. Además, se necesitará software de escritorio para crear servicios de mapas que se utilizarán en la aplicación de mapeo web. Si ya tiene acceso a estos recursos o puede comprarlos, definitivamente recomendaría buscar soluciones de ESRI.
Un beneficio aquí es que puede codificar en una variedad de idiomas. Existen API específicas de ESRI para Flex y Silverlight:
Flex: http://help.arcgis.com/en/webapi/flex/index.html Silverlight: http://help.arcgis.com/en/webapi/silverlight/index.html
Actualmente parece que la tendencia en la programación web se está alejando de las soluciones que requieren complementos y son específicas del proveedor (arriba), y hacia marcos de código abierto más basados en estándares. ESRI tiene esto cubierto con la API de Javascript:
Javascript: http://help.arcgis.com/en/webapi/javascript/arcgis/
Si echa un vistazo a estos sitios web de API, la documentación es muy buena. Además, hay foros disponibles para la ayuda de la comunidad sobre problemas específicos. El soporte técnico a través de ESRI también es muy bueno. Por lo tanto, se trata de precios y recursos, si ya tiene estas aplicaciones o tiene el presupuesto, este es un camino excelente, si no vale la pena considerar las soluciones de código abierto anteriores.
Si simplemente desea crear un prototipo de algo para un estudio de viabilidad para mostrarle a su jefe, que es lo que tuve que hacer hace aproximadamente un año, entonces, para el backend, recomendaría Geoserver debido a su interfaz web fácil de usar, respaldada por algunos archivos de forma simples. Para el frontend, OpenLayers es una opción fantástica con muchas muestras en el sitio web. No soy un programador web de ninguna manera, pero encontré que copiar / pegar / ajustar las muestras de JavaScript es muy sencillo. Puse todo esto en una VM VirtualBox para mantenerlo todo en un solo lugar y no romper mi entorno de desarrollo habitual, utilizando los paquetes del repositorio UbuntuGIS.
Para la producción, hay una gran cantidad de cosas que dependen de su caso de uso. Para mí, finalmente fui con Mapserver porque no está tan hinchado como Geoserver, ejecutándose como un proceso cgi rápido en un servidor web lighttpd. Necesitábamos WFS-T (que Geoserver admite de fábrica), pero Mapserver no, así que utilizamos tinyows. También ofrecemos coberturas de servicio (WCS), que admite Mapserver, y estamos buscando integrar Rasdaman para su soporte WCS-T. Todo esto está respaldado por una base de datos PostGIS.
Recomiendo dividir su aplicación en back-end, middle y front-end, y leer los pros y los contras de cada pieza de software. Puede haber solo unas pocas soluciones para cada capa, pero eso aumenta combinatoriamente.
Creo que ESRI fabrica productos capaces de hacer todo esto, pero esto costará. Si su tiempo es escaso, entonces la ruta comercial puede ser el camino a seguir, pero la ruta de código abierto se dirige en algunas direcciones muy emocionantes y sospecho que eventualmente superará cualquier cosa que ESRI pueda encontrar. Pero entonces soy un fanboi de FOSS sesgado :)
Puedes mirar MangoMap www.mangomap.com .
Debería poder crear el mapa que desee con las herramientas disponibles.
Está alojado y es gratuito, por lo que se requiere muy poco tiempo y esfuerzo para implementarlo.
Para las características que sugieres, miraría cuál es la pila más sencilla y fácil de instalar que satisfaga tus necesidades. El software dice "Puedes tener rápido, poderoso o barato. Elige dos". Definitivamente se aplica aquí.
Si solo planea hacer consultas simples, como identificar características, es probable que el poder de PostGIS sea excesivo. Es mucho más simple cargar archivos de forma como un almacén de datos directamente en GeoServer.
OpenLayers, una vez más, es excelente y tiene muchas funciones, como soporte para sistemas de coordenadas que no sean WGS84 y Web Mercator, pero si no va a hacer uso de esa funcionalidad, miraría a Leaflet , en mi experiencia, tiene mucho menos curva de aprendizaje empinada para nuevos usuarios.
Además, si no tiene un requisito que indique que necesita alojar la aplicación en su propio servidor, puede echar un vistazo a algunas de las opciones alojadas, ya que obtendrá mucho más a partir del momento de su inversión. Al usar MangoMap o GeoCommons, es probable que obtenga un mapa superior para sus usuarios sin tener que escribir una sola línea de código.
Si se trata de un proyecto en el que desea escribir código, entonces también puede echar un vistazo a CartoDB y MapBox . Si desea saber más sobre todas estas plataformas alojadas, escribí un libro electrónico gratuito sobre el tema que brinda todos los detalles que necesita para seleccionar uno.
Divulgación : soy el fundador de MangoMap
Hay muchos lugares para comenzar al desarrollar un mapa web.
Si tiene experiencia como desarrollador web, debe comenzar investigando los diversos servicios disponibles que le permiten publicar un mapa en la web. Hay otras preguntas respondidas aquí en este sitio que le brindarán información valiosa sobre las diferencias entre las plataformas disponibles.
Si está comenzando de nuevo y no quiere comprometerse con una plataforma en particular, aborde los requisitos de su negocio. ¿Cómo vas a dibujar tus datos en el mapa? ¿Cómo se actualizarán los datos? ¿Quién va a usar este sitio? ¿Qué harán con eso? Tomar estas decisiones temprano lo ayudará a armar las piezas o tomar decisiones que respaldarán la expansión hacia una meta.
En cuanto al costo ... prefiero tomar prestado un proverbio moderno: "Bueno, rápido, barato. Elige dos". Se define formalmente como el Triángulo de gestión de proyectos , que describe el equilibrio entre el costo, la programación y el alcance para brindar calidad.
Yo también comencé recientemente el viaje de mapeo web después de muchos años más en el lado de la base de datos.
Lo que realmente me ayudó fue aprender los principios básicos de programación, usar MapBasic para MapInfo (o supongo que Python para la multitud de esri) realmente me ayudó a entender cómo "piensan" las computadoras.
A partir de ahí, CodeAcademy fue un regalo del cielo. Es una forma realmente divertida e intuitiva de aprender programación. Puede pasar de los ejemplos de "Hello World" a programas completamente funcionales e interactivos. La curva de aprendizaje es gradual y comprende que algunas personas están dotadas de estas cosas y otras (como yo) no.
El segundo consejo sería instalar GeoServer y ver las solicitudes de demostración para ver cómo están estructurados los servicios web y cómo funcionan. Eche un vistazo a las vistas previas de capas para ver cómo funcionan Javascript y HTML juntos. Literalmente, puede copiar ese código de Vista previa de capa (ver fuente de la página), guardarlo en algún lugar y comenzar a jugar.
Escuelas W3 : tiene ejemplos interactivos con los que puedes jugar y adaptarte a tu nuevo código. Si elige JavaScript, JS Fiddle también es muy bueno.
Si eres un programador de Java, echa un vistazo a Geomajas .
Hay un arquetipo maven que te permite comenzar en minutos ( ver aquí ). Luego puede agregar capas adicionales, etc.
Puede usar OpenLayers para el lado del cliente. Es estable, fácil y tenía toneladas de ejemplos sobre cómo usar un WFS (en su caso para conectarse a PostgreSQL), etc. Geoserver, OSM lo usa con fines de representación.
También puede echar un vistazo a GeoExt que proporciona el widget extJS para construir mapas. Nuevamente, geoext usa OpenLayers para la representación de mapas.
También hay un marco basado en PHP que usa MapServer (OpenLayers ya es compatible) como GeoMoose , CartoWeb , etc.
Voto por OpenLayers, ya que puede decidir sobre el diseño completo de la página web a diferencia del framework php que se ejecuta en los enlaces de MapScript que tienen una plantilla predeterminada y no me resultó fácil administrar una base de código tan grande.
Tres habilidades necesarias para la mayoría de los desarrollos web, incluido el mapeo web, son html, css y javascript. Los recursos para aprender esos idiomas son amplios. El tema de dónde comenzar a aprender cómo desarrollar aplicaciones de mapeo web está bastante bien cubierto en la pregunta de intercambio GIS Stack ¿ Cómo comenzar el mapeo web?
Un recurso para considerar el desarrollo de aplicaciones de mapeo web si tiene una experiencia de programación limitada es mapbox . Puede producir mapas web sin ningún tipo de codificación, aunque creo que sería difícil producir un mapa web tan complicado e interactivo como el que usa en su ejemplo sin usar un lenguaje de script como javascript o python.
Yo uso leafletjs y creo que es muy simple. Está basado en javascript y puede dibujar características usando varias fuentes de datos. Básicamente, inserta el código del mapa en un archivo .html y luego ve el archivo. No puedo comentar sobre otras API, pero creo que Google es bastante simple, así como Openlayers.
Además, hay servicios como MapBox que no requieren que aloje el archivo html, sino que simplemente cargue sus datos en ellos.
Creo que la forma más fácil de hacerlo con el complemento qgis + qgis2leaflet. Puede editar lo que quiera en qgis que exportar a folleto y cargar en su servidor web. O si elige la forma más interesante que:
En lugar del geoexplorador, usaría el folleto JavaScript, porque se ve mejor y funciona mejor ... pero tome un tiempo para copiar / pegar algún código. Aquí hay un ejemplo: http://gis.xyz
Es importante tener en cuenta que Web-Gis es un vasto campo, y ya se ha trabajado mucho en varios proyectos y bibliotecas para ayudar en este esfuerzo. Por lo tanto, debemos ver si hay algo que pueda reutilizar, en lugar de comenzar desde cero.
La mala noticia es que no hay una biblioteca / aplicación popular para mapeo web en php. La buena noticia es que es posible que no necesite uno.
Le recomendaría que primero intente comprender WebMapping y comprenda los proyectos y las bibliotecas que ya están presentes. Para esto, puede consultar estas preguntas:
Una vez que haya entendido las opciones disponibles, debe aclarar sus requisitos. En cuanto a su pregunta, tiene requisitos muy básicos: mostrar parcelas en el mapa Permitir consultas, obtener atributos para las parcelas y mostrárselas al usuario, ya sea como resultado de una consulta o cuando el usuario hace clic en ella.
Este tipo de trabajo es posible con Google Maps, pero no lo recomendaría, ya que es difícil trabajar con la API de Google Maps cuando tiene grandes cantidades de datos.
En cambio, le sugiero que elija una solución Geoserver / OpenLayers, siempre que pueda trabajar con JavaScript. Es posible que ni siquiera necesite ningún código php, si todos sus datos están en los atributos de las funciones.
Leaflet es una buena alternativa ligera a OpenLayers, que es la gran biblioteca javascript popular para mapeo web .
Utilizo Leaflet con GeoServer para hacer algunos mapas agradables, incluida cierta interactividad. Requiere codificación personalizada, pero no mucho, y es mucho más fácil de usar que OpenLayers.
Antes de decidir entre Leaflet y OpenLayers, puede valer la pena echar un vistazo a la próxima versión que promete una API limpia y una mejor documentación:
OpenLayers 3 es una reescritura integral de la biblioteca, dirigida a lo último en características HTML5 y CSS3. La biblioteca continuará teniendo un amplio soporte para proyecciones, protocolos estándar y funcionalidad de edición de OpenLayers 2.x. La nueva versión de la biblioteca se centrará en mejoras de rendimiento, compilaciones más ligeras, componentes visuales más bonitos, una API mejorada y más. Algunos de los aspectos más destacados son:
- - - - - - 8 <- - - - - -Una nueva base de código: esto ofrece la oportunidad de limpiar algunas de las formas "torpes" de hacer las cosas en OpenLayers. El equipo también creará con nuevos diseños de API, que serán más accesibles para todos.
Documentación de alta calidad: la nueva versión también contará con documentación con ejemplos nuevos y diseños predeterminados en OpenLayers 3.0. Hacer que un kit de herramientas destaque es más que el código real.
Comenzaría con la API de Google Maps . Es gratis y fácil de trabajar. Utiliza Javascript, que se puede aprender a través de una serie de buenos recursos. Recomendaría Codecademy si eres nuevo en JS.
Existen muchas fuentes de datos gratuitas que se pueden incorporar a Google Maps de varias maneras (KML, base de datos, GeoRSS, etc.). La mayoría de los estados y muchas universidades tienen almacenes de datos gratuitos que se pueden incorporar a su mapa.
Uno de mis sitios favoritos para ejemplos de Google Maps es Google Maps Mania . Hay excelentes ejemplos de mapas que muestran lo que es posible en esta API.
GeoPHP podría valer la pena echarle un vistazo.
GeoPHP es una biblioteca PHP nativa de código abierto para realizar operaciones de geometría. Está escrito completamente en PHP y, por lo tanto, puede ejecutarse en hosts compartidos. Puede leer y escribir una amplia variedad de formatos: WKT (incluido EWKT), WKB (incluido EWKB), GeoJSON, KML, GPX, GeoRSS. Funciona con todas las geometrías de funciones simples (Point, LineString, Polygon, GeometryCollection, etc.) y se puede usar para obtener centroides, cuadros de límite, área y una amplia variedad de otra información útil.
Y puede llevarlo a un nivel superior con la extensión GEOS (suponiendo que tenga privilegios de administrador para instalar GEOS).
Con GEOS obtienes el conjunto completo de funciones openGIS en PHP como Union, IsWithin, Touches, etc. Esto significa que las aplicaciones obtienen un útil "conjunto central" de operaciones de geometría que funcionan en todos los entornos, y un "conjunto extendido" de operaciones para entornos que tienen GEOS instalado.
Bueno, el script PHP personalizado podría ser una solución más robusta (y simple). Después de todo, los datos espaciales son solo filas en una base de datos, y pueden consultarse como de costumbre. No es necesario un software GIS de servidor pesado y / o una horrible sintaxis de filtro OGC. Si estuviera en su lugar, almacenaría los datos en la base de datos PostgreSQL con la extensión PostGIS, escribiría el back-end de PHP para consultar la base de datos y recuperaría los datos en formato GeoJSON (mira este resumen ), y una aplicación web front-end basada en OpenLayers: es más flexible que la API de Google Maps, pero puede seguir utilizando los mapas base de Google si lo desea.
Para obtener ayuda sobre cuál elegir, la pregunta Alternativas a ArcGIS Online y ¿Qué libros, revistas, recursos electrónicos son más valiosos para expandir el conocimiento de Información Geográfica? pregunta para aprender recursos.
Los costos de mapeo web incluyen alojamiento (pago de un sitio web) y espacio de almacenamiento del servidor (si está utilizando servicios de mapeo, consulte los precios de MapBox y los precios de CartoDB por mes). En última instancia, conocer el desarrollo web será muy importante para crear su mapa.
Bueno, hay un par de bibliotecas de mapeo que puedes usar.
La primera (y probablemente la más conocida) sería la API de Google Maps , sin embargo, creo que esto puede ser bastante complejo si eres relativamente nuevo en el mapeo web.
Sugeriría echar un vistazo a Leaflet.js o Mapbox.js . Mapbox.js se creó teniendo en cuenta Leaflet y Mapbox tiene excelentes tutoriales sobre diversas tareas que puede realizar con Mapbox.js. El folleto también tiene algunos ejemplos y recursos .
Aquí hay enlaces específicos a ejemplos que deberían ayudarlo a tomar la dirección correcta.
Si necesita un mapa en el que hace clic en un país y aparece una imagen emergente, puede consultar el ejemplo de Mapbox para vincular datos externos
Puede aprender cómo interactúa el código en JSFiddle para el proyecto
Si necesita más documentación sobre Mapbox, puede leer sus Guías de Mapbox o sumergirse un poco más en el código utilizando la sección de Ejemplos
Soy un nuevo webmapper, y me remitieron a la Visualización de datos de Scott Murray para la Web . Su libro electrónico se puede leer aquí: http://chimera.labs.oreilly.com/books/1230000000345/ de forma gratuita. Es para 'no codificadores', extremadamente informativo y tiene muchos ejemplos prácticos.
Puede usar el servidor de mapas UMN. Allí, puede usar scripts PHP (se llama scripts de mapa). Esto se basa en el servidor Apache. Si desea una base de datos, puede usar MySQL con extensiones espaciales o PostgreSQL con postGIS ...