171 votes

OpenLayers contre Google Maps ?

J'ai utilisé Google Maps à quelques reprises, mais je me demande ce qu'il en est de OpenLayers .
Avant de commencer tout type de codage, voici quelques questions qui me viennent à l'esprit,

  • Pourquoi utiliser OpenLayers au lieu de Google Maps ?
    • Sauf pour sa licence OSS, en tout cas
    • Avez-vous rencontré une situation dans laquelle vous recommanderiez de ne pas utiliser OpenLayers ?
    • J'ai fait un recherche de "OpenLayers" sur Stack Overflow ; il n'y a pas beaucoup de réponses. Cela signifie-t-il que cette solution n'est pas beaucoup utilisée ? Cela pourrait-il être un problème pour la viabilité à long terme du projet ?
  • Pour ceux d'entre vous qui ont déjà utilisé OpenLayers : y a-t-il des pièges ou des problèmes courants que je pourrais rencontrer ?
    • Et si vous utilisiez un cadre JavaScript ? J'ai vu qu'il utilisait Prototype et je connais Prototype, donc ça devrait aller. Mais qu'en est-il de l'utilisation de quelque chose d'autre comme MooTools ? (Qui n'est pas compatible avec Prototype, BTW)
    • Y a-t-il des problèmes de vitesse et de performance ? J'ai besoin que mon application soit réactive et je ne peux pas attendre des heures pour qu'une carte s'affiche.
  • Des cartes sont-elles disponibles pour de nombreux endroits, ou y en a-t-il beaucoup qui manquent ?
    • Je suis en France, et j'ai besoin que mon application fonctionne au moins pour les grandes villes... Est-ce que ça ira ?
    • Sinon, est-il facile de trouver des couches et des visualisations pour OpenLayers et de les intégrer ?
  • Existe-t-il une sorte d'API pour afficher les routes ?
    • Par exemple, pour montrer les routes qui ne sont qu'à sens unique.
    • Si oui, comment puis-je le faire ? Dois-je disposer d'un fichier contenant les informations relatives à ces routes, puis les afficher moi-même sur la carte ?
  • Connaissez-vous un bon tutoriel sur OpenLayers ?

Je ne l'ai pas encore essayé, ce sont des questions qui viennent de nulle part...

0 votes

Par curiosité, pourquoi la "licence OSS" serait-elle un point en faveur d'OpenLayers, sauf pour des raisons philosophiques ? En supposant que la licence de Google vous permette de faire ce que vous voulez gratuitement, pourquoi cela influencerait-il votre décision dans un sens ou dans l'autre ?

7 votes

@Mark Il y a des problèmes avec la licence de Google. Je ne sais pas, mais je crois savoir que l'affichage de données sur Google Maps donne à Google une licence illimitée pour copier, modifier, transformer et redistribuer vos données. Par exemple c'est illégal pour afficher sur Google Maps toute donnée dérivée des produits SIG de UK Ordnance Survey. Un autre avantage du logiciel libre est qu'OpenLayers n'est pas soumis aux caprices d'une seule organisation. Même si, d'un point de vue pratique, vous pouvez probablement faire confiance au bon sens de Google (et à l'argent, et aux raisons commerciales) pour soutenir Google Maps à l'avenir.

1 votes

Ces articles pourraient vous être utiles : EveryBlock - A propos de nos cartes : blog.everyblock.com/2008/feb/18/maps A List Apart - Prenez le contrôle de vos cartes (également de EveryBlock) alistapart.com/articles/takecontrolofyourmaps

160voto

atogle Points 2085

Ce sont de très bonnes questions ! Je suis un développeur professionnel et un fan d'OpenLayers, je vais donc répondre à vos questions de ce point de vue.

Pourquoi utiliser OpenLayers au lieu de Google Maps ?

  • Flexibilité : Vous n'êtes pas lié à un fournisseur de cartes ou à une technologie particulière. Vous pouvez changer à tout moment sans avoir à réécrire tout votre code. Google, Yahoo, Microsoft, WMS, ArcGIS Server, MapServer, etc. sont tous pris en charge d'emblée.
  • Support des vecteurs : Meilleur support pour les points, les polylignes et les polygones.
  • Contrôle : Vous avez la possibilité d'ajouter toute nouvelle fonctionnalité dont vous pourriez avoir besoin. J'ai personnellement écrit trois plugins pour OpenLayers, dont deux font ou feront partie de la source.
  • Débogage : Il est beaucoup plus facile de déboguer lorsque vous pouvez parcourir le code source !

Je ne m'inquiéterais pas du tout de la viabilité à long terme du projet. Il s'agit de la première bibliothèque open source de cartographie côté client.

Y a-t-il des pièges ou des problèmes courants que je pourrais rencontrer ?

  • Le plus gros écueil que j'ai rencontré est de travailler avec la projection Mercator Web (Google). Il peut être difficile d'afficher des données vectorielles qui sont dans une projection courante et réelle telle que WGS 84 en une carte OpenLayers à l'aide de cartes de base Google, Yahoo et Microsoft. Les exemples sont vos amis.

Compatibilité avec les cadres JavaScript

  • J'utilise le framework jQuery pour tout mon travail, et le seul problème que j'ai rencontré est de référencer jQuery après OpenLayers. À part cela, tout s'est déroulé sans problème.
  • Les performances sont excellentes ! Les seuls problèmes seront ceux liés à votre serveur de cartes ou à l'ajout de trop de vecteurs à votre carte.

Des cartes sont-elles disponibles pour de nombreux endroits ?

  • Comme je l'ai dit, vous pouvez utiliser des cartes de base de n'importe quelle source pour n'importe quel endroit du monde.

Existe-t-il une sorte d'API pour afficher les routes ?

  • J'irais voir du côté de CloudMade ! Ils ont converti le OpenStreetMap en un service de tuiles cartographiques et permettre un style personnalisé. Je crois que vous pouvez styliser les rues à sens unique (selon votre exemple) d'une manière particulière. La zone des développeurs de CloudMade .

Connaissez-vous un bon tutoriel sur OpenLayers ?

J'espère que cela vous sera utile. Et je suis présent sur Stack Overflow si vous avez des questions !

5 votes

Merci beaucoup pour cette réponse, c'est vraiment utile ! Il y a définitivement des points intéressants (un meilleur support vectoriel sera probablement utile pour le projet auquel je pense ; et ce n'est pas la seule chose que vous dites qui est intéressante !) ; Peut-être que je poserai d'autres questions un jour : je n'ai pas encore commencé à travailler avec OL (cette question était assez "préliminaire" ^^ ), mais le temps viendra, je suppose, vu les réponses que j'ai obtenues !

