138 votos

¿Comparar varias bibliotecas de mapas JavaScript?

Estoy trabajando en un sistema cartográfico basado en la web y estoy intentando averiguar qué biblioteca utilizar.

Estos son enlaces a comparaciones de bibliotecas disponibles:

enter image description here

La lista de bibliotecas hasta ahora:

  • Google Maps
  • Microsoft Virtual Earth
  • MapQuest
  • Folleto - "El comentario más pequeño, más rápido, más nuevo y más sencillo también puede leerse como menos funciones y menos probado". -Geographika (véase más abajo)
  • API de ArcGIS para JavaScript - Funciona mejor con ArcGIS Server (véase más abajo). Google Maps et Mapas de Bing También hay disponibles extensiones que permiten utilizar la API de ESRI con mapas de Google/Bing (aunque esto es válido para la mayoría de las bibliotecas).
  • API de mapas de Yahoo
  • Vía Michelin
  • OpenLayers - Amplia documentación y gran cantidad de funciones, además de la posibilidad de utilizar distintos proveedores de mapas.
  • Mapquery - MapQuery ha sido lanzado y ahora tiene documentación útil Tiene el muy meritorio objetivo de combinar OpenLayers y jQuery. Si estás particularmente interesado en la idea de OpenLayers + jQuery, o si quieres contribuir a una biblioteca de mapeo JavaScript, entonces participa y contribuye con tus esfuerzos. Sin embargo, si sólo quieres ser un usuario final, o eres nuevo en esta área puede que no sea para ti.
  • Mapstraction - Simplifica mucho las cosas, sobre todo cuando se trabaja con varios proveedores de mapas base. Sin embargo, aún es un trabajo en curso y la funcionalidad es deficiente en algunos puntos, al igual que la documentación. (Por ejemplo, "Un objeto GeoJSON con el tipo "FeatureCollection" es un objeto de colección de características". No es muy informativo). Parece que todavía se está desarrollando activamente, pero a partir del 4/4/11 no ha habido un commit en Github desde enero.
  • deCarta - Tiene un javascript móvil y de escritorio - el primero es compatible con HTML5/CSS3 y el segundo tiene más compatibilidad con los navegadores. Se proporciona el código fuente. Condiciones de desarrollo más favorables para una API comercial. Se permite poner una marca en el mapa y hay varios estilos de mapa diferentes. Puedes elegir datos NAVTEQ u OSM. También tienen varias API móviles. - editado por TheSteve0 - un empleado de deCarta
  • Hecho en la nube
  • Polimapas - Facilita la composición de datos ráster y vectoriales procedentes de diversas fuentes. Le permite añadir fácilmente sus propios colores, agrupaciones e interacciones. Se ejecuta rápidamente, gestiona bien la carga de mosaicos en segundo plano y sólo ocupa 30k de Javascript. Una posible desventaja: utiliza SVG, lo que significa que no funciona ni funcionará en MSIE 7 u 8. Funciona perfectamente en todos los demás navegadores. Funciona muy bien en cualquier otro navegador y debería funcionar en IE9.
  • Saltar - jump es una librería de mapas ligera que funciona por sí misma, es decir, no es una envoltura para OpenLayers o GoogleMaps API. Actualmente está en desarrollo, pero muchas de las características esenciales funcionan bien.
  • ModestMaps - Otra biblioteca de mapas JS más pequeña, rápida y nueva de los creadores de Mapbox y TileMill.
  • Mapiator

OpenLayers es el que utilizo actualmente. Se puede hacer mucho con él y soporta la mayoría de los tipos de datos. Sin embargo no es el mejor para todo. Por ejemplo, Leaflet parece más suave en muchos aspectos, con desvanecimiento de imágenes y otros ajustes visuales. Si te gusta jQuery puede que te guste MapQuery que es como una combinación de jQuery y OpenLayers.

98voto

Swinders Puntos 1042

Esta pregunta ha sido convertida a Wiki de la Comunidad y wiki bloqueado porque es un ejemplo de pregunta que busca una lista de respuestas y parece ser lo suficientemente popular como para protegerla del cierre. En debe ser tratado como un caso especial y no debe ser visto como el tipo de pregunta que se fomenta en este, o cualquier sitio Stack Exchange sitio, pero si desea contribuir con más contenido a la misma, entonces no dude en de hacerlo mediante la edición de esta respuesta.


Para los desarrolladores sin experiencia en SIG que crean aplicaciones cartográficas de una sola función, probablemente recomendaría Leaflet (ahora soportado por MapBox). Fácil de usar y pequeño. Más funcionalidad depende de plugins de diversa calidad y apoyo.

Aplicación de tipo SIG en línea - utilice OpenLayers3 - tiene el conjunto completo de fuentes de datos, controles, etc. en una sola biblioteca. También se puede utilizar para aplicaciones de mapas simples, así que si usted tiene una mezcla, entonces yo usaría esto para todo.

Google sigue teniendo la combinación biblioteca/datos (por ejemplo, StreetView no está disponible en ningún otro sitio).

Esri dispone de creadores de aplicaciones web GUI y, como se indica más adelante, para qué complicar las cosas si ya se utiliza su pila.

