He usado Google Maps un par de veces, pero qué me pregunto sobre OpenLayers .
Antes de comenzar cualquier tipo de codificación, aquí hay un par de preguntas que me vienen a la mente,
- ¿Por qué usaría OpenLayers en lugar de Google Maps?
- Excepto por su licencia OSS, de todos modos
- ¿Encontró alguna situación en la que recomendaría absolutamente no usar OpenLayers?
- Hice una búsqueda sobre "OpenLayers" en Stack Overflow ; No hay muchas respuestas. ¿Significa que esta solución no se usa mucho? ¿Podría ser un problema para la viabilidad a largo plazo del proyecto?
- Para aquellos de ustedes que ya han usado OpenLayers: ¿hay algún inconveniente / problema común que pueda encontrar?
- ¿Qué pasa con el uso de un marco de JavaScript con él? He visto que usa Prototype , y sé que Prototype, así que estaría bien. ¿Pero qué pasa con el uso de algo más como MooTools ? (Que no es compatible con Prototype, por cierto)
- ¿Hay algún tipo de problemas relacionados con la velocidad y el rendimiento? Necesito que mi aplicación responda y no puedo esperar horas para que se muestre un mapa.
- ¿Hay mapas disponibles para muchos lugares o faltan muchos de esos?
- Es decir, estoy en Francia y necesito que mi aplicación funcione al menos para las grandes ciudades ... ¿Va a estar bien?
- en caso negativo, ¿es fácil encontrar capas y visualizaciones para OpenLayers e integrarlas?
- ¿Hay algún tipo de API para mostrar carreteras?
- Por ejemplo, para mostrar carreteras que son de un solo sentido.
- En caso afirmativo, ¿cómo puedo hacer eso? ¿Tengo que tener algún tipo de archivo que contenga la información de esas carreteras y luego mostrarlas en el mapa yo solo?
- ¿Conoces algún buen tutorial para OpenLayers?
Todavía no lo he probado, esas son preguntas inesperadas ...
javascript
google-maps
openlayers
Pascal MARTIN
fuente
fuente
Respuestas:
¡Estas son preguntas realmente geniales! Soy un desarrollador y fanático profesional de OpenLayers, por lo que abordaré sus preguntas desde esa perspectiva.
¿Por qué usaría OpenLayers en lugar de Google Maps?
No me preocuparía en absoluto la viabilidad a largo plazo del proyecto. Es la principal biblioteca de mapeo del lado del cliente de código abierto.
¿Hay alguna dificultad / problema común que pueda encontrar?
Compatibilidad con el marco de JavaScript
¿Hay mapas disponibles para muchos lugares?
¿Hay algún tipo de API para mostrar carreteras?
¿Conoces algún buen tutorial para OpenLayers?
Espero que esto sea útil. ¡Y estoy cerca de Stack Overflow si tienes alguna pregunta!
fuente
No es necesariamente una cuestión de OpenLayers O Google Maps. Después de todo, puede usar Google Maps para su fondo de mapa en OpenLayers. Algunas respuestas más específicas:
¿Por qué OpenLayers?
Trampas
Actuación
Marcos de JavaScript
Mapas disponibles
fuente
No he visto mucha presencia de los usuarios de OpenLayers en SO, pero están ahí afuera. Las listas de correo de OpenLayers son bastante activas (estoy en Usuarios y Dev y veo entre 50 y 100 correos electrónicos al día discutiendo varias cosas. También puede buscar en las listas desde esos enlaces).
No puedo responder a todas sus preguntas, pero una cosa que expondré es que OpenLayers y Google Maps no son mutuamente excluyentes. OpenLayers es una biblioteca de JavaScript y puede usarla para interactuar con Google Maps. Mira este ejemplo: OpenLayers usando google maps . Y aquí está la página principal de ejemplos de OpenLayers .
fuente
Un punto que no se ha hecho completamente aquí es que el uso de OpenLayers evita varias restricciones que Google impone a los términos de servicio para sus API de mapas, que incluyen:
No puede usar legalmente un mapa de Google únicamente en una sección de su sitio que requiera pago para acceder, o para un sitio privado en el que el público no puede registrarse (por ejemplo, una intranet corporativa). (IANAL, pero consulte los Términos de servicio, 9.1 y las Preguntas frecuentes )
No puede usar legalmente (o prácticamente) la API de Google para aplicaciones fuera de línea (es decir, donde los mosaicos se sirven desde su propia máquina). Incluso si no hubiera restricciones legales, Google hace que esto sea técnicamente muy difícil, mientras que OpenLayers lo hace fácil.
Google se reserva el derecho de cerrar el acceso a la API si está mostrando un mapa con contenido que considera objetable. El ejemplo dado en las preguntas frecuentes es un mapa de drogas ilegales, que da una buena idea de las áreas grises que esta restricción podría cubrir.
Consulte estas Preguntas frecuentes y los Términos de servicio para obtener más detalles.
Dicho todo esto, como desarrollador de Google Maps desde hace mucho tiempo que recientemente comenzó a usar OpenLayers, siento que Google Maps tiene una mejor documentación, una comunidad de usuarios más grande y una API más clara y estable que OpenLayers. Entonces tienes que hacer una compensación en algún lado.
fuente
Realmente depende de para qué quieres usar el mapa. Para simplemente trazar puntos en un mapa, Google Maps estará bien. Las capas del mapa para Google Maps también son bastante detalladas. OpenLayers, por otro lado, ofrece mucha más funcionalidad y es muy extensible.
OpenLayers tiene muchos ejemplos para comenzar.
En cuanto a los mapas, OpenLayers es solo una API, por lo que debe proporcionarla para asignar capas. La API de Google Maps se limitará a las capas de mapas proporcionadas por google. Con OpenLayer puede mostrar prácticamente cualquier servicio de mapas disponible públicamente (WMS, WFS, TMS, WMS-C). Un muy buen ejemplo es openstreetmap.org (mapa global de calles recopilado por la comunidad). OSM se puede agregar a capas abiertas como una capa TMS. Mira este ejemplo para obtener instrucciones.
fuente
Algunos clientes pueden rechazar, o tener fuertes reservas, sobre el uso de Google Maps. Pueden tener preocupaciones válidas de que Google puede introducir publicidad o cambiar la API sin previo aviso. Sin embargo, Google Maps tiene la ventaja de integrarse con otros servicios de Google (marcas de posición, agregar fotos, servicios de geocodificación). Como es la web, siempre puedes combinar diferentes servicios de mapeo y API.
fuente
Estoy de acuerdo con todas las respuestas, pero hay un punto muy importante que nadie menciona. OpenLayers y Google Maps tienen diferentes objetivos.
OpenLayer es un excelente marco para mostrar geodatos, pero Google Maps es un conjunto de servicios que incluye un marco para mostrar geodatos entre otros servicios.
Entonces, Google Maps expone muchos servicios y características que OpenLayes no tiene. Algunos ejemplos de las funciones y servicios de Google Maps son la localización de regiones, la detección de sensores (para dispositivos con GPS) y la localización de usuarios, geocodificación y geocodificación inversa, street view, etc.
fuente
He usado ambas API. Hago un software para corporaciones y este software requiere mapeo, pero no todos los clientes tienen una licencia de GoogleMaps, por lo que necesito admitir ambos tipos de mapas.
He creado una API común para abstraer las diferencias entre ellos y déjame decirte que algunas cosas son más fáciles de hacer en una que en la otra. Al igual que limitar los límites de dónde puede desplazar el mapa, es mucho más fácil hacerlo en OpenLayers, pero los mapas de calor son más fáciles de usar en GoogleMaps (es oficialmente compatible con Google, a diferencia de los complementos disponibles de OpenLayers).
OpenLayers admite mapas sin conexión. Algunos de mis usuarios están en intranets privadas sin conexión a internet.
GoogleMaps tiene dos complementos absolutamente obligatorios, MarkCluster y Spiderfier que permiten visualizar una gran cantidad de marcadores.
GoogleMaps InfoWindows es más fácil de usar y tiene mejor usabilidad que OpenLayers.Popups. Estas son las pequeñas ventanas que se pueden abrir al hacer clic en un marcador. Las ventanas de información de Googlemaps también son mucho más bonitas por defecto, tienes que hacer algo de magia CSS con las ventanas emergentes.
GoogleMaps tiene streetview que a veces es útil.
GoogleMaps tiene más funciones que podrías necesitar. Aunque muchas características también están presentes en OpenLayers, pero no son oficialmente compatibles.
Por lo general, al final, debe optar por OpenLayers debido al dolor de cabeza reducido que puede obtener de las licencias y el uso de ancho de banda de googlemaps. Ambos manejan el mapeo básico (es decir, mostrar marcadores en la parte superior de un mapa) muy bien. A menos que pueda encontrar una característica específica que necesita de una que no está presente en la otra, debe optar por OpenLayers. Ver esto para obtener más información sobre la facturación de googlemaps y cuándo puede usarla de forma gratuita.
También GoogleMaps tiene su tipo de geolocalización básica como 'LatLng' y Openlayers usa 'LonLat', lo que me vuelve loco porque sigo confundiendo el orden de los parámetros en las llamadas a funciones.
fuente
Además de aquellos que mencionaron problemas de velocidad, me gustaría agregar que el renderizador VML de IE puede ser realmente lento con una capa vectorial con muchas características. Un usuario mencionó alrededor de 200. Eso es exactamente lo que puedo agregar antes de que IE disminuya considerablemente hasta el punto de congelarse. Si agrega características que son etiquetas de texto, puede agregar la mitad menos, probablemente porque internamente cada etiqueta de texto consta de dos elementos VML.
En Google puede crear un GOverlay personalizado cuyo contenido es un "div", que se procesa sin problemas en IE.
fuente
Agregaría un par de cosas, desde dos perspectivas: uso del cliente y derivación de datos.
Uso del cliente:
Servicio de datos:
¿Está sirviendo datos KML ? Si es así, tanto OpenLayers como Google Maps trabajarán con él, y probablemente tendrá que decidir según el uso del cliente.
¿Sirve otros tipos de servicios de datos? (WMS, WFS, CSV, etc.) Si es así, entonces es muy probable que OpenLayers tenga ejemplos y soporte para ello.
fuente
OL tiene una gran base de admiradores y es quizás el geothing de Opensource más utilizado en el mundo.
No ves muchos hilos y publicaciones al respecto en este ciberespacio porque la gente aquí tiende a discutir otro tipo de tecnología, como JSF y Mobile (no geo), no porque OL sea como un puntal.
Sin embargo, Ol tiene algunos inconvenientes, principalmente porque tiene un nivel tan bajo que tienes que escribir mucho código para hacer operaciones comunes. Eso también puede funcionar bien, porque como desarrollador a: tienes todo el código por adelantado yb: ajustar y personalizar es muy fácil.
Hay geotools gratuitos más sofisticados, pero todo lo que hacen es llamar a capas abiertas y abstraer algunas de las tareas más aburridas.
Así que úsalo con confianza. Es maduro, robusto y no va a morir en el futuro previsible. Sin embargo, si desea acelerar su proceso de desarrollo, debe probar las otras herramientas que se montan encima.
que tengas un buen día
fuente