Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×

Beginning Google Maps Applications with PHP and Ajax 105

Michael J. Ross writes "Just as PHP and other Web scripting languages have made it possible to create dynamic Web pages, online mapping services are making it possible to create dynamic maps that can be customized by a Web site owner, or made customizable by a site visitor. In the case of Google Maps, this is done using the built-in application programming interface (API), which is described in a new book, Beginning Google Maps Applications with PHP and Ajax: From Novice to Professional." Read on for the rest of Michael's review.
Beginning Google Maps Applications with PHP and Ajax
author Michael Purvis, Jeffrey Sambells, and Cameron Turner
pages 384
publisher Apress
rating 8
reviewer Michael J. Ross
ISBN 1590597079
summary How to use the Google Maps API to make dynamic online maps.


But first, a brief background: During the mid-1990s, the only generally available mapping applications were desktop programs with location data limited to major cities within the United States. Yet less than one decade later, those programs were obsolete, replaced by Web-based mapping services such as MapBlast, MapQuest, and Yahoo Maps. In early 2005, Google raised the bar, with its own Web-based mapping service that was far more attractive than the others. For countless Internet users, it was their first glimpse of the power of AJAX, a new combination of technologies that allows Web pages to be refreshed asynchronously, providing a faster user interface. But Google Maps later packed another feature, an API that allows Web developers to leverage the service's capabilities in previously unimagined ways.

The authors of Beginning Google Maps Applications with PHP and Ajax — Michael Purvis, Jeffrey Sambells, and Cameron Turner — are based in Waterloo, Ontario, Canada. The book was published in August of 2006, by Apress, under the ISBN of 1590597079. The publisher maintains a Web page devoted to the title, where visitors can find an online table of contents, a sample chapter (Chapter 3, "Interacting with the User and the Server") as a PDF file, and a link for submitting errata (none of which, as of this writing, appear to have been reported — assuming there are any). In addition, the authors have a Web site for the book, where they offer a sample chapter (Chapter 4, "Geocoding Addresses") in PDF format, links to raw data sources, and brief entries describing a variety of related topics, including geocoding services, Google Maps Mobile (GMM), Keyhole Markup Language (KML), and building your own geocoding using Perl.

The book's material is organized into 11 chapters, grouped into three parts. The fourth and final part contains the appendices. The three primary parts can roughly be thought of as presenting the beginning, intermediate, and advanced information. Part 1, "Your First Google Maps," whets the reader's appetite by showing how to easily create some simple maps (discussed below). In addition, it contains a chapter explaining how a Google Maps mashup interacts with the user as well as the server. The final chapter in this part discusses geocoding addresses. Part 2, "Beyond the Basics," explains how to work with third-party data, how to enhance the user interface, how to optimize and scale for large data sets, and finally what possible future directions Google may take with this API. Part 3, "Advanced Map Features and Methods," presents exactly that, covering such topics as creating custom controls and info windows, adding geometric shapes to maps, and getting the most out of geocoding, including how to work with postal codes.

The authors begin Part 1 ("Your First Google Maps") by introducing Google Maps with the two most simple examples possible: Keyhole Markup Language (KML) is an XML-like formatting language that allows one to specify the names, coordinates, and descriptions of one or more locations ("placemarks") in a single file. For anyone who wishes to avoid writing the code themselves, Wayfaring is a Web site that allows one to create and share custom Google Maps by point and click. Even though the introduction to KML is properly brief, instead of only stating that the sample coordinates were discovered manually, the authors should mention at least one simple way to find those coordinates (such as the "Link to this page" link in Satellite view in Google Maps). Nonetheless, it was wise of the authors to use simple examples to get the reader's feet wet as quickly as possible — especially for prospective readers who might skim through the rest of the book and become intimidated by the technical diagrams, JavaScript and PHP code, MySQL queries, XML markup, and mathematical formulas.

There is much to like about this book. The explanations are straightforward, the code is readable, the examples are relevant, and the writing style is approachable. The illustrations, all of which are in black and white, are well-chosen, and not overwhelming in number. In addition to showing the expected results of the sample code, they also provide enough visual incentive to encourage the reader to give the sample code a try, and perhaps develop it further into their own mapping applications.

