...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
- Javascript vs. HTML geocoders
- Geocoding with Javascript
- Geocoding with HTML Web services (Google, Yahoo + Others)
- Reverse Geocoding with Javascript, Google Web Service
- 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
- Determining a user's location via JavaScript, Fire Eagle and IP addresses
- 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
There's also Javascript and Mapstraction references in two Appendices.