Using the MapPointTravel Data Sources
Using the MapPointTravel Data Sources
You can show real-time traffic incidents (accidents, slow moving traffic, construction, and other traffic-related information) in your MapPoint Web Service maps for several major metropolitan areas in the United States. MapPoint Web Service provides different data sources for the regions that have traffic information and for the specific traffic incidents.
MapPoint Web service includes two data sources that provide support for including traffic incident information in your maps: MapPointTravel.TrafficAreas and MapPointTravel.TrafficIncidents.
Using MapPointTravel.TrafficAreas
Traffic areas are predefined polygons of metropolitan areas in the United States for which traffic incident information is available. You use the MapPointTravel.TrafficAreas data source to get these polygons. Like other polygon data sources, each polygon in the MapPointTravel.TrafficAreas data source includes properties defining the name, country/region, and the four corners of the bounding rectangle:
Property |
Description |
---|---|
Country/Region |
The country or region in which the polygon is contained (for example, "United States"). |
Name |
The name of the metropolitan area (for example, "Albany, NY"). |
NELat |
The latitude of the northeast corner of the bounding rectangle. |
NELong |
The longitude of the northeast corner of the bounding rectangle. |
SWLat |
The latitude of the southwest corner of the bounding rectangle. |
SWLong |
The longitude of the southwest corner of the bounding rectangle. |
The following code shows how to populate a dropdown list with all of the traffic areas in the United States. It creates a bounding rectangle for the United States, and then calls FindPolygon to return each of the traffic areas.
LatLong llNE = new LatLong();
llNE.Latitude = 50;
llNE.Longitude=-66;
LatLong llSW = new LatLong();
llSW.Latitude=24;
llSW.Longitude=-124;
LatLongRectangleSpatialFilter sf = new LatLongRectangleSpatialFilter();
sf.BoundingRectangle = new LatLongRectangle();
sf.BoundingRectangle.Northeast = llNE;
sf.BoundingRectangle.Southwest = llSW;
FindPolygonSpecification fps = new FindPolygonSpecification();
fps.DataSourceName = "MapPointTravel.TrafficAreas";
fps.Filter = new FindFilter();
fps.Filter.EntityTypeName="TrafficArea";
fps.SpatialFilter = sf;
fps.Options = new FindOptions();
fps.Options.Range = new FindRange();
fps.Options.Range.Count = 250;
FindResults foundResults = finder.FindPolygon(fps);
foreach(FindResult fr in foundResults.Results)
{
ListItem li = new ListItem(
fr.FoundLocation.Entity.Properties[0].Value.ToString(),
fr.FoundLocation.Entity.ID.ToString());
listAreas.Items.Add(li);
}
Using MapPointTravel.TrafficIncidents
The MapPointTravel.TrafficIncidents data source contains all of the real-time traffic incidents. It supports the CanFindNearby capability, which allows you to find traffic incidents based on the traffic area (FindByProperty), near a specific route (FindNearRoute), or near a specific location (FindNearby).
Traffic incidents are points and include the following properties:
Property |
Data Type |
Description |
---|---|---|
Created |
DateTime |
The date and time when the traffic incident data was created. The MapPoint Web Service always returns this DateTime data in Pacific Time, regardless of the location of the traffic incident. You should verify whether your SOAP stack automatically converts this data to UTC time. |
Divert |
String |
Specifies whether this incident is causing a traffic diversion. Values are either True or False. |
ExpectedDelay |
String |
The estimated traffic slowdown caused by the incident. |
ExpectedDuration |
String |
The estimated amount of time that the incident will persist. |
FullDescription |
String |
A full description of the traffic incident. |
LastUpdated |
DateTime |
The date and time when the traffic incident data was last updated. The MapPoint Web Service always returns this DateTime data in Pacific Time, regardless of the location of the traffic incident. You should verify whether your SOAP stack automatically converts this data to UTC time. |
Name |
String |
A name assigned to the specific incident. Typically a description (street name, intersection, etc.) of where the incident is occurring. |
Severity |
String |
The severity of the incident. Values for this property include Severe, High, Medium, Low, and Unknown. |
StandardMessage |
String |
A brief description of the incident type. |
TrafficAreaID |
int |
The EntityID of the TrafficArea polygon which contains this incident. |
The following code shows how to return all of the traffic incidents near a specific route:
FindFilter ff = new FindFilter();
ff.EntityTypeName = "TrafficIncident";
FindNearRouteSpecification spec = new FindNearRouteSpecification();
spec.DataSourceName="MapPointTravel.TrafficIncidents";
spec.Distance=1; //show all incidents within 1 mile of the route
spec.Route = myRoute; //myRoute has been previously defined
spec.Filter = ff;
FindResults foundResults = new FindResults();
foundResults = finder.FindNearRoute(spec);