openlayers beginner's guide: chapter 3