5 votes

+1. J'ai essayé de ne pas taper ce commentaire, mais je ne peux pas m'en empêcher. Le WGS84 n'est pas une projection. (Cela vaut la peine d'essayer d'apprendre ce genre de choses - je suis en train de ramasser péniblement un peu de SIG, et cela aide vraiment pour les cartes).

1 votes

Le WGS84 est un système de coordonnées géographiques (utilisé pour afficher les points lat/long sur un ellipsoïde). Le mercator web est à peu près la projection web de facto.

35voto

Nils Weinander Points 1506

Ce n'est pas nécessairement une question d'OpenLayers OU de Google Maps. Vous pouvez après tout utiliser Google Maps pour votre fond de carte dans OpenLayers. Quelques réponses plus spécifiques :

Pourquoi OpenLayers ?

  • OpenLayers peut combiner des cartes provenant de différentes sources (fond de carte Google Maps, superpositions WMS, données vectorielles provenant de fichiers KML ou GML ou WFS, etc.)
  • Vous pouvez styliser OpenLayers bien plus que vous ne pouvez le faire avec Google Maps.
  • Open source, vous pouvez vérifier le code source lors du débogage.
  • Si vous avez besoin d'une grande précision dans les cartes, utilisez OpenLayers avec un serveur de cartes approprié plutôt que Google Maps pour obtenir une meilleure projection des cartes (Google Maps suppose que la terre est une sphère parfaite).

Pièges

  • Si vous voulez utiliser les données vectorielles (WFS) d'un autre serveur, vous avez besoin d'un proxy, en raison des limitations liées aux scripts intersites.

Performance

  • Cela dépend principalement de la vitesse du backend de la carte.
  • L'affichage de nombreuses caractéristiques vectorielles (la limite dépend du navigateur, mais disons > 200 sur une vue) prend du temps, mais c'est plus une question de navigateur qu'un problème avec OpenLayers.

Cadres JavaScript

  • Jetez un coup d'œil à GeoExt qui est ExtJS + OpenLayers, par exemple.

Cartes disponibles

  • OpenLayers n'est pas livré avec un backend de carte. Vous pouvez utiliser Google Maps, Yahoo Maps, MS Virtual Earth, etc., ou tout autre service WMS et WFS auquel vous avez accès.

0 votes

Bonnes réponses ; merci pour toutes ces informations ! Je ne connais pas encore les détails, mais il se peut que je doive utiliser certaines données de mon propre serveur, donc tout devrait être OK, notamment avec la possibilité d'intégrer plusieurs backends (Si j'ai bien compris ^^ J'aurai l'occasion de tester cela dans quelques jours, j'espère ;-) )

1 votes

@Pascal, je suis heureux que la réponse ait été utile. Je peux ajouter que la communauté OpenLayers est très active et que les listes de diffusion sont très utiles.

0 votes

