...that this book is built around the opensource Mapstraction project: an abstraction layer that encapsulates multiple heterogeneous mapping service providers - Google, Yahoo and Microsoft-Bing being the three biggies. This is NOT a Google/Bing/Yahoo mapping reference tome.
I can see this being a point of contention with some people just wanting an introductory Google/Yahoo/Bing maps guide who read no further than the book's title and then buy, only to do a massive "wtf?" when they start reading. In defence of the book - it is clearly states in the "Product Description" that Mapstraction will be used - anyone complaining should probably consider being a bit more thorough in their research. Having said that, having "Mapstraction" somewhere in the title could equally have helped.
So, to the book. The style is conversational and, in my opinion, engaging. The initial chaper is a whistle-stop tour of map service providers, plotting coordinates and the obligatory "Hello World" in map format - all good stuff, and nice to actually have a map up and running within a few pages. Mapstraction is introduced and the ability to quickly switch mapping providers is highlighted. By the close, we're playing with map controls and centering.
This leads me to my most valuable gem of information for you - get the code samples from the website, don't type them in from the book. I found at least one typographical error and then ran into (what I think was) a version mismatch between code in the book and the Mapstraction library that I downloaded from the website. This book was published in the dim and distant 2010: that's about 10 years in opensource/perpetual-beta land. I can imagine that this sort of thing will wind-up a proportion of the readership and they'll moan that if this had just been a google maps reference the code would work. I don't mind the challenge (such as it was...) and, crucially, don't have deadlines looming for any mapping projects! From what I can see - the book's website is the de-facto location for working code: use it.
The rest of the book takes you on a nice broad tour of maps and what you can do with them (using Mapstraction). Of particular note - and use - is Chapter 8 which discusses data formats for representing the underlying data, and Chapter 9 which is a little glimpse into the world of driving maps from MySQL databases with PHP as the server-side language of choice. Seasoned PHP/MySQL programmers won't find much of use in Chapter 9 - but those without exposure should benefit - if they can see what's to be gained.
All in all:
- I thought the writing style was good.
- I thought the content was broad, and, though the code is tied to Mapstraction, a lot of the basic material is independent of vendors/implementations.
- I was a little discouraged by the problems with the code in the book, but, once I'd got the code from the web all was well.
- It sparked some ideas that I'd not previously considered.
You can search the contents online - but I thought i'd drop in my own "management summary" of the contents:
Chapter 1: Mapping Basics
- Available mapping apis (500 ft view)
- Takes you through the "hello world" project of mapping
- Shows how to manipulate the basic map controls.
- Shows how to capture a mouse click.
Chapter 2: Plotting Markers and Message Boxes
- Adding/removing markers
- Message boxes for various events
- Custom marker icons
- Zooming to include all markers
- Enumerate markers
Chapter 3: Geocoding
- Geocoding with HTML Web services (Google, Yahoo + Others)
- Post code coordinates database.
Chapter 4: Layer it on
- Drawing lines and shapes
- Draw lines along clicks
- Colour in shapes
- Image overlays
- Custom tiles
Chapter 5: Handling Map Events
- Clicks, Drags and Zoom-level changes
- Marker added/removed
- Line/Shape added/removed
- Message box open/close
- Click marker
Chapter 6: Proximity
- Distance between two points.
- Create driving directions
- Find closest marker
- Plot local routes on map
- Retrieve local results with HTTP
- Check point is within a bounding box/Get random point within a bounding box/shape.
- Get nearest locations from your database
Chapter 7: User Location
- Roll your own IP Database
Chapter 8: Data Formats
- XML, JSON, GeoRSS, KML, GPX
- Conversions: XML to JSON
- Yahoo Pipes for sorting/filtering data.
Chapter 9: Go Server-Side
- Installing PHP, PHP Intro, Install MySQL
- Store/Get locations to a database
- Import data from spreadsheet
- Accessing MySQL from PHP
- Get nearest locations from a db
- Get nearest locations to a Post Code
Chapter 10: Mashup Projects
- Weather Map, Recent Earthquakes, Music Events by Location, Twitter Geo-Tweets, Find a coffee shop
on 15 July 2011
We live in a world where rich and varied software and APIs are freely available on the internet, free to download and free to use. But as it is in the commercial world of software, so it is in the open source and free world of software; however great the product, the documentation ... lacks something.
There's a reason why, 8 years after publication and multiple editions later, David Pogue's "Mac OS X; The Missing Manual" is still one of the most used and most well thumbed books I have ... and that's because it allows me to use my operating system of choice far more effectively than reading the online documentation and searching the various newgroups and online resources.
As it is with OS X, so it is with Mapstraction and Adam DuVander's Map Scripting 101 well warrants the unwritten subtitle of "Mapstraction: The Missing Manual" (we'll gloss over the trademark and legal ramifications of why that can't happen here).
As I'm a contributor of code to Mapstraction my opinion may be considered not without some bias, but if it wasn't for Adam's book allowing me to understand how rich the Mapstraction API is and how it should work, I would never have been able to write the code that I contributed to the project.
Adam writes from a position of knowledge and passion but at no point is the reader left feeling they're being patronised or spoken down to; often a problem with some technical books.
If you want to put maps on your web site, buy this book. If you want to know how online maps work, buy this book.