A KML Sitemap

This post assumes basic understand of website structures and XML documents.

After finishing my adventure map (map.jacobemerick.com) a few weeks ago, I wanted to share the KML information online for people using Google Earth or Google Maps. A KML document is merely an XML document with special tags and data that is related to mapping - it includes latitudes, longitudes, and descriptions of geographical points. My adventure map parses KML documents to display the routes, photos, and points viewable on the map. However, in order to offer these KMLs in a way that search robots could view them, I had to do some modifications.

The first step was making sure that my KML documents were being read as KMLs. All of them are generated from a single PHP script, called processor.php, and I wanted to give them a content-type so that programs, including search robots, understood that it was a KML document. This was easy to add in my PHP document.

read more »

Distance Compare Class Part A

This post assumes advanced understanding of PHP scripting and some object-orientated knowledge.

One area of PHP that I haven't had much experience with yet is classes. I have a rough idea of what they do, but after working with a few inefficient classes, figured that they are more trouble then they're worth. It wasn't until one of my contract jobs specifically requested an application built up from a class that I actually built one from scratch and started understanding the true benefit of object-orientated programming.

In this scenario, the client owned about eight stores with unique addresses. They wanted a page on their website that allowed a user to input a zip code in a form to find the closest stores. There are several php classes online that can do this, but they depend on custom databases with zip code information built in and only calculate straight-line distances. As zip codes change over time, these classes became outdated quickly, requiring regular maintenance.

For this project, I decided to connect to Google Maps ...

read more »

Setting up the Hiking Website

Even though my waterfalls site turned out to be a great way to chronicle adventures through wilderness, it has several areas that are lacking. The biggest area is the Google Maps functionality, which is shaky at best. It can only show the end points and major points along the route, but I didn't have enough data to actually upload the suggested route (waypoint by waypoint) for each journey. Also, I didn't have any way of displaying or archiving my other adventures with the waterfalls site, so I decided to make an individual web project: the hiking site.

The layout for this site was fairly simple: a full screen map with removable sidebar containing the hike and view options. Utilizing the jQuery framework would allow me to add the Google Maps pieces easily and use cool animation on different elements. The largest step was the data transfer. I only wanted to return xml, preferably formatted as KML, and use Javascript to parse the data and display it correctly.

Breaking it down to the user's view... A user will visit the main page and see ...

read more »

Future Side Projects

In my free time, I try to keep up with web development for my personal sites. Over the last year, the gem of my side work became the 'Waterfalls of the Keweenaw Area' website, a truly complete and detailed project. Due to this project, I learned more about Google Map API, KML files, and general content management then I would have by waiting for appropriate job projects. The waterfalls site involved much more than just making a website - I had to go out and collect the data (photos, directions, GPS points) manually - and now I have several ideas for future projects stacked up.

One project that is mostly completed is a Daylight Tracker. This application will print out calendars and graphs with sunrise/sunset information based on the current latitude and longitude of a user. While it's completely functional, I've decided to overhaul the frontend to utilize jQuery and JSON as an additional hurdle.

The next project on the radar is a full page Google Maps application that I can start linking my photos, hiking trips, and waterfall ...

read more »