The book is not too lengthy, clocking in at 384 pages according to the publisher (though, oddly, Amazon.com reports only 350 pages, even though the last page of the appendix reads "358"). The authors resisted the increasingly common temptation to pad the book with superfluous appendices. Instead there are only two. The first explains how and where to find location data, such as addresses and latitude/longitude points. The second appendix presents the details of all of the classes, methods, properties, constants and events defined within the Google Maps API. For some reason the authors mention "objects" instead of properties and events, but I was unable to find any pre-instantiated objects mentioned in that appendix., and I am not sure such are even possible in the API.

Fortunately, the weakest section of the book, its foreword, has the least impact upon the value of the book. It fails to perform the most basic functions of a foreword, such as explaining to prospective readers why they should become actual readers, as well as what the book covers, and how the authors are qualified to provide that coverage. Instead, its author mostly discusses his personal Google Maps Mania site, and even wedges in mention of his appearance on an NPR radio show, which has little to do with the book. He also lists his first five posts to his Mania site, the first of which contains a misspelling, which should have been caught by the book's editors, or at least indicated with a "[sic]." The best part of the foreword is the first few paragraphs, which provide a brief history of Google Maps and the hacking thereof.

Like most if not all of its titles, Apress helpfully starts this book with two versions of the table of contents — the first one serving as a high-level overview, and the second providing far more detail, listing not only sections but subsections. This is a nice touch, and should be employed by all technical publishers. On the other hand, this book does not have a lay-flat binding, which is a shame, as it makes it far more difficult to read the book with both hands free for keyboarding. With the introduction of lay-flat bindings years ago, it is inconceivable to me why it has not been universally adopted, particularly by technical publishers.

Overall, Beginning Google Maps Applications with PHP and Ajax is an excellent introduction to extending the power of Google Maps on the Web, and provides enough detail to both help and entice readers to build their own Google Maps mashups.

Michael J. Ross is a freelance writer, computer consultant, and the editor of the free newsletter of PristinePlanet.com."


You can purchase Beginning Google Maps Applications with PHP and Ajax: From Novice to Professional from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This discussion has been archived. No new comments can be posted.

Beginning Google Maps Applications with PHP and Ajax

