I am building a Windows Mobile application that needs to be highly integrated with a GPS map.
Let’s assume that I’m building a system that UPS will use to help its drivers deliver packages. I want to display a map with a list of destination addresses on it, and provide the driver with directions to each address. When they arrive at each address, they should see a list of the packages in the back of their truck to be delivered at this address, and should be able to enter the outcome of their delivery: “no one home”, “delivered to loading dock”, “cat bit off my toe”, etc.
Ideally, I would like to find an application framework that handles the generic mapping tasks here (providing directions, drawing the map, etc.) and lets me write the specific behavior I need for my own application: determining the addresses, looking up the packages for a specific address, and so forth.
Surely there must be something like this out there. Does anyone have experience in this area? Price is not an issue.
I would like to avoid buying data from Navteq and writing my own rendering and pathfinding routines - although, perhaps that might not be that hard.
Not to be farting in church, here, but doing it yourself probably wouldn’t be hard at all. I’ve written programs that interpret the NMEA183 strings that so many GPS units send, and they really did lay things out so you don’t have to do much interpreting. There’s so much GIS and graphing software and libraries out there, you might not have that much work. Though if you’re new to GPS, you might get stuck by one surprise: the latitude, longitude, altitude coordinate system is in fact many slightly different systems called “datums” (sic), and they reflect the practical difficulty in originally estimating where the North Pole and Greenwich, England are relative to “here”. Just beware that GPS uses WGS84 (the “World Geodetic System of 1984”) which is practically identical to NAD83 (the “North American Datum of 1983”), whereas many USGS maps still use the NAD27 (from 1927). There’s a shift of dozens of feet, which isn’t important in thinking about the North Pole but can put you in the wrong block sometimes.
For a PC/laptop based app, both Google & Microsoft Virtual Earth offer browser-side APIs that make map, point & line visualization dirt simple, including search & driving directions. All the business data to be displayed is stored in JS data structures on the client.
Architecturally, you’d want your server to store the database of delivery point & truck contents & feed the initial workload page to the client with the data. Add in a little AJAX to update your server as the end-user enters updates into the JS client code & you’re soup.
Note this is 100% dependent on near-continuous connectivity to both your server for updates & your mapping source for new graphics.
So far, so good, at least for a laptop app.
Now moving this to Win Mobile is an area I’ve not investigated at the code level. It really depends on the capability of the mobile device’s browser. But architecturally, nothing needs to change as the client shrinks.
FYI, there are dozens, if not hundreds of well-funded efforts to build exactly what you’re talking about on mobile devices. Including two efforts that I’m personally acquanted with being done by major US wireless carriers. If you’re doing this in hopes of scooping the market, you’re about 2 years late & a few dozen million dollars short. If this is a contract job for a customer, you’re OK.
Or, you could talk to these folks: http://www.agilissystems.com. I’m not financially affiliated with them, but my firm did do a joint effort with them at one time & their product seemed solid enough. I’m not sure whether it already does exactly what you want, but it’s within barking distance.
Any particular recommendations? I don’t mind communicating with the GPS receiver, but I’d like to avoid writing map-drawing routines. I am having difficulty finding something, partially because I don’t know where to look.
I do not want this to be a laptop app, nor do I want to be dependent on internet connectivity. It needs to run on a small, disconnected mobile device.
And I’m aware that this general sort of thing is quite popular - but I don’t think anyone has thought of the particular market I am looking at.
With current PDA technology, you’re not going to find a self-contained GIS app. There is no way to crush the required GIS database onto the PDA, much less have enough processing power to do the map graphics generation or driving direction generation on the fly.
If you are looking for a small enough area, say a single US county, then you might be able to get canned map graphics on a PDA & then overlay delivery points correctly geo-registered for display.
In this total endeavor, getting the GPS coords of the device from the on-board GPS receiver is about 0.1% of the work. Getting a full GIS rendering/searching app onto the PDA is the hard part.
Are you kidding? Sure they do. The Navteq database for all streets and waterways in the US and Canada, as well as a listing of pretty much every retail business in both countries, fits in about 1.2 GB. That’s a $20 SD card.
If this is so impossible, then what do devices like the Garmin Nuvi use? Magic? For $499, I guarantee you they’re not using an exotic hardware in that thing. Just a PDA-level processor, a GPS chip, touchscreen, and some storage.
Driving directions is a simple search algorithm - and map graphics generation involves drawing some lines to the screen. I’m not talking about storing and rendering 1-cm topographical surveys in 3D, or something like that.
If need be, I can just write software that will draw the streets and calculate the directions myself. Perhaps that will be the easiest solution. But I would prefer to just buy a pre-built library.