Si vous voulez faire quelque chose qui n'est pas couvert par la page d'exemples de dev, vous ne pouvez très probablement pas le faire sur google maps. Par exemple, même le cross-site scripting ne doit pas être couvert par un proxy : openlayers.org/dev/exemples/cross-origin.html

23voto

Derek Swingley Points 3851

Je n'ai pas vu beaucoup de présence d'utilisateurs d'OpenLayers sur SO mais ils sont là. Le site Listes de diffusion OpenLayers sont assez actifs (je suis sur Utilisateurs y Dev et je reçois entre 50 et 100 courriels par jour sur des sujets divers. Vous pouvez également effectuer des recherches dans les listes à partir de ces liens).

Je ne peux pas répondre à toutes vos questions, mais je tiens à préciser qu'OpenLayers et Google Maps ne s'excluent pas mutuellement. OpenLayers est une bibliothèque javascript et vous pouvez l'utiliser pour interagir avec google maps. Regardez cet exemple : OpenLayers avec google maps . Et voici le principal Page d'exemples OpenLayers .

0 votes

Merci pour cette réponse ! C'est agréable de voir que les mailling-lists sont assez actives, avant de commencer à travailler sur un projet ^^.

13voto

Andrew Dwyer Points 306

Cela dépend vraiment de l'usage que vous voulez faire de la carte. Pour tracer simplement des points sur une carte, Google Maps fera l'affaire. Les couches cartographiques de Google Maps sont également très détaillées. OpenLayers, en revanche, offre beaucoup plus de fonctionnalités et est très extensible.

OpenLayers propose de nombreux exemples pour vous aider à démarrer.

En ce qui concerne les cartes, OpenLayers n'est qu'une API et vous devez donc lui fournir des couches de cartes. L'API Google Maps sera limitée aux couches cartographiques fournies par Google. Avec OpenLayer, vous pouvez afficher à peu près n'importe quel service cartographique disponible publiquement (WMS, WFS, TMS, WMS-C). Un très bon exemple est openstreetmap.org - (carte mondiale des rues collectée par la communauté). OSM peut être ajouté à openlayers comme une couche TMS. Consultez cette page exemple pour les instructions.

0 votes

Bonjour ! Il semble que "Je suis" votre première réponse ici ! Bienvenue ! Et merci pour ta réponse :-)

13voto

nrabinowitz Points 27991

Un point qui n'a pas été entièrement abordé ici est que l'utilisation d'OpenLayers permet d'éviter diverses restrictions imposées par Google dans les conditions d'utilisation de ses API de cartographie, notamment :

  • Vous ne pouvez pas légalement utiliser une carte Google uniquement dans une section de votre site dont l'accès est payant, ou pour un site privé auquel le public ne peut pas s'inscrire (par exemple, un intranet d'entreprise). (IANAL, mais voir Conditions de service, 9.1 y la FAQ )

  • Vous ne pouvez pas légalement (ou pratiquement) utiliser l'API Google pour des applications hors ligne (c'est-à-dire où les tuiles sont servies depuis votre propre machine). Même s'il n'y avait pas de restrictions légales, Google rend cela techniquement très difficile, alors qu'OpenLayers le rend facile.

  • Google se réserve le droit de fermer l'accès à l'API si vous affichez une carte dont le contenu lui paraît répréhensible. L'exemple donné dans la FAQ est une carte des drogues illégales, qui donne une bonne idée des zones grises que cette restriction pourrait couvrir.

Ver cette FAQ et le Conditions d'utilisation pour plus de détails.

Cela dit, en tant que développeur Google Maps de longue date qui a récemment commencé à utiliser OpenLayers, j'estime que Google Maps dispose d'une meilleure documentation, d'une communauté d'utilisateurs plus importante et d'une API plus claire et plus stable qu'OpenLayers. Il faut donc faire un compromis quelque part.

0 votes

"Vous ne pouvez pas légalement utiliser une carte Google dans une section de votre site dont l'accès est payant, ou pour un site privé auquel le public ne peut pas s'inscrire (par exemple, un intranet d'entreprise)." C'est inexact. Vous pouvez utiliser Google Maps dans une section payante de votre site, à condition que la majorité des utilisateurs puissent utiliser votre site et vos cartes sans payer. Par exemple, un site Web d'agences immobilières. Les annonceurs doivent payer pour inscrire leurs maisons, mais la grande majorité des utilisateurs peuvent naviguer sur le site sans payer. Dans ce cas, les deux ont accès à Google Maps.

0 votes

Merci - je voulais dire que vous ne pouvez pas utiliser l'API. exclusivement sur les sections nécessitant un paiement. J'ai mis à jour mon post et ajouté plus de liens pour aborder cette question.

0 votes

OpenLayers utilise l'API de Google Maps en interne, vous êtes donc soumis à la même licence. osgeo-org.1560.x6.nabble.com/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X