[mapserver-users] Asking for guidelines about a project

Brent Fraser bfraser at geoanalytic.com
Mon Jun 20 09:43:52 EDT 2011


Ben,

   Our setup was similar.  We had a current_location table and a 
archive_location table.  To filter the archive_location for positions in 
the last 24 hours we had a view:

CREATE VIEW archive_v AS
             SELECT
                    archive_location.vessel_id,
                    archive_location.time_fix,
                    archive_location.speed,
                    archive_location.heading,
                    archive_location.vessel_coordinate,
                    archive_location.archive_sequence,
                    vessel_cfg.vessel_name,
                    owner.org_name
             FROM archive_location,owner,vessel_cfg
             WHERE archive_location.owner_id=owner.org_id AND
                   archive_location.vessel_id=vessel_cfg.vessel_id AND
                   ((now() AT TIME ZONE 'utc') - 
(archive_location.time_fix)) <=  '24 hour';

I can't recall how we created linestrings for the tracks from the above 
view, but I think we used the archive_sequence number (this was assigned 
at insert time, per vessel) to order the points into lines.

Best Regards,
Brent Fraser


On 6/19/2011 7:31 AM, Ben Madin wrote:
> I've done similar to Brent's suggestions, but tracking boats with 2 
> hourly updates. We just stored all the location data in one table with 
> a reference id to a boat name and details in another project.
>
> The default setting showed the current location and the last 72 hours 
> of track... Using a query like select blah order by recordtime desc 
> limit 36. we then created a linestring and mapped those. It was a bit 
> heavy on the poor old (really old) server, but there were only about 
> 70 boats all up.
>
> In retrospect (and if I had more boats or users), I would create two 
> tables, one holding the all the point locations, and one holding the 
> default tracks. The default tracks would be updated by a trigger on 
> insertion of the new records into the locations table, rather than all 
> being computed on the fly.
>
> Anyway, 101 ways to skin a cat.
>
> cheers
>
> Ben
>
>
>
>
>
> On 18/06/2011, at 11:31 AM, mapserver-users-request at lists.osgeo.org 
> <mailto:mapserver-users-request at lists.osgeo.org> wrote:
>
>>>>> *From:*Brent Fraser <bfraser at geoanalytic.com 
>>>>> <mailto:bfraser at geoanalytic.com>>
>>>>> *Date:*18 June 2011 3:27:00 AM AEST
>>>>> *To:*Saka Royban <sakaroyban at yahoo.com <mailto:sakaroyban at yahoo.com>>
>>>>> *Cc:*MapServer <mapserver-users at lists.osgeo.org 
>>>>> <mailto:mapserver-users at lists.osgeo.org>>
>>>>> *Subject:**Re: [mapserver-users] Asking for guidelines about a 
>>>>> project*
>>>>>
>>>>>
>>>>>     Well, it's up to you how to model the objects (that's the 
>>>>> great thing about relational databases).  Typically, I've added a 
>>>>> table of "Historical Positions" with basically the same structure 
>>>>> as the "vehicle" table (but in that case the unique key is not 
>>>>> the  vehicle ID, but instead just a system assigned key like 
>>>>> OID).  As for the points passed by, I would not save that 
>>>>> information in a table, instead consider it the result of a 
>>>>> spatial query (say in a PostGIS view) at display time.
>>>>>
>>>>>   A system like this usually takes a large of amount of time for 
>>>>> requirements, investigation, design, and prototyping.  And of 
>>>>> course, construction, testing, documentation, and training.  If 
>>>>> you want something more packaged you can just download and 
>>>>> install, you may want to do some searching on the web.
>>>>>
>>>>> Best Regards,
>>>>> Brent Fraser
>>>>>
>>>>> On 6/17/2011 10:56 AM, Saka Royban wrote:
>>>>>> Thanks for ur answer and also Josh's answer.
>>>>>> In fact, i should be able to display path of vehicles (usually 
>>>>>> more than 1 vehicle in display area) and also be able to save 
>>>>>> points passed by vehicles and time of passing (for some queries). 
>>>>>> Cause of that, i thought maybe i need one table per vehicle.
>>>>>> Do u think any more idea?
>>>>>>
>>>>>> Best Regards
>>>>>>
>>>>>> ------------------------------------------------------------------------
>>>>>> *From:*Brent Fraser<bfraser at geoanalytic.com>
>>>>>> *To:*Saka Royban<sakaroyban at yahoo.com>
>>>>>> *Cc:*MapServer<mapserver-users at lists.osgeo.org>
>>>>>> *Sent:*Fri, June 17, 2011 7:49:20 PM
>>>>>> *Subject:*Re: [mapserver-users] Asking for guidelines about a project
>>>>>>
>>>>>> The database schema depends on what you want to do with the data 
>>>>>> (display current position?  A track of historical positions?), 
>>>>>> and how much data you expect (how may objects will be tracked?  
>>>>>> how often will they report?).
>>>>>>
>>>>>> A simple schema would have one table (e.g. "vehicles"), with one 
>>>>>> row per tracked object
>>>>>>
>>>>>> Table: Vehicles
>>>>>>
>>>>>> ID:    Name:         Position:       Status:   UpdateTime:
>>>>>> 1      My Car        point(51,-115)  active    2011-06-16 10:23:54+02
>>>>>> 2      Another Car   point(52,-116)  inactive 2010-05-15 11:13:12+02
>>>>>>
>>>>>> With this schema, when a new position arrives for  "My Car", an 
>>>>>> update statement is issued to change the row's Position and 
>>>>>> UpdateTime (and possibly Status).
>>>>>>
>>>>>>   The table is treated as a PostGIS point layer by mapserver.
>>>>>>
>>>>>>   In my implementations, the position data was updated every 30 
>>>>>> to 60 minutes (they were ships and construction vehicles), so 
>>>>>> there was no need to ask mapserver to regenerate a graphic every 
>>>>>> second; an updated map was shown whenever a user did a pan or 
>>>>>> zoom.  You may be able to configure OpenLayers to do a CGI 
>>>>>> request to mapserver every few seconds, but I've never done that.
>>>>>>
>>>>>> Best Regards,
>>>>>> Brent Fraser
>>>>>>
>>>>>> On 6/16/2011 11:52 PM, Saka Royban wrote:
>>>>>>> Thanks a lot brent
>>>>>>> I checked provided link and i;m gonna give it a try.
>>>>>>> About ur helpful advices, i'm confused about how to save data in 
>>>>>>> PostGIS? with what schema?
>>>>>>> I mean i have to keep track of each paced point by moving 
>>>>>>> objects. Should i record each point as a record, so it means one 
>>>>>>> table per moving object ?
>>>>>>> Also for displaying these varaiant data, there should some sort 
>>>>>>> of plan. I don't think i'm able to say to MapServer CGI at each 
>>>>>>> second connect to PostGIS and read the new data, then i have to 
>>>>>>> use MapScript. Am i right? (Can this process be done via 
>>>>>>> OpenLayers?)
>>>>>>>
>>>>>>> Best Regards
>>>>>>>
>>>>>>> ------------------------------------------------------------------------
>>>>>>> *From:*Brent Fraser<bfraser at geoanalytic.com>
>>>>>>> *To:*Saka Royban<sakaroyban at yahoo.com>
>>>>>>> *Cc:*MapServer<mapserver-users at lists.osgeo.org>
>>>>>>> *Sent:*Tue, June 14, 2011 7:14:08 PM
>>>>>>> *Subject:*Re: [mapserver-users] Asking for guidelines about a 
>>>>>>> project
>>>>>>>
>>>>>>> Saka,
>>>>>>>
>>>>>>>   I've had good success using PostGIS for data storage in 
>>>>>>> implementing tracking systems.  While you'll need to create your 
>>>>>>> own code for updating the positions in the database, mapserver 
>>>>>>> can read points from PostGIS and can render the points into a 
>>>>>>> map image for use with the OpenLayers client.
>>>>>>>
>>>>>>>   There are other solutions too, like OpenGTS 
>>>>>>> (http://opengts.sourceforge.net/index.html)
>>>>>>> Best Regards,
>>>>>>> Brent Fraser
>>>>>>>
>>>>>>> On 6/14/2011 12:08 AM, Saka Royban wrote:
>>>>>>>> Hi all.
>>>>>>>> Strictly Speaking, i have a project that i should display some 
>>>>>>>> moving objects on a map via browser.
>>>>>>>> Generally, i don't know how to start? i mean how should i save 
>>>>>>>> these time-based objects in DB and how to retrieve and display 
>>>>>>>> them via Mapserver? where should i use client side scripting 
>>>>>>>> like OpneLayers?
>>>>>>>> Any help woudbe greatly appreciated.
>>>>>>>>
>>>>>>>> Thanks in advance
>>>>>
>
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20110620/bdcf4c9f/attachment-0001.html


More information about the mapserver-users mailing list