J'ai utilisé Google Maps à quelques reprises, mais qu'en est-il d' 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 une recherche sur "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 / problèmes courants que je pourrais rencontrer?
- Qu'en est-il de l'utilisation d'un framework JavaScript avec? J'ai vu qu'il utilise Prototype , et je connais Prototype, donc ce serait OK. Mais qu'en est-il d'utiliser quelque chose d'autre comme MooTools ? (Ce qui n'est pas compatible avec Prototype, BTW)
- Existe-t-il des problèmes liés à la vitesse et aux performances? J'ai besoin que mon application soit réactive et j'ai hâte de voir une carte affichée.
- Y a-t-il des cartes disponibles pour de nombreux endroits ou y en a-t-il beaucoup qui en manquent?
- Autrement dit, je suis en France et j'ai besoin que mon application fonctionne au moins pour les grandes villes ... Est-ce que ça va?
- 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 afficher les routes à sens unique.
- Si oui, comment puis-je faire cela? Dois-je avoir une sorte de fichier contenant ces informations sur les routes et, ensuite, les afficher sur la carte par moi-même?
- Connaissez-vous un bon tutoriel sur OpenLayers?
Je ne l'ai pas encore essayé, ce sont juste des questions hors du commun ...
javascript
google-maps
openlayers
Pascal MARTIN
la source
la source
Réponses:
Ce sont de très bonnes questions! Je suis un développeur et fan professionnel d'OpenLayers, je vais donc répondre à vos questions dans cette perspective.
Pourquoi utiliser OpenLayers au lieu de Google Maps?
Je ne m'inquiéterais pas du tout de la viabilité à long terme du projet. Il s'agit de la première bibliothèque de cartographie open source côté client.
Y a-t-il des pièges / problèmes courants que je pourrais rencontrer?
Compatibilité du framework JavaScript
Existe-t-il des cartes disponibles pour de nombreux endroits?
Existe-t-il une sorte d'API pour afficher les routes?
Connaissez-vous un bon tutoriel sur OpenLayers?
J'espère que c'est utile. Et je suis dans Stack Overflow si vous avez des questions!
la source
Ce n'est pas forcément une question d'OpenLayers OU de Google Maps. Vous pouvez après tout utiliser Google Maps pour l'arrière-plan de votre carte dans OpenLayers. Quelques réponses plus spécifiques:
Pourquoi OpenLayers?
Pièges
Performance
Framework JavaScript
Cartes disponibles
la source
Je n'ai pas vu beaucoup de présence d'utilisateurs d'OpenLayers sur SO, mais ils sont là-bas. Les listes de diffusion OpenLayers sont assez actives (je suis sur Users and Dev et vois entre 50 et 100 e-mails par jour pour discuter de diverses choses. Vous pouvez également rechercher les listes à partir de ces liens.).
Je ne peux pas répondre à toutes vos questions, mais une chose que je vais dire est que OpenLayers et google maps ne sont pas mutuellement exclusifs. OpenLayers est une bibliothèque javascript et vous pouvez l'utiliser pour interagir avec google maps. Regardez cet exemple: OpenLayers utilisant google maps . Et voici la page principale d' exemples d'OpenLayers .
la source
Un point qui n'a pas été entièrement souligné ici est que l'utilisation d'OpenLayers évite diverses restrictions que Google impose aux conditions d'utilisation de ses API cartographiques, notamment:
Vous ne pouvez pas utiliser légalement une carte Google uniquement dans une section de votre site qui nécessite un paiement pour y accéder, ou pour un site privé auquel le public ne peut pas s'inscrire (par exemple, un intranet d'entreprise). (IANAL, mais voir les conditions d'utilisation, 9.1 et la FAQ )
Vous ne pouvez pas légalement (ou pratiquement) utiliser l'API Google pour les applications hors ligne (c'est-à-dire où les tuiles sont servies à partir de votre propre machine). Même s'il n'y avait pas de restrictions légales, Google rend cela techniquement très difficile, tandis qu'OpenLayers le rend facile.
Google se réserve le droit de désactiver l'accès à l'API si vous affichez une carte avec un contenu qu'il juge répréhensible. L'exemple donné dans la FAQ est une carte des drogues illicites, qui donne une bonne idée des zones grises que cette restriction pourrait couvrir.
Voir cette FAQ et les 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, je pense que Google Maps a une meilleure documentation, une communauté d'utilisateurs plus large et une API plus claire et plus stable qu'OpenLayers. Il faut donc faire un compromis quelque part.
la source
Cela dépend vraiment de l'utilisation de la carte. Pour simplement tracer des points sur une carte, Google Maps fera l'affaire. Les couches de carte pour Google Maps sont également assez détaillées. OpenLayers, quant à lui, offre beaucoup plus de fonctionnalités et est très extensible.
OpenLayers a de nombreux exemples pour vous aider à démarrer.
En ce qui concerne les cartes, OpenLayers n'est qu'une API, vous devez donc fournir qu'elle mappera les couches. 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 de carte disponible publiquement (WMS, WFS, TMS, WMS-C). Un très bon exemple est openstreetmap.org - (carte globale des rues collectée par la communauté). OSM peut être ajouté aux openlayers en tant que couche TMS. Consultez cet exemple pour obtenir des instructions.
la source
Certains clients peuvent refuser ou émettre de fortes réserves quant à l'utilisation de Google Maps. Ils peuvent avoir des inquiétudes fondées sur le fait que Google peut introduire de la publicité ou modifier l'API sans préavis. Cependant, Google Maps a l'avantage de s'intégrer à d'autres services Google (repères, ajout de photos, services de géocodage). Comme c'est le Web, vous pouvez toujours combiner de nombreux services de cartographie et API différents.
la source
Je suis d'accord avec toutes les réponses, mais il y a un point très important que personne ne mentionne. OpenLayers et Google Maps ont des cibles différentes.
OpenLayer est un excellent cadre pour afficher des géodonnées, mais Google Maps est un pool de services qui inclut un cadre pour afficher des géodonnées parmi d'autres services.
Ainsi, Google Maps expose de nombreux services et fonctionnalités que OpenLayes n'a pas. Quelques exemples de fonctionnalités et de services de Google Maps sont la localisation de la région, la détection de capteur (pour les appareils avec GPS) et la localisation de l'utilisateur, le géocodage et le géocodage inversé, la vue de la rue, etc.
la source
J'ai utilisé les deux API. Je crée un logiciel pour les entreprises et ce logiciel nécessite une cartographie, mais tous les clients n'ont pas de licence GoogleMaps, je dois donc prendre en charge les deux types de cartes.
J'ai créé une API commune pour résumer les différences entre eux et laissez-moi vous dire que certaines choses sont plus faciles à faire dans l'un que dans l'autre. Comme limiter les limites de l'endroit où vous pouvez effectuer un panoramique de la carte, c'est beaucoup plus facile à faire dans OpenLayers, mais les heatmaps sont plus faciles à utiliser sur GoogleMaps (il est officiellement pris en charge par Google, contrairement aux plugins OpenLayers disponibles).
OpenLayers prend en charge les cartes hors ligne. Certains de mes utilisateurs se trouvent dans des intranets privés sans connexion Internet.
GoogleMaps a deux plugins indispensables , MarkCluster et Spiderfier, qui permettent de visualiser un grand nombre de marqueurs.
GoogleMaps InfoWindows est plus facile à utiliser et offre une meilleure convivialité que les OpenLayers.Popups. Ce sont les petites fenêtres qui peuvent s'ouvrir lorsque vous cliquez sur un marqueur. Googlemaps InfoWindows est également beaucoup plus joli par défaut, vous devez faire de la magie CSS avec les Popups.
GoogleMaps a streetview qui est parfois utile.
GoogleMaps a plus de fonctionnalités dont vous pourriez avoir besoin. Bien que de nombreuses fonctionnalités soient également présentes dans OpenLayers, mais pas officiellement prises en charge.
Habituellement, à la fin, vous devriez opter pour OpenLayers en raison du mal de tête réduit que vous pourriez avoir avec les licences et l'utilisation de la bande passante des googlemaps. Les deux gèrent très bien la cartographie de base (c'est-à-dire l'affichage des marqueurs au-dessus d'une carte). À moins que vous ne trouviez une fonctionnalité spécifique dont vous avez besoin parmi l'une qui n'est pas présente sur l'autre, vous devriez opter pour OpenLayers. Voir ça pour plus d'informations sur la facturation de googlemaps et quand vous pouvez l'utiliser gratuitement.
De plus, GoogleMaps a son type de géolocalisation de base comme «LatLng» et Openlayers utilise «LonLat», ce qui me rend fou parce que je me trompe constamment dans l'ordre des paramètres dans les appels de fonction.
la source
En plus de ceux qui ont mentionné des problèmes de vitesse, j'aimerais ajouter que le moteur de rendu VML d'IE peut devenir très lent avec une couche vectorielle avec de nombreuses fonctionnalités. Un utilisateur a mentionné environ 200. C'est à peu près ce que je peux ajouter avant que IE ralentisse considérablement au point de geler. Si vous ajoutez des fonctionnalités qui sont des étiquettes de texte, vous pouvez en ajouter la moitié moins, probablement parce qu'en interne, chaque étiquette de texte se compose de deux éléments VML.
Dans Google, vous pouvez créer un GOverlay personnalisé dont le contenu est un "div", qui est rendu sans problème dans IE.
la source
J'ajouterais deux choses, de deux points de vue: l'utilisation du client et le derving des données.
Utilisation du client:
Service de données:
Proposez-vous des données KML ? Si tel est le cas, OpenLayers et Google Maps fonctionneront avec lui, et vous devrez probablement décider en fonction de l'utilisation du client.
Servez-vous d'autres types de services de données? (WMS, WFS, CSV, etc.) Si c'est le cas, alors OpenLayers a très probablement des exemples et un support pour cela.
la source
OL a une grande base de fans et est peut-être le geothing OpenSource le plus utilisé au monde.
Vous ne voyez pas autant de discussions et d'articles à ce sujet dans ce cyberplace parce que les gens ici ont tendance à discuter d'autres types de technologies, comme JSF et Mobile (non géo), pas parce que l'OL est comme des entretoises.
Cependant, Ol a quelques inconvénients, principalement parce que son niveau est si bas que vous devez écrire beaucoup de code pour faire des opérations courantes. Cela peut également fonctionner dans le bon sens, car en tant que développeur a: vous avez tout le code à l'avance et b: l'ajustement et la personnalisation sont très faciles.
Il existe des géotools gratuits plus sophistiqués, mais tout ce qu'ils font est d'appeler des openlayers et d'abstraire certaines des tâches les plus ennuyeuses.
Alors utilisez-le en toute confiance. Il est mature, robuste et ne mourra pas dans un avenir prévisible. Cependant, si vous souhaitez accélérer votre processus de développement, vous devriez essayer les autres outils qui se montent en plus.
bonne journée
la source