Comments Filter:
  • by rhizome ( 115711 ) on Monday August 28, 2006 @01:42PM (#15995018) Homepage Journal
    There's a whole book for this?

    • Re: (Score:2, Troll)

      I'm glad that they have a book for this. How many Google Maps mashups have you made if any? They are not as easy as you think.


      In other news, the reviewer wrote the best definition of the AJAX technology:

      AJAX, a new combination of technologies that allows Web pages to be refreshed asynchronously, providing a faster user interface.
      • Re: (Score:1, Redundant)

        by rhizome ( 115711 )
        How many Google Maps mashups have you made if any? They are not as easy as you think.

        Well aren't we aggressive today. In fact I am working on a "Where to refill your bike's water bottle in San Francisco" mashup as I type. I haven't found that I need 11 chapters to get as far as I have.

        But then again, you already know how easy I think they are so I'll probably not get very far anyway, since I obviously think they're easy and I am obviously mistaken, dick.

        AJAX, a new combination of technologies that allows We
      • Re: (Score:2, Interesting)

        by grazzy ( 56382 )
        1

        And yes, it's quite easy for anyone with a education in CS I'd say. If you can read a manual you can implement google maps.
      • Re: (Score:1, Flamebait)

        by bsartist ( 550317 )

        How many Google Maps mashups have you made if any?

        One so far. I began with zero experience with either AJAX or the Google Maps API. I had a working map in an hour, using only the online reference material provided by Google as a guide. In another hour I had added markers with custom icons pop-up information boxes.

        They are not as easy as you think.

        Actually it was far, far easier than I thought. If you need a 350-page book to spoon-feed it to you in small bites, you may have chosen the wrong career path

      • I'm glad that they have a book for this. How many Google Maps mashups have you made if any? They are not as easy as you think.

        [opinion]5. Yes they are.[/opinion]

        Agreed that definition is not bad for as short as it is.
        It is good that books like this are put out there for those who need that extra boost up the ladder, but for the could-be reader...Google Maps API [google.com].

        Read that and if you still can't get it, consider the book. If you have spend any time cross scripting (PHP to Javascript to Static HTML)

      • I've done a couple, with only Google's docs to guide me.

        Dude, they are easy. Much easier than I expected them to be.

        If Google didnt charge so much for the commercial licence, there would be an explosion of these apps.

    • Re: (Score:2, Insightful)

      According to TFR, yes! A friend of mine did a bunch of google maps API stuff to interface with his GPS system. He goes on bike rides around Arizona, saving the path he took. When he gets home, he downloads the GPS coordinates and makes a route which he can display on his webpage with google maps. I'm sure it can be used for far more advanced things. I bet he could make some really crazy stuff if he read this book.
    • Re: (Score:2, Insightful)

      by Keebler71 ( 520908 )
      There's a whole book for this?

      Maybe the first 300 pages or so are simply the search results for "google maps api" [google.com]

      • Re: (Score:3, Insightful)

        by zhez ( 906323 )
        Having read a copy myself, the content is centered around the most commonly asked questions on the newsgroup. It takes the common pitfalls (misunderstanding AJAX, too much data, poor navigation, need for custom controls etc) and works them into a cohesive path that guides the reader forwards.

        Basic maps are indeed simple and are covered in depth in the first 3 chapters, but this book goes on to cover dealing with hundreds of thousands of data points where the plain API chokes before 200.

        Sure, much of this ma
    • by bbtom ( 581232 )
      Apparently so. I've been meaning to put together a Google Maps mashup. My plan of action was to Just Google It. It's hardly rocket science, despite all the AJAX buzzword stuff.
    • There's a whole book for this?


      My thoughts exactly. The Google Maps API documentation and a little Googling is about all you need. 358 pages? How in the hell did they fill up that many pages on this topic???

  • good mapping sites (Score:4, Informative)

    by legoburner ( 702695 ) on Monday August 28, 2006 @01:52PM (#15995087) Homepage Journal
    So what are some of the better mashups out there? The sex offenders one [mapsexoffenders.com] and the gas prices one [mywikimap.com] are both quite cool. What other decent ones are there?
  • WHO cares ? (Score:5, Insightful)

    by unity100 ( 970058 ) on Monday August 28, 2006 @01:55PM (#15995117) Homepage Journal
    There are very small number of people and businesses who are able to put forward such capitals that might dwell on ajax apps, and dependencies on third party sources like google and try to establish a youtubeish, or some other service. (youtube is given as an example to imply a big operation)

    Almost 80% of the web development market is comprised of small businesses or individual investors, who do not care the slightest for ajax widgets, mumbo jumbo or the such when they start an online presence. Their problem is, selling their wares, or services via a secure, easy and clock-like working site.

    Much hype was done around this ajax, yet we as web developers still are not seeing any demands on ajax stuff in contracts. And the ones that there are negligible when proportioned to the whole.

    Im increasingly starting to see this ajax thing as a new "techno trend" that is pumped up and put forth by genius-tech-wizz kids (net celebrities) who did big business with similar things in the past.

    The catch is, market does not need it.
    • Re:WHO cares ? (Score:4, Informative)

      by truthsearch ( 249536 ) on Monday August 28, 2006 @02:16PM (#15995244) Homepage Journal
      My company is getting a lot of requests for AJAX or similar features, especially as it relates to letting users customize a page design by dragging around components. AJAX itself is never an exact requirement, but we are often getting asked to add features which require some robust javascript.
      • Except that dragging around components is neither asynchronous nor related to XML.
        • It is when it needs to immediately store the changes on the server.
        • Except that dragging around components is neither asynchronous nor related to XML.


          Once the user releases the mouse, Ajax sends the new location info back to the server, which persists it. And the info can be sent back in an XML document, though any defined data format could be used.
    • by Moofie ( 22272 )
      "The catch is, market does not need it."

      Because you are the arbiter of what the market does, or does not, need. I wish to subscribe to your newsletter.
    • Re:WHO cares ? (Score:5, Insightful)

      by Mateo_LeFou ( 859634 ) on Monday August 28, 2006 @03:59PM (#15995921) Homepage
      I think you'll see Tons of requests for AJAX as it continues to soak in. I just did a draft page for a new client. Front page had three links -- two of these used AJAX and the other used ye olde http redirect. Took all of 5 seconds for client to say "you'll fix that one so it works like the others, right?"
    • Re:WHO cares ? (Score:4, Insightful)

      by cyngus ( 753668 ) on Monday August 28, 2006 @04:23PM (#15996054)
      If you think that AJAX is just some catch-phrase or piece of eye canding, then I think you misunderstand a lot of human interface principals. The Click-Submit-Reload pattern that is required without something like AJAX is very disruptive to the user experience. AJAX can eliminate this cycle to produce a much more fluid experience. AJAX can be over-used or used badly, but when used correctly, is much more than just some cool toy.
    • I do. (Score:3, Interesting)

      by hey! ( 33014 )
      You're just working on the wrong kinds of apps, apps where "AJAX" is just a parlor trick to show that you're a really hip developer.

      There are many applications that are just fine as "web applications". Blogs for example. Most shopping cart type applications. There may be an occasional place where sprinkling a bit of ajax fairy dust makes the application a bit nicer (altough often less nice if you are vision impaired).

      There are other applications that suck as "web applications". They are now what we used
      • That is indeed my point - there are very small amount of investors who can even think of entering enterprises that would use or need GIS systems, or NASA World Wind or the like.

        Considering it is the small to medium businesses, and individuals who are fueling the internet in its majority, and very big companies like google, aol or the like having their own development teams, that only leaves a small fraction of medium to big capita to ever think of sailing such seas, and natually a fraction of it would be
        • by hey! ( 33014 )
          That is indeed my point - there are very small amount of investors who can even think of entering enterprises that would use or need GIS systems, or NASA World Wind or the like

          World Wind is a bad example. Ironically, the standard "store finder" application for your large company doesn't really require GIS either.

          But, there are actually a large number of organizations ranging from small to large that can use geographic applications. They are, as you say, a niche, but that doesn't mean that the niche is sm
          • Well, thats another issue - there are many businesses that can make use of geographical solutions, but the are unaware of it. In fact, there are many technologies that many businesses can use, but all are unaware of them too.

            The catch is, most will continue to be unaware, and noone is going to make a campaign to make them aware, and many of the ones that became unaware could be uninterested.
            • by hey! ( 33014 )

              The catch is, most will continue to be unaware, and noone is going to make a campaign to make them aware, and many of the ones that became unaware could be uninterested.


              OT, but did you go to the same school as Don Rumsfeld ;-)
    • Re: (Score:3, Interesting)

      by GeckoX ( 259575 )
      Speak for yourself. There are a couple ways to tackle this obviously highly biased diatribe that has very little basis in reality.

      On the one side is the financial take. Assuming your numbers are correct, how much money is behind the 20% of 'big business' sites do you think?

      Are you truly suggesting that rich web applications are something that doesn't make these companies money?

      Is it impossible for widgets and templates to be wrapped up in a nice customizable package and sold to smaller businesses for very a
      • There are very small amount of investors who can even think of entering enterprises that would use or need GIS systems, or NASA World Wind or the like. Considering it is the small to medium businesses, and individuals who are fueling the internet in its majority, and very big companies like google, aol or the like having their own development teams, that only leaves a small fraction of medium to big capita to ever think of sailing such seas, and natually a fraction of it would be interested in doing stuff
  • by Frosty Piss ( 770223 ) on Monday August 28, 2006 @02:00PM (#15995158)
    The main problem I have with the Google Maps API is that the dataset that they let non-paying users use for Geocoding (extracting the Lat/Lon from an address) is not accurate. Yahoo provides Geocoding with much much better accuracy. So, if you need accurate Lat / Lon data, you'll have to fold both mapping technologies into your app (get the lat / lon of an address from Yahoo, plot on a map with Google. Or just use Yahoo and skip Google).
    • Actually, keep an eye on the book's blog; in the coming weeks, we'll be publishing a tool to help you compare the various free geocoders.
    • Or... You could download the Tiger/Lines Data from the Government and do it yourself with Perl then feed the long/lat to Google instead of using their geocoding API. Just the maps!

      http://search.cpan.org/~sderle/Geo-Coder-US-1.00/U S.pm [cpan.org]

      It rocks. I've been using it with my voter lists for Door to door.

      • Not everyone is in the US. Although I do need to geo-code US addresses, my main area is Europe. So, your answer id far from definitive.
        • by Moofie ( 22272 )
          Well, maybe you should ask your own government for the same data, then.

          An idea need not be "definitive" in order to be useful for, say, 250 million Americans.
          • We have asked, Tim Berners-Lee has asked. They haven't as yet. Also, there isn't a "Government of Europe" as such, and I don't think my asking each and every government would be useful. Currently my government make quite a lot of money from licencing the information to corporations. Definitive - "Authoritative and complete". Your answer is still not definitive, as not every single one of those 250 million Merkins is contained to the boundaries of the US. Google's geocoder is a better solution than me rewr
            • by Moofie ( 22272 )
              So, in other words, your needs and requirements differ from other peoples' needs and requirements, and you've selected a solution that fits your needs and requirements, and other people have selected a different solution.

              At which point did it become necessary to pick on people who use a solution that happens to be nation-specific? Or were you just being a dick?
              • The discussion is about geocoding in general, not just the view of an American who doesn't have any care or wish to do anything outside his/her own boundaries. My point is that downloading the US files is not enough for plenty of people, so solutions such as Yahoo's or Google's are the best way for many people who have, until now, had no real solution to use.
                I wasn't picking on anyone, and it's really not neccesary to start being a neandrathral just because you are getting all patriotic.
                • by Moofie ( 22272 )
                  "not just the view of an American who doesn't have any care or wish to do anything outside his/her own boundaries"

                  An American (or a Bolivian or a Lower Slobovian) doesn't NEED to care or wish to do anything outside their own boundaries. Everybody is responsible to take care of their own problems. This person (who we can assume is an American, if we're going to start making assumptions) shared a solution that works for him, and perhaps for some other people, and felt the desire to share it. You're the one
                  • I only said it wasn't a definitive answer. Sure, it can help and I wasn't knocking the idea, just offering my opinion that Google et al are working on a more definitive solution that is free and is managed by them. This should be ideal, and no need to grab the US Govt files. Of course, feel free to reinvent the wheel.
                    And, grow up, discussions don't all have to end with calling people names.
                    • by Moofie ( 22272 )
                      Did anybody allege that it WAS a definitive answer?

                      ALL discussions don't have to end with calling people names. This one did, however. Prick.
      • Tiger/Lines Data is notoriously inaccurate.
    • by rk ( 6314 ) *

      I've had good luck with Yahoo's geocoding services. At the time I mucked with this stuff, Google had not yet put up their geocoding service.

      The big problem I have with Google maps is the API uses TeleAtlas in my area which is verging on 10 years out of date, but going to maps.google.com, my area is using NAVTEQ data, which is fairly current. It's possibly a licensing issue, but it's damned annoying to have whole major highways missing in my app.

      Your mileage, of course, may vary.

      • I'm also a little dissapointed in the lack of NAVTEQ data for the API users. I've had to switch my project to use Microsoft's service because of the outdated TeleAtlas data. It's really too bad, becasue I prefer Google's API.
    • by dotdash ( 944083 )
      A toolset I have developed to automate some aspects of mash-up development uses the Yahoo geo-coding web-service API, but displays mash-ups using the Google Maps API. The combination works rather well. (An overview of the toolset is available at http://sparce.cs.pdx.edu/mash-o-matic/ [pdx.edu].) Ontok has published a comparison of geo-coders (somewhat stale by now) http://www.ontok.com/geocode/compare/ [ontok.com].
  • One of these days, it will be a good idea if the FOSS community gets together with some trend-setting companies, and invents a single language for the web. Instead of combining many different things that were invented for many different purposes, it would be a purpose-built language that will provide all the the client-side interactivity that users expect and all the server-side operations that content providers need to supply. Whether it's the AJAX-style interactivity you seek or the Flash-style content, t
  • by elyobelyob ( 844203 ) on Monday August 28, 2006 @02:35PM (#15995378)
    Google maps API is still very much in development with new features coming out all the time. When they switched from v1 to v2, there was a lot of converting to be done to make maps work correctly. This book will be out of date in no time. Can't see the need for it when you have an active mailing list and sites such as mapki available.
    • Re: (Score:2, Informative)

      by zhez ( 906323 )
      It's true there are new features all of the time, but with version 2 of the API Google has stabilized the core of the system. Moreover, the authors acknowledge this "moving target" and have set up a dedicated site to act as an ongoing companion. If what I've seen so far is any indication they are dedicated to keeping all their readers up to date.

      http://googlemapsbook.com/ [googlemapsbook.com] if you're interested.
      • Their sample document is already out of date! No mention of "accuracy" returns in geocoding. It's not really a case of the book not being required, but more of the fact it'll be out of date too quickly. If I have to rely on a website to keep me up to date, then the book is definitely out before it should be, and I can clearly use one of the many resources out there already. There are two many *large* changes still happening to the API to make this book useful. Well, useful isn't the correct term, but it c
    • by mumrah ( 911931 )
      My copy of Google Map Hacks is already outdated and it was published this year.
    • Can't see the need for it when you have an active mailing list and sites such as mapki available.

      The purpose of books like this is to make money for the publisher. That is the "need".

  • by Corporate Gadfly ( 227676 ) on Monday August 28, 2006 @03:09PM (#15995621)
    I find Mapki [mapki.com] and Mike William's Tutorials [demon.co.uk] more than sufficient. A quick glance at the API group's mailing list [google.com] also helps.
  • Those interesting in the topics should take a look at the Google Maps Hack book (review here [slashgeo.org]).

    Anyone whom have interest in Google Maps API must take a look at the numerous alternatives. Which includes OpenLayers.org [openlayers.org] (which just released v2.0 [narx.net]). There are various other alternatives, all with different levels of interoperability and compatibility with OGC standards [opengeospatial.org]. On the subject, see slashgeo's web mapping section [slashgeo.org].
    .
  • Have a client, a chain of national francised outlets that wanted to use this technology for a branch locator. We were all set to build this with the .NET APIs that Google provides, but when the client caught wind of the licence charge for commercial entities, the project was canned. I fear that this very cool solution is going to remain limited by what Google is asking for licencing.

    Sure, they have the right to charge whatever they want, but damm, who is going to adopt it at that rate just to add some coo

    • by drwho ( 4190 )
      Is this fee required? I thought that it was only if you wanted to have dedicated servers so your commercial app doesn't have to compete with the rabble for the limited google maps bandwidth.

      The laternative might be to use Yahoo Maps' new API. I haven't played with it much yet, because I don't want to install any plugins to use it. But lots of folks probably will. This book would be better if it was more even-handed and presented info on yahoo as well.

      Still, I'll probably buy it. But not on dead tree, but wh
    • The fee is most definitely not required for this specific application. Your client could have used the technology for a branch locator with no problem -- it has been done numerous times before and there are plenty of tutorials [google.com] on how to do it.

      The fee is required for sites that want to do more than 50,000 hits a day (to the map server) or want to put the map somewhere that is not publicly accessible (as the current API requires).

      Ian (from http://mapki.com/ [mapki.com]
      • Thanks for the info, maybe the Google docs that come with the APIs could have been better worded? Or maybe I'm just clueless? Dont answer that.
  • I agree that this book will be quickly out of date, but either Google or a third party really needs to put together a web-based, comprehensive, step-by-step instruction guide. The "documentation" http://www.google.com/apis/maps/documentation/ [google.com] that Google has up is very limited and doesn't address even some of the more basic things that a map-newbie like me needs to know (some of the simple things like placing a locator or geocoding wasn't obvious to me). I had to search the forums, etc to get the answers I
  • Has anyone checked out "Ajax And Php: Building Responsive Web Applications (Paperback)" [amazon.com] If I can only afford one of these books, should I get this one or the one reviewed here on /.
    • by GeckoX ( 259575 )
      Did you REALLY just ask that question?

      OK, I'll make it _real_ simple for you, one question is all I need answered:

      Are you interested in learning mapping using google maps API, or are you interested in learning AJAX with PHP?

      Given the answer to that question, I sure do hope you can figure out the rest on your own. If not, I highly suggest neither.
  • He announced info about his book on our class forums (tron09.com). Not bad for a 2nd year Eng student :P. Congrats!

Comparing information and knowledge is like asking whether the fatness of a pig is more or less green than the designated hitter rule." -- David Guaspari

Working...