API comerciales (Google, Bing, Yahoo)

El uso de cualquier API comercial le deja a merced de cualquier cambio que el proveedor haga en la API o en los Términos de Servicio. ¿Qué pasaría, por ejemplo, si de repente el portal de tu gobierno local que utiliza Google Maps de repente tiene anuncios por todas partes ? ¿Quieres reutilizar tu código JavaScript de Google Maps para un sitio de Intranet? Te encontrarás con que tienes que pagar los 10.000 dólares de la licencia.

Microsoft suele tener condiciones más definidas y fijas para sus servicios (si paga), por lo que el riesgo puede ser menor en este caso.

La reciente contra Twitter es un buen ejemplo de que los desarrolladores tienen una API que cambió por debajo de ellos. Si no estás pagando por un servicio, entonces eres tú (o tu sistema) el que se está vendiendo.

Google comenzó a cargar por el uso de sus mapas a partir de octubre de 2011.

Esri

Como otros han mencionado si usted está usando una pila de Esri entonces la API de ArcGIS para JavaScript sin duda funcionará bien en la parte superior de la misma. Viniendo de un SIG de fondo Esri probablemente han pensado más en las tareas tradicionales de SIG y características de la "neo-geografía" web-gigantes (aunque esto es sólo una opinión / sentimiento).

OpenLayers tiene compatibilidad integrada con las capas REST de ArcGIS Y si desea reutilizar su código para sitios web no basados en ESRI, también en este caso una API abierta le resultará más útil.

Utiliza OpenLayers...

No se me ocurre por qué los desarrolladores utilizarían una API distinta de OpenLayers. Los proyectos de código abierto conducen a otros proyectos de código abierto relacionados, por lo que hay una gran cantidad de componentes reutilizables, como el proyecto Biblioteca GeoExt , MapQuery y GeoPrisma .

Sólo añadiré que el hecho de que un proyecto sea de código abierto no significa que sea automáticamente mejor que sus equivalentes comerciales, pero la API de OpenLayers está a la altura de la competencia comercial en este caso, y la posibilidad de ver cómo funciona el código fuente, las pruebas unitarias, los scripts de compilación, etc., significa que se pueden crear fácilmente nuevas funciones a partir de él.

Ha habido algunos críticas recientes de OpenLayers, principalmente relacionados con la complejidad, el estilo y el tamaño. Se han esgrimido argumentos contrarios a estos aquí et aquí por Christopher Schmidt, uno de los principales desarrolladores de OpenLayers.

Vale la pena señalar que si necesita una API de mapeo de código abierto sencilla, eche un vistazo a Cloudmade's Folleto .

El comentario más pequeño, más rápido, más nuevo y más sencillo también puede leerse como menos funciones y menos probadas.

Busque en la documentación de la API Folleto et OpenLayers . Este último incluye elementos como capas WFS, herramientas de edición y compatibilidad con SLD. También se ha probado en muchos entornos diferentes, y funciona en IE6 (lo que permite a los usuarios gubernamentales y de las autoridades locales).

Para una visualización más sencilla de los datos espaciales, Leaflet parece ideal, y más fácil de empezar. Sin embargo, me quedo con OpenLayers para aplicaciones SIG con más funciones.

Advertencias

Una posible desventaja es que, a menudo, las nuevas innovaciones se ven primero en los sistemas de los proveedores comerciales; sin embargo, casi siempre se filtran a OpenLayers con el tiempo.

Por último, estoy seguro de que hay situaciones en las que otras API son más adecuadas: en hardware personalizado, para encajar con otros sistemas informáticos de una organización, o si ya conoces a la perfección una API y puedes desarrollar un sistema en la mitad de tiempo.

Todas las API que ha mencionado son capaces de producir magníficos sistemas de cartografía en línea, pero su elección también debe ajustarse a sus futuras necesidades de desarrollo o a las de su empresa.

50voto

Justin Walgran Puntos 552

Hay un nuevo jugador en el frente de mapeo javascript - Folleto . Desarrollado por CloudMade bajo licencia BSD.

Parece muy prometedor.

enter image description here

( Fuente )

35voto

Vasu Puntos 11

Tenía un proyecto de Google Maps / arcgis api y hace aproximadamente un año, decidí probar OpenLayers. Cuanto más trabajaba con él más me gustaba así que decidí migrar. Reduje 30 - 100 líneas de código de Google en 1 - 3 líneas una y otra vez a lo largo de mi código. Simplemente porque OpenLayers tenía funciones para lo que yo quería hacer y estaba teniendo que codificar manualmente en los mapas de Google.

20voto

Łukasz Puntos 5614

CartoDB es una herramienta para analizar, visualizar y compartir sus datos geoespaciales en PostGIS. Es una código abierto plataforma de bases de datos geoespaciales que ofrece una capa API SQL. Permite a los desarrolladores realizar consultas a una base de datos PostrgreSQL + OpenGIS en la nube optimizada para fines geoespaciales.

enter image description here

16voto

eplawless Puntos 2076

Clon Vmx de Mapquery parece ser particularmente activo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X