以下地理位置相关的XPath/XQuery扩展函数可以在当前版本的XMLSpy中使用,并可用于(i) XSLT上下文中的XPath表达式;或(ii) XQuery文档中的XQuery表达式。
有关函数命名和语言适用性的注意事项
Altova扩展函数可以在XPath/XQuery表达式中使用。除了XPath、XQuery和XSLT标准函数库中可用的功能外,它们还提供了额外的功能。Altova扩展函数在Altova扩展函数命名空间中,http://www.altova.com/xslt-extensions,并在本部分中用altova:前缀表示,假定它与该命名空间绑定。请注意,这些函数可能在未来的产品版本中不被支持,或者个别函数的行为可能会发生变化。有关每个产品版本中对Altova扩展函数的支持的信息,请参见该版本的文档。 XPath函数(用于XSLT中的XPath表达式): | XP1 XP2 XP3.1 | XSLT函数(用于XSLT的XPath表达式): | XSLT1 XSLT2 XSLT3 | XQuery函数(用于XQuery的XQuery表达式): | XQ1 XQ3.1 |
|
altova:format-geolocation(Latitude as xs:decimal, Longitude as xs:decimal, GeolocationOutputStringFormat as xs:integer) as xs:string XP3.1 XQ3.1 将纬度和经度作为前两个参数,并将地理位置作为一个字符串输出。第三个参数GeolocationOutputStringFormat指定了地理位置输出字符串的格式;它使用1到4的整数值来标识输出字符串格式(参见下方的“地理位置输出字符串格式”部分)。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:image-exif-data函数和Exif元数据的特性可用于提供输入字符串。 •altova:format-geolocation(33.33, -22.22, 4) 返回xs:string "33.33 -22.22" •altova:format-geolocation(33.33, -22.22, 2) 返回xs:string "33.33N 22.22W" •altova:format-geolocation(-33.33, 22.22, 2) 返回xs:string "33.33S 22.22E" •altova:format-geolocation(33.33, -22.22, 1) 返回xs:string "33°19'48.00"S 22°13'12.00"E" |
所提供的纬度和经度将按以下的输出格式之一进行调整:所需的格式由其整数ID标识(1到4)。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 1 | 度数、分钟、十进制秒,带有方向后缀(N/S, E/W) D°M'S.SS"N/S D°M'S.SS"E/W 示例: 33°55'11.11"N 22°44'66.66"W |
2 | 十进制度数,带有方向后缀(N/S, E/W) D.DDN/S D.DDE/W 示例: 33.33N 22.22W |
3 | 度数、分钟、十进制秒,带有前缀符号(+/-);表示N/E)的加号是可选的 +/-D°M'S.SS" +/-D°M'S.SS" 示例: 33°55'11.11" -22°44'66.66" |
4 | 十进制角度,带有前缀符号(+/-);表示(N/E)的加号是可选的 +/-D.DD +/-D.DD 示例: 33.33 -22.22 |
|
Altova XPath/XQuery引擎从标准的Exif元数据标记中生成自定义特性Geolocation。Geolocation是四个Exif标记的串联:GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, 并带有单位(参见下表)。 GPSLatitude | GPSLatitudeRef | GPSLongitude | GPSLongitudeRef | Geolocation | 33 51 21.91 | S | 151 13 11.73 | E | 33°51'21.91"S 151°13'11.73"E |
|
|
altova:parse-geolocation(GeolocationInputString as xs:string) as xs:decimal+ XP3.1 XQ3.1 将解析提供的GeolocationInputString参数,并将该地理位置的纬度和经度(以此顺序)作为一个由两个xs:decimal项组成的序列返回。下面列出了在提供地理位置输入字符串时需注意的格式。 提示:image-exif-data函数和Exif元数据的@Geolocation特性可用于提供地理位置输入字符串(参见下方示例)。 •altova:parse-geolocation("33.33 -22.22") 返回一个序列,包含两个xs:decimal (33.33, 22.22) •altova:parse-geolocation("48°51'29.6""N 24°17'40.2""") 返回一个序列,包含两个xs:decimal (48.8582222222222, 24.2945) •altova:parse-geolocation('48°51''29.6"N 24°17''40.2"') 返回一个序列,包含两个xs:decimal (48.8582222222222, 24.2945) •altova:parse-geolocation( image-exif-data(//MyImages/Image20141130.01)/@Geolocation ) 返回一个序列,包含两个xs:decimal |
地理位置输入字符串必须包含纬度和经度(以此顺序),中间用空白分隔。可以使用以下格式之一。也可以进行组合。因此,可以以一种方式来设置纬度,另一种方式设置经度。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:如果用单引号或双引号来分隔输入字符串参数,这将与分别用于表示分钟值和秒值的单引号或双引号产生不匹配。在这种情况下,用于表示分钟值和秒值的引号必须通过将它们加倍来转义。在本部分的示例中,用于分隔输入字符串的引号被突出显示为黄色("),而已转义的单位标识符被突出显示为蓝色("")。 •度数、分钟、十进制秒,带有方向后缀(N/S, E/W) D°M'S.SS"N/S D°M'S.SS"W/E 示例:33°55'11.11"N 22°44'55.25"W •度数、分钟、十进制秒,带有前缀符号(+/-);表示N/E)的加号是可选的 +/-D°M'S.SS" +/-D°M'S.SS" 示例:33°55'11.11" -22°44'55.25" •度数,十进制分钟,带有方向后缀(N/S, E/W) D°M.MM'N/S D°M.MM'W/E 示例:33°55.55'N 22°44.44'W •十进制角度,带有前缀符号(+/-);表示(N/E)的加号是可选的 +/-D.DD +/-D.DD 示例:+33°55.55' -22°44.44' •十进制角度,带有方向后缀(N/S, E/W) D.DDN/S D.DDW/E 示例:33.33N 22.22W •十进制角度,带有前缀符号(+/-);表示(N/S E/W)的加号是可选的 +/-D.DD +/-D.DD 示例:33.33 -22.22 格式组合的示例:33.33N -22°44'55.25" 33.33 22°44'55.25"W 33.33 22.45 |
Altova XPath/XQuery引擎从标准的Exif元数据标记中生成自定义特性Geolocation。Geolocation是四个Exif标记的串联:GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, 并带有单位(参见下表)。 GPSLatitude | GPSLatitudeRef | GPSLongitude | GPSLongitudeRef | Geolocation | 33 51 21.91 | S | 151 13 11.73 | E | 33°51'21.91"S 151°13'11.73"E |
|
|
|
altova:geolocation-distance-km(GeolocationInputString-1 as xs:string, GeolocationInputString-2 as xs:string) as xs:decimal XP3.1 XQ3.1 计算两个地理位置之间的距离(以千米为单位)。下面列出了在提供地理位置输入字符串时需注意的格式。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:image-exif-data函数和Exif元数据的@Geolocation特性可用于提供地理位置输入字符串。 •altova:geolocation-distance-km("33.33 -22.22", "48°51'29.6""N 24°17'40.2""") 返回xs:decimal 4183.08132372392 |
地理位置输入字符串必须包含纬度和经度(以此顺序),中间用空白分隔。可以使用以下格式之一。也可以进行组合。因此,可以以一种方式来设置纬度,另一种方式设置经度。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:如果用单引号或双引号来分隔输入字符串参数,这将与分别用于表示分钟值和秒值的单引号或双引号产生不匹配。在这种情况下,用于表示分钟值和秒值的引号必须通过将它们加倍来转义。在本部分的示例中,用于分隔输入字符串的引号被突出显示为黄色("),而已转义的单位标识符被突出显示为蓝色("")。 •度数、分钟、十进制秒,带有方向后缀(N/S, E/W) D°M'S.SS"N/S D°M'S.SS"W/E 示例:33°55'11.11"N 22°44'55.25"W •度数、分钟、十进制秒,带有前缀符号(+/-);表示N/E)的加号是可选的 +/-D°M'S.SS" +/-D°M'S.SS" 示例:33°55'11.11" -22°44'55.25" •度数,十进制分钟,带有方向后缀(N/S, E/W) D°M.MM'N/S D°M.MM'W/E 示例:33°55.55'N 22°44.44'W •十进制角度,带有前缀符号(+/-);表示(N/E)的加号是可选的 +/-D.DD +/-D.DD 示例:+33°55.55' -22°44.44' •十进制角度,带有方向后缀(N/S, E/W) D.DDN/S D.DDW/E 示例:33.33N 22.22W •十进制角度,带有前缀符号(+/-);表示(N/S E/W)的加号是可选的 +/-D.DD +/-D.DD 示例:33.33 -22.22 格式组合的示例:33.33N -22°44'55.25" 33.33 22°44'55.25"W 33.33 22.45 |
Altova XPath/XQuery引擎从标准的Exif元数据标记中生成自定义特性Geolocation。Geolocation是四个Exif标记的串联:GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, 并带有单位(参见下表)。 GPSLatitude | GPSLatitudeRef | GPSLongitude | GPSLongitudeRef | Geolocation | 33 51 21.91 | S | 151 13 11.73 | E | 33°51'21.91"S 151°13'11.73"E |
|
|
altova:geolocation-distance-mi(GeolocationInputString-1 as xs:string, GeolocationInputString-2 as xs:string) as xs:decimal XP3.1 XQ3.1 计算两个地理位置之间的距离(以英里为单位)。下面列出了地理位置输入字符串具有的格式。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:image-exif-data函数和Exif元数据的@Geolocation特性可用于提供地理位置输入字符串。 •altova:geolocation-distance-mi("33.33 -22.22", "48°51'29.6""N 24°17'40.2""") 返回xs:decimal 2599.40652340653 |
地理位置输入字符串必须包含纬度和经度(以此顺序),中间用空白分隔。可以使用以下格式之一。也可以进行组合。因此,可以以一种方式来设置纬度,另一种方式设置经度。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:如果用单引号或双引号来分隔输入字符串参数,这将与分别用于表示分钟值和秒值的单引号或双引号产生不匹配。在这种情况下,用于表示分钟值和秒值的引号必须通过将它们加倍来转义。在本部分的示例中,用于分隔输入字符串的引号被突出显示为黄色("),而已转义的单位标识符被突出显示为蓝色("")。 •度数、分钟、十进制秒,带有方向后缀(N/S, E/W) D°M'S.SS"N/S D°M'S.SS"W/E 示例:33°55'11.11"N 22°44'55.25"W •度数、分钟、十进制秒,带有前缀符号(+/-);表示N/E)的加号是可选的 +/-D°M'S.SS" +/-D°M'S.SS" 示例:33°55'11.11" -22°44'55.25" •度数,十进制分钟,带有方向后缀(N/S, E/W) D°M.MM'N/S D°M.MM'W/E 示例:33°55.55'N 22°44.44'W •十进制角度,带有前缀符号(+/-);表示(N/E)的加号是可选的 +/-D.DD +/-D.DD 示例:+33°55.55' -22°44.44' •十进制角度,带有方向后缀(N/S, E/W) D.DDN/S D.DDW/E 示例:33.33N 22.22W •十进制角度,带有前缀符号(+/-);表示(N/S E/W)的加号是可选的 +/-D.DD +/-D.DD 示例:33.33 -22.22 格式组合的示例:33.33N -22°44'55.25" 33.33 22°44'55.25"W 33.33 22.45 |
Altova XPath/XQuery引擎从标准的Exif元数据标记中生成自定义特性Geolocation。Geolocation是四个Exif标记的串联:GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, 并带有单位(参见下表)。 GPSLatitude | GPSLatitudeRef | GPSLongitude | GPSLongitudeRef | Geolocation | 33 51 21.91 | S | 151 13 11.73 | E | 33°51'21.91"S 151°13'11.73"E |
|
|
altova:geolocations-bounding-rectangle(Geolocations as xs:sequence, GeolocationOutputStringFormat as xs:integer) as xs:string XP3.1 XQ3.1 将一个字符串序列作为其第一个参数;序列中的每个字符串都是一个地理位置。该函数将返回一个由两个字符串组成的序列,这两个字符串分别是一个边界矩形的左上角和右下角的地理坐标,该矩形的大小经过优化以包含第一个参数中提交的所有地理位置。下面列出了在提供地理位置输入字符串时需注意的格式(参见“地理位置输入字符串格式”部分)。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 该函数的第二个参数指定了输出序列中两个地理位置字符串的格式。该参数取一个1到4范围内的整数值,每个值都标识一个不同的地理位置字符串的格式(参见下方的“地理位置输出字符串格式”)。 提示:image-exif-data函数和Exif元数据的特性可用于提供输入字符串。 •altova:geolocations-bounding-rectangle(("48.2143531 16.3707266", "51.50939 -0.11832"), 1) 返回序列("51°30'33.804"N 0°7'5.952"W", "48°12'51.67116"N 16°22'14.61576"E") •altova:geolocations-bounding-rectangle(("48.2143531 16.3707266", "51.50939 -0.11832", "42.5584577 -70.8893334"), 4) 返回序列 ("51.50939 -70.8893334", "42.5584577 16.3707266") |
地理位置输入字符串必须包含纬度和经度(以此顺序),中间用空白分隔。可以使用以下格式之一。也可以进行组合。因此,可以以一种方式来设置纬度,另一种方式设置经度。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:如果用单引号或双引号来分隔输入字符串参数,这将与分别用于表示分钟值和秒值的单引号或双引号产生不匹配。在这种情况下,用于表示分钟值和秒值的引号必须通过将它们加倍来转义。在本部分的示例中,用于分隔输入字符串的引号被突出显示为黄色("),而已转义的单位标识符被突出显示为蓝色("")。 •度数、分钟、十进制秒,带有方向后缀(N/S, E/W) D°M'S.SS"N/S D°M'S.SS"W/E 示例:33°55'11.11"N 22°44'55.25"W •度数、分钟、十进制秒,带有前缀符号(+/-);表示N/E)的加号是可选的 +/-D°M'S.SS" +/-D°M'S.SS" 示例:33°55'11.11" -22°44'55.25" •度数,十进制分钟,带有方向后缀(N/S, E/W) D°M.MM'N/S D°M.MM'W/E 示例:33°55.55'N 22°44.44'W •十进制角度,带有前缀符号(+/-);表示(N/E)的加号是可选的 +/-D.DD +/-D.DD 示例:+33°55.55' -22°44.44' •十进制角度,带有方向后缀(N/S, E/W) D.DDN/S D.DDW/E 示例:33.33N 22.22W •十进制角度,带有前缀符号(+/-);表示(N/S E/W)的加号是可选的 +/-D.DD +/-D.DD 示例:33.33 -22.22 格式组合的示例:33.33N -22°44'55.25" 33.33 22°44'55.25"W 33.33 22.45 |
所提供的纬度和经度将按以下的输出格式之一进行调整:所需的格式由其整数ID标识(1到4)。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 1 | 度数、分钟、十进制秒,带有方向后缀(N/S, E/W) D°M'S.SS"N/S D°M'S.SS"E/W 示例: 33°55'11.11"N 22°44'66.66"W |
2 | 十进制度数,带有方向后缀(N/S, E/W) D.DDN/S D.DDE/W 示例: 33.33N 22.22W |
3 | 度数、分钟、十进制秒,带有前缀符号(+/-);表示N/E)的加号是可选的 +/-D°M'S.SS" +/-D°M'S.SS" 示例: 33°55'11.11" -22°44'66.66" |
4 | 十进制角度,带有前缀符号(+/-);表示(N/E)的加号是可选的 +/-D.DD +/-D.DD 示例: 33.33 -22.22 |
|
Altova XPath/XQuery引擎从标准的Exif元数据标记中生成自定义特性Geolocation。Geolocation是四个Exif标记的串联:GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, 并带有单位(参见下表)。 GPSLatitude | GPSLatitudeRef | GPSLongitude | GPSLongitudeRef | Geolocation | 33 51 21.91 | S | 151 13 11.73 | E | 33°51'21.91"S 151°13'11.73"E |
|
|
altova:geolocation-within-polygon(Geolocation as xs:string, ((PolygonPoint as xs:string)+)) as xs:boolean XP3.1 XQ3.1 确定Geolocation(第一个参数)是否在由PolygonPoint参数描述的多边形区域中。如果PolygonPoint参数没有形成一个封闭的图形(当第一个点和最后一个点相同时就会形成),则第一个点将被隐式地添加为最后一个点以闭合图形。所有的参数(Geolocation和PolygonPoint+)都是由地理位置输入字符串(下面列出了其格式)提供的。如果Geolocation参数在多边形区域内,则该函数将返回true();否则将返回false()。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:image-exif-data函数和Exif元数据的@Geolocation特性可用于提供地理位置输入字符串。 •altova:geolocation-within-polygon("33 -22", ("58 -32", "-78 -55", "48 24", "58 -32")) 返回true() •altova:geolocation-within-polygon("33 -22", ("58 -32", "-78 -55", "48 24")) 返回true() •altova:geolocation-within-polygon("33 -22", ("58 -32", "-78 -55", "48°51'29.6""N 24°17'40.2""")) 返回true() |
地理位置输入字符串必须包含纬度和经度(以此顺序),中间用空白分隔。可以使用以下格式之一。也可以进行组合。因此,可以以一种方式来设置纬度,另一种方式设置经度。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:如果用单引号或双引号来分隔输入字符串参数,这将与分别用于表示分钟值和秒值的单引号或双引号产生不匹配。在这种情况下,用于表示分钟值和秒值的引号必须通过将它们加倍来转义。在本部分的示例中,用于分隔输入字符串的引号被突出显示为黄色("),而已转义的单位标识符被突出显示为蓝色("")。 •度数、分钟、十进制秒,带有方向后缀(N/S, E/W) D°M'S.SS"N/S D°M'S.SS"W/E 示例:33°55'11.11"N 22°44'55.25"W •度数、分钟、十进制秒,带有前缀符号(+/-);表示N/E)的加号是可选的 +/-D°M'S.SS" +/-D°M'S.SS" 示例:33°55'11.11" -22°44'55.25" •度数,十进制分钟,带有方向后缀(N/S, E/W) D°M.MM'N/S D°M.MM'W/E 示例:33°55.55'N 22°44.44'W •十进制角度,带有前缀符号(+/-);表示(N/E)的加号是可选的 +/-D.DD +/-D.DD 示例:+33°55.55' -22°44.44' •十进制角度,带有方向后缀(N/S, E/W) D.DDN/S D.DDW/E 示例:33.33N 22.22W •十进制角度,带有前缀符号(+/-);表示(N/S E/W)的加号是可选的 +/-D.DD +/-D.DD 示例:33.33 -22.22 格式组合的示例:33.33N -22°44'55.25" 33.33 22°44'55.25"W 33.33 22.45 |
Altova XPath/XQuery引擎从标准的Exif元数据标记中生成自定义特性Geolocation。Geolocation是四个Exif标记的串联:GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, 并带有单位(参见下表)。 GPSLatitude | GPSLatitudeRef | GPSLongitude | GPSLongitudeRef | Geolocation | 33 51 21.91 | S | 151 13 11.73 | E | 33°51'21.91"S 151°13'11.73"E |
|
|
altova:geolocation-within-rectangle(Geolocation as xs:string, RectCorner-1 as xs:string, RectCorner-2 as xs:string) as xs:boolean XP3.1 XQ3.1 确定Geolocation(第一个参数)是否在由第二个参数RectCorner-1和第三个参数RectCorner-2定义的长方形中,这两个参数指定了长方形的对角。所有的参数(Geolocation、RectCorner-1和RectCorner-2)都是由地理位置输入字符串(下方列出了其格式)提供的。如果Geolocation参数在长方形内,则该函数将返回true();否则将返回false()。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:image-exif-data函数和Exif元数据的@Geolocation特性可用于提供地理位置输入字符串。 •altova:geolocation-within-rectangle("33 -22", "58 -32", "-48 24") 返回true() •altova:geolocation-within-rectangle("33 -22", "58 -32", "48 24") 返回false() •altova:geolocation-within-rectangle("33 -22", "58 -32", "48°51'29.6""S 24°17'40.2""") 返回true() |
地理位置输入字符串必须包含纬度和经度(以此顺序),中间用空白分隔。可以使用以下格式之一。也可以进行组合。因此,可以以一种方式来设置纬度,另一种方式设置经度。纬度值在+90到-90(N到 S)范围内。经度值在+180到-180(E到 W)范围内。 提示:如果用单引号或双引号来分隔输入字符串参数,这将与分别用于表示分钟值和秒值的单引号或双引号产生不匹配。在这种情况下,用于表示分钟值和秒值的引号必须通过将它们加倍来转义。在本部分的示例中,用于分隔输入字符串的引号被突出显示为黄色("),而已转义的单位标识符被突出显示为蓝色("")。 •度数、分钟、十进制秒,带有方向后缀(N/S, E/W) D°M'S.SS"N/S D°M'S.SS"W/E 示例:33°55'11.11"N 22°44'55.25"W •度数、分钟、十进制秒,带有前缀符号(+/-);表示N/E)的加号是可选的 +/-D°M'S.SS" +/-D°M'S.SS" 示例:33°55'11.11" -22°44'55.25" •度数,十进制分钟,带有方向后缀(N/S, E/W) D°M.MM'N/S D°M.MM'W/E 示例:33°55.55'N 22°44.44'W •十进制角度,带有前缀符号(+/-);表示(N/E)的加号是可选的 +/-D.DD +/-D.DD 示例:+33°55.55' -22°44.44' •十进制角度,带有方向后缀(N/S, E/W) D.DDN/S D.DDW/E 示例:33.33N 22.22W •十进制角度,带有前缀符号(+/-);表示(N/S E/W)的加号是可选的 +/-D.DD +/-D.DD 示例:33.33 -22.22 格式组合的示例:33.33N -22°44'55.25" 33.33 22°44'55.25"W 33.33 22.45 |
Altova XPath/XQuery引擎从标准的Exif元数据标记中生成自定义特性Geolocation。Geolocation是四个Exif标记的串联:GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, 并带有单位(参见下表)。 GPSLatitude | GPSLatitudeRef | GPSLongitude | GPSLongitudeRef | Geolocation | 33 51 21.91 | S | 151 13 11.73 | E | 33°51'21.91"S 151°13'11.73"E |
|
|
[ 回到顶部 ]