OpenLayers vs Google Maps?

Pascal MARTIN picture Pascal MARTIN · Aug 6, 2009 · Viewed 49.7k times · Source

I have used Google Maps a couple of times, but what wondering about OpenLayers.
Before starting any kind of coding, here are a couple of questions that come to my mind,

  • Why would I use OpenLayers instead of Google Maps?
    • Except for its OSS licence, anyway
    • Did you encounter any situation in which you'd recommend absolutly not using OpenLayers?
    • I did a search about "OpenLayers" on Stack Overflow; there are not many answers. Does it mean this solution is not used much? Could it be a problem for long-term viability of the project?
  • For those of you who have already used OpenLayers: are there any common pitfalls / problems I may encounter?
    • What about using a JavaScript Framework with it? I've seen it's using Prototype, and I know Prototype, so that would be OK. But what about using something else like MooTools? (Which is not compatible with Prototype, BTW)
    • Are there any kind of speed and performance related problems? I need my application to be responsive and can't wait hours to get a map displayed.
  • Are there maps available for many places, or are there lots of those missing?
    • That is, I'm in France, and need my application to work at least for big cities... Will that be OK?
    • if not, is it easy to find layers and visualisations for OpenLayers and integrate them?
  • Is there any kind of API to display roads?
    • For instance, to show roads that are one-way only.
    • If yes, how can I do that? Do I have to have some kind of file containing those roads information, and, then, display them on the map by myself?
  • Do you know any good tutorial to OpenLayers?

I have not tried it yet, those are just out of the blue questions...

Answer

atogle picture atogle · Aug 13, 2009

These are a really great questions! I'm a professional OpenLayers developer and fan, so I'll address your questions from that perspective.

Why would I use OpenLayers instead of Google Maps?

  • Flexiblity: You are not tied to any particular map provider or technology. You can change anytime and not have to rewrite your entire code. Google, Yahoo, Microsoft, WMS, ArcGIS Server, MapServer, etc. are all supported out of the box.
  • Vector Support: Better support for points, polylines, and polygons.
  • Control: You have the ability to add any new features that you may need. I've personally written three plugins for OpenLayers, two of which are or will be part of the source.
  • Debugging: Much easier to debug when you can step through the source code!

I would not worry at all about the long-term viability of the project. It is the premier open source client-side mapping library.

Are there any common pitfalls / problems I may encounter?

  • The biggest pitfall I've run into is working with the Web Mercator (Google) projection. It can be a pain to display vector data that is in a common and real projection like WGS 84 into an OpenLayers map using Google, Yahoo, and Microsoft base maps. The examples are your friend.

JavaScript Framework Compatibility

  • I use the jQuery framework for all of my work, and the only problem I've had is referencing jQuery after OpenLayers. Other than that, it's been smooth sailing.
  • Performance is great! The only issues will be with your map server or adding too many vectors to your map.

Are there maps available for many places?

  • Like I said, you can use basemaps from just about any source for anywhere in the world.

Is there any kind of API to display roads?

  • I'd check out CloudMade! The have converted the OpenStreetMap project into a map tile service and allow custom styling. I believe that you can style one-way streets (per your example) a particular way. The CloudMade Developer Zone.

Do you know any good tutorial to OpenLayers?

I hope this is useful. And I'm around Stack Overflow if you have any questions!