Open Source Geographic Tracking?
Walkingshark writes "I work for a company that needs to track people and equipment across the US as they move to, work on, and leave jobs. The boss has been looking at the typical mix of closed, proprietary software and has also considered building off our existing 10-year-old SQL database (with the kind of clunky interface you'd expect from a program built in the late '90s). I'd like to be able to bring him a good open source alternative, but so far I haven't been able to find anything that can do what we need. Ultimately, we need to be able to keep track of a few thousand separate people and pieces of equipment, and to move them in dynamically created groups to and from our locations and jobsites in a way that is sharable between workstations, with updates to location entered at one station being broadcast to all clients in real time. Ideally, this program needs to also give us access to road routing similar to the capability found on Google Maps. We'd doubtless need to be able to modify the source for customization, but I was hoping there was something we could find out there that had the core functionality we're looking for."
...(with the kind of clunky interface you'd expect from a program built in the late '90s)...
Actually, clunky interfaces have little to do with the 1990s. Most such applications are a direct consequence poor application design and/or poor programming. Lots of 2010-written apps are clunky too.
How is the asset (people/equipment) location determined and sent back to the HQ? Once you have that piece of information in your database, isn't it as simple as plotting on google maps?
You probably should specify whether you are talking about real time tracking or something that only reads history off of a device. It's cheaper to only read history, for real time you need a constant uplink, but of-course real time gives more interesting potential applications. Also you probably should specify what kind of equipment you are interested in tracking. How precise must the tracking be? Simple things like who will charge/change batteries? How do you see tracking devices attached to the people? What's to stop people from faking the data or simply from covering the devices so they can't get a signal? Or from having 'dead batteries' in the most inopportune moments? How much money do you have for the project? How much time, what are your deadlines? Why are they interested in tracking at all, because based on the reasons for this you probably will have different requirements?
Those are probably just some of the questions you need to get answers to from your management before you start the project, I mean you are looking at a very expensive problem here, I doubt you'll find an off the shelf solution that will be able to meet all of your requirements, but once you know all of your requirements and reasons, you will be able to use existing components, compact wearable GPS systems or maybe cell-phone triangulation, GPS recorders in cars/trucks, GPS recorders on other 'equipment' (what about batteries on this other 'equipment'?) Seems like it's going to be a huge and a very expensive project.
You can't handle the truth.
If the SQL database is designed correctly, then all you're talking about is taking on lots of different front-ends to it. A SQL database really should remain the backbone of a project like this. You can connect any kind of front end to it that you want, but there's not a better alternative than a plain 'ol database in the back end.
I don't respond to AC's.
I like Free Open Source Software. Please give me this highly specific software so that we can use it for free in our business. I don't want to actually develop it myself or give back to the community an way. FOSS FTW!!
Do you even lift?
These aren't the 'roids you're looking for.
Note that both Google maps and Bing require access through specific API and paid-for licenses specifically for anyone who wants to use their mapping services for "fleet" tracking and similar applications. Yours clearly falls into that area. Since without mapping data a project like that cannot exist - it is unlikely there is a truly free alternative (and, as a consequence, not much open source - I suppose because open source developers don't really find a compelling reason to tie to a proprietary data set).
Incidentally, Bing has somewhat more lenient terms for those who want to do tracking.
I think only thing what you can start of is take Marble (part of KDE SC Edu package) what supports openstreetmaps and other GPS locations. You can get GPS information from devices and place them to maps. You can also draw routes to map in the latest version. You can as well get satelite views and other kind as well. It supports OSD's and other templates what could be used. Right now they are used to show wikipedia, flicrk! and few other sites infos and thumbnails over map.
So at least there is no need to start from scratch.
My friend works on garden company and while he is the vice president, he wanted to arrage a GPS system with same ideas as you have. The results were that in the office there is a big 50" LCD screen what shows the map and on that map is continuesly realtime updates of the company vehicles (about 35) and every job what they get, is listed to side of the screen. There you can easily assign groups or specific workers to do them. They get them pushed to their mobile devices (If I remember correctly, all were iPhones) with contact and job informations, like camera photos of what is needed to move to where or what trees are needed to cut off or where the fountain is going to be placed, how the rock path is needed to get dicked etc etc.
That was about 2 years ago and I have no idea is it open source or not. But I only know such thing just made it so much easier to manage the company when almost all workers are all the time outside of the office in the field and there usually is one job for day or two on summertimes. Winter time the joblist is more standard when there is no outside works. But same thing applies then.
Especially they have liked very much the idea that if you need to pickup something from store, you can check what is the closest car and check what is the route to it next tasks. So you can just ask car B to go store, pick up the merchandines and meet car A between B's route to next tasks and swap them to car A what can continue to do their job. While saving time like 1-2 hourhs in that.
And what has improved their work quality almost totall error free is the integration to phones snapped photos. So when on last day the boss meets the client and discuss the plans, the photos works as orders and there is no mistakes what was needed to do and no need to call after on next day to ask what was the tasks and what tree to cut, what flowers to place in what order etc.
If possible, you could contact to Marble developers, ask what would be possible and work with them. In the end there should be nothing more needed than get the phones or other devices to send GPS data to servers where they get grepped and processed and then shown over marble.
And Marble only needs KDE Platform and KDE Edu package. So you can get it work with different OS's (Linux, XNU, NT, SunOS, FreeBSD). So all the software systems using those OS's can be used then.
While it won't help for onroad routing, Pincaster might help you to store 2d geographic data and to easily display it on a map : http://github.com/jedisct1/Pincaster/blob/master/README.markdown
{{.sig}}
So nothing quite as specific as what you are looking for, but if you what to build your own, these might be worthwhile:
-postgresql has a extention called postGIS that allows you to store geometry (e.g lines/roads)
-openstreetmaps is an opensource alternative to google maps that several OS projects are using
-GDAL/OGR combined with GRASS are free way to author basemaps
-I know python has some geotagging plugins, but the name(s) escape me...
You need to check out Postgresql, http://wwwpostgresql.org in combination with Postgis , http://postgis.refractions.net/. The postgis addon to postgresql allows you to use geometry or geographic field types to capture projected or lat/long coordinate data. You can then perform spatial queries on the data in the database using a string of sql. http://postgis.refractions.net/documentation/manual-1.5/ .
Think of it this way, with a normal database, you can say select all red-headed persons with the first name of Bob ( if you have hair color and first name in the database) . With a spatial database you can say select all red-headed persons with the first name of Bob who live within 200m of a fire hydrant on Main Street in the town of Springfield.
The cool part about this is that any application that can pass an SQL string to the database can now perform spatial queries ( intersections, points on a line, routing (http://pgrouting.postlbs.org/ ) .
So, you can spend many 10's of thousands of $$$$ on a proprietary software package that puts blobs in the database accessible only through their interface, or you can go with Postgresql/postgis and connect to and manipulate the data in any way you want, with plenty of options for commercial support.
Have you considered using force.com (there is for example the GeoPointe tool to link with google maps) or perhaps Google App Engine (GAE) as a platform for building your own easily scalable, mashup-friendly service? There seems to be something called GeoModel which you can access from within GAE for simple queries like what assets are within a given radius. These services will host it for you so you can save the money of purchasing and renting your own servers too. Here are some jumping off points perhaps..
http://googlemapsapi.blogspot.com/2008/05/app-engine-local-search-maps-making.html
http://code.google.com/apis/maps/articles/geospatial.html#geomodel
http://www.arrowpointe.com/
http://sites.force.com/appexchange/listingDetail?listingId=a0N300000016ZHeEAM
http://www.opendmtp.org/
openstreetmap.org That will get you
map tiles, several viewers, and access to the underlying street information.
Unfortunately the details here aren't totally complete for me to be sure, but a software as a service solution may work and be able to keep costs down. I know of one company that uses GPS to track everything from people to assets, to just about anything. Check out Trootrack.com. It's a SaaS solution that might work for you. Give them a call and see if it will do what you want. Not open source but it can be customized as need be most of the time.
Google OpenGTS..it's an open source asset tracking solution
I'm currently developing realtime asset tracking application that runs in web browser. Location data (and other information) is sent from/to mobile phone from server. We did buy Google Maps licence but i also included OpenStreetMaps support. OpenStreetMaps JS API allows you to use same KML data that you would use with Google Maps (or Google Earth). Google Maps costs around $10k/year, so it's not really a cheap solution. OpenStreetMaps is missing some good documentation, but there are plenty of examples that help. I think we will drop Google Maps later and only use OSM.
You may wish to keep your eye on the OpenTripPlanner project, which is a multi-modal trip planner that's LGPL. This might provide the routing algorithm you need. (http://opentripplanner.org)
I thought i'd add my 2 cents here as i am currently working on a project that does exactly what you want, however it is not open source. The problem is that it costs money in order to use either Bing or Google maps and i have not seen a decent alternative yet. Also what seems like a simple coding project to make this new application is likely not as easy as you think for various reasons. We have a dedicated team of 7 coders and we have even hired a few outside contractors, if i were to guess i'd say we've spent over a million dollars so far developing this software and its not done yet. So here's your choice, spend a million developing your own software or buy a pre-made system.
If you want to be able to update you base layers: -postgres with postGIS lets you store geometry (e.g lines/roads) -GDAL/ORG with GRASS lets you author content -openstreet maps in an opensource alternative to googlemaps that provides an API -There are several geotagging/location modules in python that will take a lat/long and output an address
How about GeoServer? Several types of interfaces are available.
PostgreSQL + PostGIS for the backend unless you already use and need oracle/db2. If you do gis do it with gis-enabled db. Openlayers for easy gui, GS for the stuff between the gui and db.
Postgres has some GIS extensions that are quite nice. That'd be the foundation of anything I'd build. You might need some additional components if you also need to serve imagery.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
you just sweep around a sound beam in a 365 degree circle
One degree per day, one a year for a full revolution, with five days off for Xmas?
I doubt if there's anything Pre-Built and Open-Source that can do that, but I bet with a few person-years or less of work you could make something with GRASS, PostGIS and/or qGIS that can map the equipment given a GPS & SMS capable tracking device (purpose built or smartphone app). Not so sure about the route finding though.
http://www.pachube.com/ does the realtime tracking and also multiple datastreams (which could contain information about the equipment). There's an app for mapping moving things too: http://apps.pachube.com/trails/
you would have to do a bit of coding yourself using their API but seems like it would do most of what you need.
http://www.vistracks.com/ Works from the browser IE/Firefox
This program is not free but it seems to work very well: http://www.esri.com/software/arclogistics/index.html You can keep track of thousands of orders, thousands of customers, and thousands of trucks. You can manage a whole logistics system including planning out efficient routes, etc.
Ships are routinely tracked using AIS transponders. There are free mapping services online. See for example:
Tracking Ship Positions Possible Worldwide with Free AIS Services
I don't know about open source solutions for you, but I'm working on a SAAS startup that offers some of what you're looking for: http://www.dedicatedmaps.com./ (u/p = demo/demo)
It's essentially a google map behind a log in showing only your assets with access control and roles for your users. We put things on the map that are automated real time (via cell phone app, SPOT unit, satellite-based VMS, or marine AIS), automated non-real time (e.g. we periodically pull or push locations and inventory details from an external database), and decidedly manual (user places a marker on the map).
Our current customers are oil spill response companies (who are quite busy at the moment!) They have to keep track of things that rarely move--like thousands of pieces of gear spread out in staging areas waiting months or years between spills, to things that move quickly--like personnel and ships responding to a spill on a river with ship traffic. We even have a satellite-based unit that can be thrown into the oil to show its movement, say, down a river.
I'd be happy to chat with you about how it works if you're going to roll your own or are interested in the service.
You can see some of what can be done on the demos page.
What you want to do is fairly simple, and has been done before.. you can probably find enough code examples in the SDK and on the forum.
"(with the kind of clunky interface you'd expect from a program built in the late '90s)"
:-)
LOL! Let me know when you're old enough and I'll buy you a beer
I'd be very grateful if you could do my job for me and (since I have some options) simultaneously add several billion dollars value to the company I work for, all the while making me look good to my boss's boss.
Yours sincerely...
Deleted
Don't overlook the protocol used by radio amateurs for location tracking. This is often used with amateur weather balloon and photography. Getting a fix on the landing site helps recovery of the payload.
Auto Position Reporting System (APRS) can be adapted to other communications links besides ham radio.
http://www.cave.org/aprs/
http://www.cave.org/aprs/aprswhat.html
http://freshmeat.net/projects/gpsd/
The truth shall set you free!
Well said.
You are an uncommonly astute and intelligent gentleman.
As a member of the Swedish Tanning Team, I would like to bear your children, after multiple bouts of sweaty, hot monkey sex.
Call me, 'kay?
It's called waze and they go under gpl like license, I've replaced igo app with them for having user supplied info and real time police locators
TangoGPS is the best OSS alternative to Google Maps / Lattitude that I've seen. Much more usable and featureful than GPSdrive, which for some reason hangs out much higher on all the search engines and lists for Linux GPS mapping apps, even though TangoGPS has been around for a few years now.
TangoGPS supports a Latitude-like latlon reporting and friend tracker, which would probably be pretty easy to modify to use your own server. It supports multiple map sources, including OSM, and even a "for test purposes" view of Google Maps. The routing is rudimentary since I think it just uses the basic TIGER data and not one of the more tuned commercial street databases, but it's there.
Runs great on my eeePC with a bluetooth GPS and dumbphone EDGE uplink, though it looks like they also have clients for smaller devices. The user interface is somewhat touchscreen friendly, with large controls.
Have fun!
There is a huge market of folks who specialize in this. I work for a bank that finances cars and we install GPS units on all the cars for about $100-150 a unit and they have the web apps needed for tracking and monitoring. The company we utilize does most of their business with CalTrans and such. The only cost outside of the unit cost is the annual cellular renewal at about $10-15 a year. I tried to do the same thing you are looking to do using OPENGTS (http://opengts.sourceforge.net/), but found that putting everything together myself was going to be cost prohibitive. I dont want to plug any particular company on /., but if you want to know the company I use, let me know, I researched this for a good year, even to the point of trying to construct the devices and pricing out all the components at a mass scale. I currently have over 5000 in my fleet and they have been worth every penny.
Just a word about location precision. For large areas, GPS is your best bet, UNLESS your inside of building. If you're trying to track equipment within a building and in the sub 10 ft range, then you're looking a something much more complicated. Currently there's a lot of work being done in UWB which can theoretically resolve down to 6 to 12 inches of precision. Fantastically complicated right now and definitely not an OS solution. As others mention, if GPS accuracy is all you're looking for, take a look at the OpenStreetMap project and its spin offs.
Filmo The Klown
Wouldn't it be a lot more fun just to write new code than jerking around customizing third-party/open source platforms?
You'd be insane to do a project like this with a SQL backend. Look into using a decent object database (OODBMS).
New mod option wanted: -1 DrunkenRambling
Thanks :)
The world you experience is only a close approximation of reality.
I'm developing a completely open source project for logging and accessing/viewing geo data. It consists of a server part (Apache, MySQL and PHP) and a Client part (currently an Android client and a Web client using the Geolocation API) http://opengeotracker.org/
www.beaconbase.com