Page 1 of 1

hazardousGoodsType

Posted: Fri Mar 01, 2019 2:13 pm
by mrczeg
I have a problem. I use Vehicle => Load => hazardousGoodsType. When I use HAZARDOUS options everything works ok, but when I use HAZARDOUS_TO_WATERS, COMBUSTIBLES or COMBUSTIBLES_HAZARDOUS_TO_WATERS the route goes through areas where "are not allowed for vehicles carrying hazardous goods". Why does it work that way?

Re: hazardousGoodsType

Posted: Fri Mar 01, 2019 2:33 pm
by Joost
Most of the times when a customer reports to me that a form of hazardous routing is not working properly is because the tunnelRestrictionCode (found on the Vehicle => Load element) is not set properly. Please make sure that in both case you are setting this to an appropriate value.

if the tunnelRestrictionCode is set properly, can you provide an example? IIRC HAZARDOUS_TO_WATERS, COMBUSTIBLES or COMBUSTIBLES_HAZARDOUS_TO_WATERS should imply HAZARDOUS.

Re: hazardousGoodsType

Posted: Tue Mar 05, 2019 8:47 am
by mrczeg
I do not use tunnelRestrictionCode. Should I use that ?

Re: hazardousGoodsType

Posted: Tue Mar 05, 2019 8:54 am
by Joost
Yes. Tunnels do not have a hazardous good blocking, but a tunnel restriction blocking. From a technical pov these are 2 completely different blocking with no relation between them. There is of course a correlation in reality, but for the algoritme there is none. This is why it is important if you do hazardous good routing to not only set the hazardousGoodType but also the tunnel restriction code.

Re: hazardousGoodsType

Posted: Tue Mar 05, 2019 9:39 am
by mrczeg
But in both case I do not use tunnel Restriction Code. I am asking why I have different results for HAZARDOUS and for example HAZARDOUS_TO_WATERS. Why for HAZARDOUS the route do not goes through areas where "are not allowed for vehicles carrying hazardous goods" and for HAZARDOUS_TO_WATERS goes.

Re: hazardousGoodsType

Posted: Tue Mar 05, 2019 9:41 am
by Joost
Can you provide a sample request that demonstrates the issue?

Re: hazardousGoodsType

Posted: Wed Mar 06, 2019 7:38 am
by mrczeg
I attached a sample request and a picture for both case.

Re: hazardousGoodsType

Posted: Wed Mar 06, 2019 12:37 pm
by Bernd Welter
Hello Marcin,

thanks for the files (sent 1:1). I analysed them. Looks like our topic is the combustibles call (Snippet line 11 and 43):

Code: Select all

<?xml version='1.0' encoding='UTF-8'?>
<Profile>
	<Routing majorVersion='2' minorVersion='0'>
		<Vehicle>
			<Physical>
				<Weight totalPermittedWeight='8000' emptyWeight='8000' loadWeight='0'/>
				<Trailer emptyWeight='0'/>
				<Axle axleLoad='2000'/>
				<Dimension height='250' length='1000' width='200'/>
			</Physical>
			<Load loadType='GOODS' hazardousGoodsType='COMBUSTIBLES'/>
			<Legal>
				<LegalCondition isAuthorized='false' isDelivery='false'></LegalCondition>
			</Legal>
			<Speed>
				<SpeedRangeByNetworkClass maximumSpeed='100' minimumSpeed='55' />
				<SpeedRangeByNetworkClass maximumSpeed='60' minimumSpeed='30'>
					<SpeedRangeByNetworkClass maximumSpeed='60' minimumSpeed='23' />
					<SpeedRangeByNetworkClass maximumSpeed='60' minimumSpeed='20' />
					<SpeedRangeByNetworkClass maximumSpeed='60' minimumSpeed='18' />
					<SpeedRangeByNetworkClass maximumSpeed='60' minimumSpeed='15' />
					<SpeedRangeByNetworkClass maximumSpeed='16' minimumSpeed='9' />
					<SpeedRangeByNetworkClass maximumSpeed='6' minimumSpeed='4' />
				</SpeedRangeByNetworkClass>
			</Speed>
		</Vehicle>
		<Course>
			<BasicDataRules>
				<Network>
					<MalusByNetworkClass malus='0' />
					<MalusByNetworkClass malus='0' />
					<MalusByNetworkClass malus='0' />
					<MalusByNetworkClass malus='0' />
					<MalusByNetworkClass malus='0' />
					<MalusByNetworkClass malus='0' />
					<MalusByNetworkClass malus='0' />
					<MalusByNetworkClass malus='0' />
				</Network>
				<CombinedTransport ferryMalus='0' />
			</BasicDataRules>
			<AdditionalDataRules enabled='true'>
				<VehicleSpecific enabled='true'>
					<Malus residential='2500' combustibles='2501'/>
				</VehicleSpecific>
				<SegmentSpecific useFerryLength='true'/>
			</AdditionalDataRules>
		</Course>
	</Routing>
	<FeatureLayer majorVersion='1' minorVersion='0'>
		<Themes>
			<Theme id='PTV_TruckAttributes' enabled='true'/>
		</Themes>
	</FeatureLayer>
</Profile>
In line 11 you define the load as "COMBUSTIBLE". Though I'd expect that "COMBUSTIBLE" is a special case of "HAZARDOUS" and therefore should be included it isn't treated like that.

From my perspective the ENUM based approach is an issue:
  • It does not offer each possible combination
  • Even the available ones aren't handeled properly
I'll check this with DEV (was already in touch with one of the experts) and get back with a description.

C u,
Bernd
SnippetCOMBSTIBLE.XML
Snippet COMBUSTIBLE
(1.95 KiB) Downloaded 209 times

Re: hazardousGoodsType

Posted: Wed Mar 06, 2019 2:59 pm
by Bernd Welter
Obviously this is a topic we will improve within xServer2.
A question of design ;-)

Status xRoute 1:
a segment supports three boolean flags (handeled via FeatureLayer PTV_TruckATtributes):
  • segement is forbidden for hazardous goods
  • segment is forbidden for hazardous to water
  • segment is forbidden for explosives
On the vehicle we support only one attribute which is an ENUM with discrete values:
  • A vehicle has no hazardous goods.
  • A vehicle has hazardous goods
  • A vehicle has goods hazardous to waters.
  • A vehicle has combustible goods.
  • A vehicle has combustible goods hazardous to waters.
I'd say a segment with "forbidden for HAZ==true" and "forbidden for WATER==false" wouldn't make sense I think.