MapRoad WFS Considerations¶
Something that needs to be taken into account when consuming MapRoad data via WFS is the sortBy value. Most WFS servers will have the sortBy value(s) set at the Layer level, meaning it’s at the very base of the WFS configuration for a specific map layer, and therefore is not normally something WFS users need to take into account. However, this is not the case for the MapRoad PMS WFS. This is down to the way the data grids work in the MapRoad desktop application. The first thing to know about data grids is that they are populated by the same WFS service consumed by users in FME/ArcGIS/MapInfo. And as users of the desktop application will know, the data girds in PMS can be sorted on the fly by any column. To achieve this, we pass the sortBy value from the client side as a parameter to the WFS request.
Unfortunately, in most GIS applications it is not possible to set a sortBy value at the GetFeature level. The consequence here is that if a value is set for MaxFeatures and no sortBy value is sent to the server, then you may receive malformed data back where some features are missing while others are duplicated.
Therefore users have two options:
Pass a sortBy value as a user parameter.
Remove MaxFeatures or Count values if they are set.
FME is the only application where option 1 is possible without using a development language like Python. This is why FME is the recommended application to use for consuming the MapRoad PMS WFS.
When appending directly to the connection string you are forced to set a single sortBy value for all layers. For example, if a user is requesting the Road Schedule they would need to the have connection URL set as follows:
https://galwaycity.maproadpms.ie/mapserver2?token=240a1b58-2222-48a5-9d44-8050a4a8f745&sortBy=SegmentId
and then select RoadSchedule from the list of available layers. However, this only allows you to set a single sortBy once for all layers which is not all that helpful given this value is different for almost every layer (see table below).
Note
The values of MaxFeatures, StartIndex, Count etc. can be interchangeable in some applications. For example, MaxFeatures was a WFS version 1.1.0 parameter that was changed to Count under WFS 2.0. However, in applications such as ArcMap and FME, if a user selects to use WFS 2.0, they can still set the MaxFeature parameter but if they look at the request log they will see it is being sent as Count.
sortBy¶
The standard way to access the MapRoad WFS in GIS applications is by constructing a URL as so:
https://galwaycity.maproadpms.ie/mapserver2?token=240a1b58-2222-48a5-9d44-8050a4a8f745
The sortBy parameter can be appended to this URL using an ampersand (&) so the URL
Layer Descriptions¶
MapRoad Name |
Legend (Default Style) |
WFS Name |
sortBy Value |
---|---|---|---|
Schedule (Basic) |
![]() |
RoadSchedule |
SegmentId |
TII Road Network |
![]() |
TIIRoadNetwork |
ObjectId |
ATI |
![]() |
CombinedATI |
FID |
Project Start End Points |
![]() |
ProjectsStartEndPoints |
ProjectStartEndPointsId |
Projects |
![]() |
Projects |
ProjectId |
Auxiliary Items |
![]() |
ProjectAuxiliaryItems |
ProjectAuxiliaryItemId |
Sections |
![]() |
ProjectWorksSections |
WorksSectionId |
TII Priority Schemes |
![]() |
TIIPavementProjects |
TIIPavementProjectsId |
Lights |
![]() |
PLLights |
EquipmentId |
Pillars |
![]() |
PLPillars |
EquipmentId |
Latest PSCI |
![]() |
PSCILatest |
PSCISummaryId |
Latest AADT Values |
![]() |
AADTSurveysReport |
AADTSurveySummaryId |
Latest Surface Survey Values |
![]() |
SurfaceSurvey |
SurfaceSurveySummaryId |
Latest Speed Limits |
![]() |
SpeedLimitSurvey |
SpeedLimitSurveySummaryId |
Latest TIN Values |
![]() |
TINSurveysReport |
TINSurveySummaryId |
Latest Width Values |
![]() |
WidthSurveyLatest |
WidthSurveySummaryId |
Edges (ATI Imports) |
![]() |
ATISurveyImports |
SurveyImportId |
Nodes (Network) |
![]() |
NetworkNodes |
NodeId |
Edges (Network) |
![]() |
NetworkEdges |
EdgeId |
Edges (Missing) |
![]() |
MissingEdges |
MissingEdgeId |
Edges (Proposed) |
![]() |
MissingEdgesProposed |
MissingEdgeId |
Edges (Public/Non-Public Splits) |
![]() |
PublicPrivateSplits |
PublicPrivateSplitEdgeId |
Ways (PRIME2) |
![]() |
Prime2LowerClassPolygons |
FID |
Nodes (Osi) |
![]() |
OsiNetworkNodes |
NodeId |
Edges (Osi) |
![]() |
OsiNetworkEdges |
EdgeId |
Bridges |
![]() |
Bridges |
StructureId |
PRIME2 Bridges |
![]() |
BridgesPrime2 |
FID |
Bridge Intersections |
![]() |
BridgeIntersections |
FID |
Speed Signs |
![]() |
SpeedSigns |
SignId |
Speed Ramps |
![]() |
SpeedRamps |
ID |
Speed Limit Surveys |
![]() |
SpeedLimitSurvey |
SpeedLimitSurveySummaryId |
Speed Limit Zones |
![]() |
SpeedLimitZones |
LimitId |
MapRoad (2016) |
![]() |
MapRoadSchedules |
RoadScheduleId |
Hazards |
![]() |
MRHazards |
Hazard_Ref |
Collisions |
![]() |
MRCollisions |
AccidentId |
Local Auhtorities |
![]() |
LocalAuthorities |
FID |
Municipal Districts |
![]() |
MunicipalDistricts |
MunicipalDistrictId |
Townlands |
![]() |
Townlands |
TownlandId |
AADT Surveys |
![]() |
AADTSurveyEdges |
AADTSurveyId |
AADT Survey Polygons |
![]() |
AADTSurveys |
AADTSurveyId |
Width Surveys |
![]() |
WidthSurveys |
WidthSurveyId |
Width Survey Edges |
![]() |
WidthSurveyEdges |
WidthSurveySummaryId |
TIN Surveys |
![]() |
TINSurveyEdges |
TinSurveyId |
TIN Survey Polygons |
![]() |
TINSurveys |
TINSurveyId |
Feature Polygons |
![]() |
FeaturePolygons |
FeatureId |
Feature Edges |
![]() |
FeatureEdgesUnion |
FeatureId |
Surface Survey Polygons |
![]() |
SurfaceSurveyZones |
SurfaceSurveyId |
Surface Survey Edges |
![]() |
SurfaceSurveyEdges |
SurfaceSurveyId |
Recorded PSCI Ratings |
![]() |
VisualCR |
PSCISummaryId |
Width |
![]() |
MechanicalWidth |
MechanicalSurveyRoadWidthId |
SCRIM |
![]() |
SCRIM |
FID |
RUT |
![]() |
RUT |
FID |
LPV |
![]() |
LPV |
FID |
MPD |
![]() |
TEXTURE |
FID |
IRI |
![]() |
IRI |
FID |
FWD Points |
![]() |
FWDPoints |
FID |
FWD |
![]() |
FWD |
FID |
GPR Points |
![]() |
GPRPoints |
FID |
GPR |
![]() |
GPR |
FID |
Hazards |
![]() |
FootwaysHazards |
FID |
Condition Ratings |
![]() |
FootwaysConditionRatings |
FootwaySurveyEdgeId |