It’s the year 2010 and o’ the times they are a changin’. I’ve been using an old PHP Class for Google Maps from Monte Ohrt for a few years now. The class was very well written, and was easy to integrate across a number of projects. The speed at which this library enabled me to develop applications was invaluable during implementation. I’ve grown a certain fondness for the class after the years, and that fondness is what brings me to this point today.
With Google Maps constantly tinkering with and updating their APIs, updates to the library haven’t particularly gone hand-in-hand. To be frank, the library is horribly out of date with the latest offerings from the Google Maps API. As time passed, I slowly added on pieces here and there to suit my needs for the latest project, but never really did them in a way that was “good for the library” so to speak. With the newest version of the Google Maps API (v3), a lot has changed, and I’ve been procrastinating on updating the inner workings to align with the latest offerings.
With that said, I am proud to announce the release of PHPGoogleMapAPI (3.0beta)! Technically, I’m versioning this release as a “beta” since some of the core functionality was re-written/re-factored, so I don’t want to confuse anyone/break anything that might have relied heavily on the deprecated functions (for those who are interested, I’ve deprecated the use of addMarkerIcon in favor of addIcon + updateMarkerIconKey ). Re-writing the library to make use of V3 of the Google Maps API proved to be an epic battle between legacy features, legacy (but updated) API functionality, and whole new paradigms on how things are done in v3. More than a few of the updates that I diligently scrubbed, globalized, and OO’ized (yes I made that up) that I tried to implement at the new v3 Google Maps API level are sadly missing from the new API. This includes stuff like adding a Google Local search bar, Google Adsense Ads (both on the map and in Local search results), Google Earth map overlays, and traffic overlays, to name just a few. These features just simply aren’t available from the API, and I sadly had to remove them from the library (don’t despair just yet, I just commented them out to make it easier to re-implement them once the API comes back around).
Even with all that it’s missing, this latest version is pretty powerful, and I hope that it helps more than a few developers like myself who’ve struggled with staying up to date with the latest offerings from the Google Maps team. By no means do I consider this project to be near completion; in fact I’ve probably jumped the gun and released the “beta” too early and will hear mean feedback from early adopters finding some stuff hasn’t been ported yet. Not to fear; I’m hard at work in the “Brad’s Labs”, or Brabs, tweaking the inner workings to make sure that this latest breath of fresh air into the project can give it a new set of wings.