Open Source Geographic Tracking? 84
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."
Re: (Score:2)
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?
...the kind of clunky interface you'd expect... (Score:3, Insightful)
...(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.
Re: (Score:2)
Tell me about it. I've worked for so many companies that use some of the worst interfacing on their internally developed applications that it's embarrassing to know customers have to look at it. Mostly I put it down to developers being used for interface design, rather than using people talented with both design and development (these kind of employees are expensive, cheaper to get an Indian on a work visa).
Unfortunately it's not going to change in an hurry, mainly due to IT companies being run by accountan
How is the location data obtained? (Score:3)
Re:How is the location data obtained? (Score:5, Interesting)
Exactly, this isn't difficult.
PseudoSQL:
select name,longitude,latitude from location order time desc limit 1.
Google Maps API [google.com] and that should be it.
I didn't want to mess with the API and what I was plotting doesn't change quickly, so I just used PHP to create a KML file which I loaded through GoogleMaps/Earth.
Make it Ajaxy some 'inserts' of the data and ... that should be it. If the SQL database itself works, there is no reason that you need to replace it. It sounds like it's just the interface that is the problem.
Re: (Score:3, Interesting)
To present the data SVG could be used and add reference points relevant to your location (city hall, main office, etc), so you can avoid Google or Bing APIs.
I agree with you that the tough problem is acquiring the GPS data and the means to transmit it to the central database.
Re: (Score:1, Insightful)
The built in spatial capabilities of Postgres aren't really that good for geographic information, but that's what we have PostGIS for. And rather than SVG, I'd suggest Geoserver and OpenLayers. I've used this combination myself in developing a system for tracking water levels at wells.
Re: (Score:1)
typo on the URL, should be
http://code.google.com/apis/maps/index.html [google.com]
Re:How is the location data obtained? (Score:4, Informative)
Add handsets running Google Latitude [google.com] for all the people you want to track, and you're good to go.
As others have said if you don't trust Google with your data, you can do your own server based on open streetmap; and it's fairly simple to build a custom program for any smartphone platform of your choice which phones home to report position. if you add a bar-code scanning module (and most smarphones these day have APIs which allow the camera to be used to scan barcodes) then people in the field can also report back the location of hardware assets, simply by scanning them.
I did a system much like this four years ago [journeyman.cc], for monitoring the collection of shellfish; it's GPL, you can download the source from Sourceforge. Unfortunately the fieldkit [journeyman.cc] is dependent on a Hewlett Packard iPAQ model which is now more or less obsolete. But rewriting the fieldkit for use with Android or iOS4 would not be hard.
The mode of operation was that the inspector in the field would scan his own badge (with barcode); then scan the shellfish gatherer's license card (also with barcode); then scan the barcodes on each sack of shelfish collected. If the fieldkit had a current GPRS connection it reported back location, time and bag numbers to the server in real time, and was able to alert the inspector immediately to violations like re-used bags; if not it would buffer the the information until the next time it got a GPRS signal, at which point it reported back to the server. This allowed near real time tracking of shellfish inspections.
This obviously isn't what you need to do - but it is analogous to what you need to do and you ought to be able to get the ideas you need from the code. If you need any help, mail me - the address is valid.
Re: (Score:2)
Thanks mate, that's fucking brilliant.
Re: (Score:2)
The problem with just using google maps is that people need to see what is where at a glance, without having to mouse over. I haven't found a way to replace the little red pushpin icons on google with something useful (like unit numbers). The other concern is that they want to keep information on the local server so that if our outside network connection goes down, we can still work.
Re:How is the location data obtained? (Score:4, Interesting)
Re: (Score:2)
Thanks, that's the kind of thing I was looking for. I can't believe I didn't see it when I was searching.
Re: (Score:2)
Information is usually called in from the field. Getting our field people to use technology (like smartphones) to email information in is a slow, arduous process, but we'd like to be able to have a mobile app that would let them do it all electronically.
tracking how? (Score:3, Informative)
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.
Re: (Score:2)
My current employer does software and hardware to do this - it is a proprietary solution and it is expensive. This stuff ain't cheap yet. Now we don't tie into Google maps as of yet, but I think I'll bring that up in the next development meeting. I don't see an open source alternative for real time mainly because the hardware needed. software could be written but it still has to talk to RFID and GPS tags and..
Re: (Score:2)
There are plenty of sub $100 devices. Using Google Maps in this way will require a license. Check out for alternatives [opensourcegis.org].
Re: (Score:2)
With what we're tracking, people will not want to pretend to be elsewhere, it makes their job easier if the hardware automagically tells home base where they are. It doesn't need to be in real time so that isn't an issue, as long as it lets them update home base any time they move or change status.
SQL (Score:3, Insightful)
Re: (Score:1)
Re: (Score:2)
The database is definitely showing it's age. It's slow and buggy and generally they try to solve performance issues by throwing more hardware at the problem. Hopefully we can push them in the right direction, but we won't be able to do that until we can show upper management some eye candy to prod them along into financing the real work it's going to take to fix the back end.
Dear Ask Slashdot, (Score:5, Insightful)
Re: (Score:2, Insightful)
More like "I want highly specialized solutions, but don't want to pay for it"
Re: (Score:3, Insightful)
More like, "I have a need and would like to know if it is met by some foss program. Otherwise we have to default back to proprietary software because we have not time or manpower to reinvent the wheel in case the foss program already exists or not". Some specialiced foss software like this might be hard to find even if it exists. Do you suggest that everyone reinvent everything everytime?
Re: (Score:2)
More like, "I have a need and would like to know if it is met by some foss program. Otherwise we have to default back to proprietary software because we have not time or manpower to reinvent the wheel in case the foss program already exists or not". Some specialiced foss software like this might be hard to find even if it exists. Do you suggest that everyone reinvent everything everytime?
Sure, didn't you know -- it's a new fad in programming, "Idea Reuse"
Re: (Score:2)
That was basically my thought. If we modify it for our own use I'll be there to make sure the company abides by the license and redistributes modifications or the source, depending on what it's under. I just don't want to have to pay some dude to write it from scratch if there's something we can build on sitting on a shelf out there somewhere.
Re: (Score:1)
Free The Wookies? Sure, where do I sign?
Re: (Score:2, Interesting)
"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."
You missed the part where they said they'd modify/develop. They just don't want to reinvent the wheel and want to support OSS.
Re: (Score:2)
I wouldn't mind this guy turning his boss/firm/department in another small FOSS success story... If a couple hundred companies used whatever FOSS solution is best for this, a few of them might contribute something useful, a handfull will notice a bug that needed fixing somewhere in the stack, a dozen will come up with a GUI improvement and they'll all mention it from time and again.
My two cents, this is FOSS FTW!
On a related note: could someone suggest an AGPL solution, please? :-)
Google maps for tracking (Score:4, Informative)
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.
Re: (Score:3, Informative)
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).
But there are non-proprietary mapping data sets available (e.g. openstreetmap.org)
Re:Google maps for tracking (Score:5, Informative)
NASA World Wind Java Re:Google maps for tracking (Score:2)
You can see some of what can be done on the demos [nasa.gov] 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 [worldwindcentral.com].
Re: (Score:2)
Thanks :)
Check out the Marble (Score:3, Interesting)
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.
Re: (Score:2)
Interesting, thanks, sounds pretty close to what I need.
A simple opensource database for geolocalized data (Score:3, Interesting)
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 [github.com]
Anonymous Coward (Score:5, Informative)
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.
Salesforce or AppEngine perhaps? (Score:4, Informative)
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 [blogspot.com]
http://code.google.com/apis/maps/articles/geospatial.html#geomodel [google.com]
http://www.arrowpointe.com/ [arrowpointe.com]
http://sites.force.com/appexchange/listingDetail?listingId=a0N300000016ZHeEAM [force.com]
opendmtp (Score:1, Interesting)
http://www.opendmtp.org/
Go directly to openstreetmap.org (Score:1, Informative)
openstreetmap.org [openstreetmap.org] That will get you
map tiles, several viewers, and access to the underlying street information.
SaaS Solution (Score:1, Informative)
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.
OpenGTS (Score:2, Informative)
Google OpenGTS..it's an open source asset tracking solution
Re: (Score:3, Informative)
Seconding OpenGTS. I don't use it personally, but my uncle is a private investigator who chases trucks around California to find them for repo men, and he recently switched to OpenGTS (from some insanely expensive tracking system) for GPS tracking and loves it. It would be great for fleet tracking as well. I believe it uses SMS to transmit real-time location data, so you will need a texting plan for each device.
http://opengts.sourceforge.net/ [sourceforge.net]
Anonymous Coward (Score:1, Interesting)
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)
How much are you willing to spend? (Score:1)
Map Authoring (Score:2, Informative)
GeoServer? (Score:3, Informative)
PostGis + GeoServer + OpenLayers (Score:1, Informative)
Postgres (Score:3, Informative)
Good luck with that. (Score:2)
Dear Slashdot (Score:2)
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...
AIS Transponders (Score:1)
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 [suite101.com]
SAAS solution (Score:3, Interesting)
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./ [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.
Where's my Geritol? (Score:2)
LOL! Let me know when you're old enough and I'll buy you a beer
Re: (Score:2)
Bah, I merely used that to differentiate it from, say, the kind of klunky program you might have seen built in the late 80s, designed to run on a terminal in brilliant green monochrome.
What we use looks like it was built on win 3.1 and then ported over, just based on the interface conventions (or lack thereof).
Amateur Rado has some tools (Score:3, Informative)
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/ [cave.org]
http://www.cave.org/aprs/aprswhat.html [cave.org]
http://freshmeat.net/projects/gpsd/ [freshmeat.net]
TangoGPS (Score:3, Informative)
TangoGPS [tangogps.org] 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!
Location Precision (Score:1)
No SQL (Score:2)
Re: (Score:2)
You'd be insane to do a project like this with a SQL backend
Why? His spec was for "a few thousand" locations.
There is probably a way to provide some "job security" by making it extremely complicated to develop and deploy, but thats not necessarily sane.
OpenGeoTracker (Score:1)