Copyright © 2006 Open Geospatial Consortium – All rights reserved
71
16 GeoVideo Service GVS
A GeoVideo Service provides an integrated client access to live or archived video data and associated technical and geospatial metadata. This section documents the process of
accessing a geovideo services from an Integrated Client.
16.1 Connecting to a GeoVideo Service
The GeoVideo Service as currently implemented does not lend itself well to the publishfindbind archetype, and so only the clientserver interaction is described below.
16.1.1 Discovery of Object Schemas
A getGVSObjectDescr request is issued to retrieve an array of CObjectDescr objects. These objects provide access to metadata regarding the role of each object, as well as its
attribution.
16.1.2 Discovery of Feed Data
Once the schema is known, this information can be used to discover the feed the user is interested in either tabularly, or graphically.
A Tabular Discovery
72
Copyright © 2006 Open Geospatial Consortium – All rights reserved
Integrated Client
GVS getGVSObjectDescr
ArrayOfCObjectDescr
getCamerasFromQuery
ArrayOfCCamera getFeedsFromQuery
ArrayOfCFeeds Request URL
Video Stream Video
Server
Figure 21 Tabular Discovery
To retrieve a list of geovideo objects, two method calls are available, getFeedsFromQuery and getCamerasFromQuery, which return arrays of feed and camera
objects respectively. The syntax for making the requests is the same. A CQueryObject is created with the objectName reflecting the object of interest feed or camera. A
criteria string, conforming to the syntax of an SQL where clause is used to narrow the search, and an ArrayOfCSpaceTimeBounds object describes the spatial-temporal extents
of interest. The CSpaceTimeBounds object contains flags indicating whether the search is to match videos that start before or end after the given times, span the times or fall
entirely between them. It also defines the time endpoints, and a bounding box to restrict the search.
In the case of the getFeedsFromQuery request, the result is an ArrayOfCFeed object that contain data about the feed, including a URL that can be used to request the geovideo
stream.
Copyright © 2006 Open Geospatial Consortium – All rights reserved
73 The result of a getCamerasFromQuery request is an ArrayOfCCamera object. The
camera id field can be used in a getFeedsFromQuery request. The purpose of these methods is to distinguish the properties of a feed from those of a camera.
This method of discovery is illustrated in the following diagram. B Graphical Discovery
Graphical discovery allows the client to display a live set of points over a map, and select one based on its location.
Integrated Client
GVS
getGVSObjectDescr
ArrayOfCObjectDescr getFeedsFromQuery
Geotemoral Stream
Request URL
Video Stream Video
Server
getFeedsFromIds
ArrayOfCFeeds
Figure 22 Graphical Discovery
There is no method defined to allow a stream to be requested to include only those feeds within a specified area. A getFeedsFromQuery request is used, with the added condition
of source like boundingbox added to the criteria clause. This will provide an ArrayOfCFeed object as before, but the feeds included will be those that contain id,
temporal and location data for multiple geovideo feeds.
74
Copyright © 2006 Open Geospatial Consortium – All rights reserved
C Connecting to a Video Stream After a feed has been selected as described above, the feed data can be retrieved using a
getFeedsFromIds. Each CFeed object contains a URL field that is used to connect to the geovideo stream. The geotemporal data is embedded in the closed-caption field of the
video stream and must be extracted and parsed.
16.2 Issues and Tradeoffs with GeoVideo Service Communication