zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #23508
[Merge] lp:~zorba-coders/zorba/update3.0_geoproj-module into lp:zorba/geoproj-module
Juan Zacarias has proposed merging lp:~zorba-coders/zorba/update3.0_geoproj-module into lp:zorba/geoproj-module.
Commit message:
Changes for Update 3.0
Requested reviews:
Chris Hillery (ceejatec)
Related bugs:
Bug #1188046 in Zorba: "Update non-core module "geoproj""
https://bugs.launchpad.net/zorba/+bug/1188046
For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/update3.0_geoproj-module/+merge/170214
Changes for Update 3.0
--
https://code.launchpad.net/~zorba-coders/zorba/update3.0_geoproj-module/+merge/170214
Your team Zorba Coders is subscribed to branch lp:zorba/geoproj-module.
=== modified file 'src/CMakeLists.txt'
--- src/CMakeLists.txt 2012-08-07 19:49:24 +0000
+++ src/CMakeLists.txt 2013-06-18 22:44:26 +0000
@@ -11,10 +11,6 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
-# all external module libraries are generated in the directory
-# of the corresponding .xq file
-MESSAGE(STATUS "Add com")
-ADD_SUBDIRECTORY(com)
-
-MESSAGE(STATUS "End modules")
+DECLARE_ZORBA_SCHEMA (FILE geoproj-param.xsd
+ URI "http://zorba.io/modules/geoproj-param")
+DECLARE_ZORBA_MODULE (URI "http://zorba.io/modules/geoproj" VERSION 1.0 FILE "geoproj.xq")
=== removed file 'src/com/CMakeLists.txt'
--- src/com/CMakeLists.txt 2011-10-06 08:18:23 +0000
+++ src/com/CMakeLists.txt 1970-01-01 00:00:00 +0000
@@ -1,14 +0,0 @@
-# Copyright 2006-2008 The FLWOR Foundation.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-ADD_SUBDIRECTORY(zorba-xquery)
=== removed file 'src/com/zorba-xquery/CMakeLists.txt'
--- src/com/zorba-xquery/CMakeLists.txt 2011-10-06 08:18:23 +0000
+++ src/com/zorba-xquery/CMakeLists.txt 1970-01-01 00:00:00 +0000
@@ -1,14 +0,0 @@
-# Copyright 2006-2008 The FLWOR Foundation.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-ADD_SUBDIRECTORY(www)
=== removed file 'src/com/zorba-xquery/www/CMakeLists.txt'
--- src/com/zorba-xquery/www/CMakeLists.txt 2011-10-06 08:18:23 +0000
+++ src/com/zorba-xquery/www/CMakeLists.txt 1970-01-01 00:00:00 +0000
@@ -1,14 +0,0 @@
-# Copyright 2006-2008 The FLWOR Foundation.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-ADD_SUBDIRECTORY(modules)
=== removed file 'src/com/zorba-xquery/www/modules/CMakeLists.txt'
--- src/com/zorba-xquery/www/modules/CMakeLists.txt 2011-07-27 00:24:29 +0000
+++ src/com/zorba-xquery/www/modules/CMakeLists.txt 1970-01-01 00:00:00 +0000
@@ -1,16 +0,0 @@
-# Copyright 2006-2008 The FLWOR Foundation.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-DECLARE_ZORBA_SCHEMA (FILE geoproj-param.xsd
- URI "http://www.zorba-xquery.com/modules/geoproj-param")
-DECLARE_ZORBA_MODULE (URI "http://www.zorba-xquery.com/modules/geoproj" VERSION 1.0 FILE "geoproj.xq")
=== removed file 'src/com/zorba-xquery/www/modules/geoproj-param.xsd'
--- src/com/zorba-xquery/www/modules/geoproj-param.xsd 2011-08-05 02:22:02 +0000
+++ src/com/zorba-xquery/www/modules/geoproj-param.xsd 1970-01-01 00:00:00 +0000
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<schema
- targetNamespace="http://www.zorba-xquery.com/modules/geoproj-param"
- xmlns:geoproj="http://www.zorba-xquery.com/modules/geoproj-param"
- xmlns="http://www.w3.org/2001/XMLSchema"
- version="1.0.0">
-<!--
-:: Copyright 2006-2008 The FLWOR Foundation.
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-:: http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
--->
-
-
- <element name="lat" type="double"/>
- <element name="long" type="double"/>
- <element name="x" type="double"/>
- <element name="y" type="double"/>
-
- <complexType name="latlongType">
- <sequence>
- <element ref="geoproj:lat"/>
- <element ref="geoproj:long"/>
- </sequence>
- </complexType>
-
- <element name="latlong" type="geoproj:latlongType"/>
-
- <complexType name="coordType">
- <sequence>
- <element ref="geoproj:x"/>
- <element ref="geoproj:y"/>
- </sequence>
- </complexType>
-
- <element name="coord" type="geoproj:coordType"/>
-
-</schema>
\ No newline at end of file
=== renamed file 'src/com/zorba-xquery/www/modules/geoproj.xq' => 'src/com/zorba-xquery/www/modules/geoproj.xq.THIS'
=== added file 'src/geoproj-param.xsd'
--- src/geoproj-param.xsd 1970-01-01 00:00:00 +0000
+++ src/geoproj-param.xsd 2013-06-18 22:44:26 +0000
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<schema
+ targetNamespace="http://zorba.io/modules/geoproj-param"
+ xmlns:geoproj="http://zorba.io/modules/geoproj-param"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ version="1.0.0">
+<!--
+:: Copyright 2006-2008 The FLWOR Foundation.
+::
+:: Licensed under the Apache License, Version 2.0 (the "License");
+:: you may not use this file except in compliance with the License.
+:: You may obtain a copy of the License at
+::
+:: http://www.apache.org/licenses/LICENSE-2.0
+::
+:: Unless required by applicable law or agreed to in writing, software
+:: distributed under the License is distributed on an "AS IS" BASIS,
+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+:: See the License for the specific language governing permissions and
+:: limitations under the License.
+::
+-->
+
+
+ <element name="lat" type="double"/>
+ <element name="long" type="double"/>
+ <element name="x" type="double"/>
+ <element name="y" type="double"/>
+
+ <complexType name="latlongType">
+ <sequence>
+ <element ref="geoproj:lat"/>
+ <element ref="geoproj:long"/>
+ </sequence>
+ </complexType>
+
+ <element name="latlong" type="geoproj:latlongType"/>
+
+ <complexType name="coordType">
+ <sequence>
+ <element ref="geoproj:x"/>
+ <element ref="geoproj:y"/>
+ </sequence>
+ </complexType>
+
+ <element name="coord" type="geoproj:coordType"/>
+
+</schema>
\ No newline at end of file
=== added file 'src/geoproj.xq'
--- src/geoproj.xq 1970-01-01 00:00:00 +0000
+++ src/geoproj.xq 2013-06-18 22:44:26 +0000
@@ -0,0 +1,516 @@
+xquery version "3.0";
+
+(:
+ : Copyright 2006-2009 The FLWOR Foundation.
+ :
+ : Licensed under the Apache License, Version 2.0 (the "License");
+ : you may not use this file except in compliance with the License.
+ : You may obtain a copy of the License at
+ :
+ : http://www.apache.org/licenses/LICENSE-2.0
+ :
+ : Unless required by applicable law or agreed to in writing, software
+ : distributed under the License is distributed on an "AS IS" BASIS,
+ : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ : See the License for the specific language governing permissions and
+ : limitations under the License.
+:)
+
+(:~
+ : Geographic projection module.<br/>
+ : Forward and inverse projection from WGS84 lat-long coordinates to Oblique Mercator x-y projection.<br/>
+ : Oblique Mercator projection is a sphere to cylinder projection.<br/>
+ : This projection results in a conformal output, meaning the shape of small areas is preserved,
+ : no matter the distance from the origin. But it is not equal area, meaning the area size increases heavily
+ : when getting closer to North or South. The area size increases with the same amount on x and y axes,
+ : so the relative shape remains almost the same. <br/>
+ : Mercator projection is the oldest projection, and it is still widely used because it produces a rectangular map.
+ : This projection is used in Google Maps because of its conformal output. <br/>
+ : For military or measurements purposes the UTM projection is used (or variants). This splits the Earth into small
+ : areas and computes the cartesian coordinates relative to each area.<br/>
+ : <br/>
+ : Here we use Oblique Mercator projection. Its advantage over the normal Mercator is that you can set the tangent point
+ : between the cylinder and the sphere to be anywhere on Earth. So you can set the center of the map to be close
+ : to the area you want projected and be able to measure accurately the distances between points and lines.
+ : The map deformation is minimal close to the center point and close to the "equator" line.<br/>
+ : The advantage over the UTM projection is that it can also produce a global rectangular map, like Mercator,
+ : which is great for viewing.<br/>
+ : The disadvantage over Mercator is that it needs more processing power.<br/>
+ : <br/>
+ : WGS84 is the ellipsoid aproximation of the Earth, with big radius of 6,378,137 m and small radius of 6,356,752.3 m.
+ : The geographic coordinates expressed for this ellipsoid are widely used today in maps and gps coordinates.
+ : It is the default standard for representing geographic coordinates.<br/>
+ : <br/>
+ : The purpose of this module is to provide convertion from polar to cartesian coordinates, so you can
+ : process the geographic data with the Simple Features API functions implemented in the geo module.
+ : That module works only with cartesian coordinates, but most maps have polar coordinates. <br/>
+ : <br/>
+ : The projection formulas are taken from lib_proj library and implemented in XQuery.
+ :
+ : @author Daniel Turcanu
+ : @project geo
+ :)
+module namespace geoproj = "http://zorba.io/modules/geoproj";
+
+(:~
+ : W3C Math namespace URI.
+:)
+declare namespace math="http://www.w3.org/2005/xpath-functions/math";
+
+declare namespace err = "http://www.w3.org/2005/xqt-errors";
+
+(:~
+ : Import module for checking if geoproj parameters are validated.
+ :)
+import module namespace schemaOptions = "http://www.zorba-xquery.com/modules/schema";
+
+
+(:~
+ : Contains the definitions of the geoproj parameters.
+:)
+import schema namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
+
+declare namespace gml="http://www.opengis.net/gml";
+
+declare namespace ver = "http://www.zorba-xquery.com/options/versioning";
+declare option ver:module-version "1.0";
+
+(:~
+ : Convert angle from degrees to radians. <br/>
+ : The parameter is first reduced to value range of (-360, 360).
+ :
+ : @param $deg angle in degrees
+ : @return value in radians (-2PI, 2PI)
+ :)
+declare function geoproj:deg-to-rad($deg as xs:double) as xs:double
+{
+ ($deg mod 360) * 2 * math:pi() div 360
+};
+
+(:~
+ : Convert angle from radians to degrees. <br/>
+ :
+ : @param $rad value in radians
+ : @return value in degrees (-360, 360)
+ :)
+declare function geoproj:rad-to-deg($rad as xs:double) as xs:double
+{
+ ($rad * 360 div 2 div math:pi()) mod 360
+};
+
+
+(:~
+ : Compute the isometric latitude of $phi latitude.
+ :
+ : @param $phi a latitude
+ : @return isometric latitude in radians
+ :)
+declare %private function geoproj:proj-tsfn($phi as xs:double) as xs:double
+{
+ let $e as xs:double := 0.0818192E0
+ return
+ math:tan(math:pi() div 4 - $phi div 2) div math:pow((1 - $e * math:sin($phi)) div (1 + $e * math:sin($phi)), $e div 2)
+};
+
+declare %private function geoproj:wgs84-to-omerc-validated(
+ $lat_0 as xs:double,
+ $long_c as xs:double,
+ $k0 as xs:double,
+ $lat_long_degrees as element(geoproj-param:latlong, geoproj-param:latlongType)*) as element(geoproj-param:coord)*
+{
+ let $e as xs:double := 0.0818192E0
+ let $e2 := $e*$e
+ let $phi0 := geoproj:deg-to-rad($lat_0)
+ let $lambda0 := geoproj:deg-to-rad($long_c)
+ let $sin_phi0 := math:sin($phi0)
+ let $sin2_phi0 := $sin_phi0 * $sin_phi0
+ let $cos_phi0 := math:cos($phi0)
+ let $aphi0 := abs($phi0)
+ let $B := if ($aphi0 gt 1e-10) then math:sqrt(1 + $e2 div (1 - $e2) * math:pow($cos_phi0, 4)) else math:sqrt(1 - $e2)
+ let $A := if ($aphi0 gt 1e-10) then $B * $k0 * math:sqrt(1 - $e2) div (1 - $e2*$sin2_phi0) else $k0
+ let $t0 := geoproj:proj-tsfn($phi0)
+ let $D := if ($aphi0 gt 1e-10) then $B * math:sqrt(1 - $e2) div ($cos_phi0 * math:sqrt(1 - $e2*$sin2_phi0)) else 1
+ let $D := if ($D*$D < 1) then 1 else $D
+ let $F := if ($aphi0 gt 1e-10) then if ($phi0 < 0) then $D - math:sqrt($D*$D - 1) else $D + math:sqrt($D*$D - 1) else 1
+ let $E := if ($aphi0 gt 1e-10) then math:pow($t0, $B) * $F else 1
+
+ let $G := ($F - 1 div $F) div 2
+ let $uc := abs($A div $B * math:atan2(math:sqrt($D*$D - 1), 1))
+ let $uc := if ($phi0 < 0) then -$uc else $uc
+
+ for $latlong in $lat_long_degrees
+ let $phi := geoproj:deg-to-rad($latlong/*:lat)
+ let $lambda := geoproj:deg-to-rad($latlong/*:long)
+ let $V := math:sin($B * ($lambda - $lambda0))
+ return
+ if (abs($phi) lt (math:pi() div 2 - 1.e-10)) then
+ let $Q := $E div math:pow(geoproj:proj-tsfn($phi) , $B)
+ let $S := ($Q - 1 div $Q) div 2
+ let $T := ($Q + 1 div $Q) div 2
+ let $U := -$V div $T
+ let $v := if (abs($U) ne 1) then $A div (2 * $B) * math:log((1 - $U) div (1 + $U)) else 1 div 0
+ let $M := math:cos($B * ($lambda - $lambda0))
+ let $u := if ($M gt 1e-7) then $A div $B * math:atan2($S, $M) else $A*$B*($lambda - $lambda0)
+ let $u := $u - $uc
+ let $x := $v
+ let $x := $x * 6378137
+ let $y := $u
+ let $y := $y * 6378137
+ return <geoproj-param:coord><geoproj-param:x>{$x}</geoproj-param:x> <geoproj-param:y>{$y}</geoproj-param:y></geoproj-param:coord>
+ else
+ let $v := $A div $B * -4.2897288031186085136750723197195
+ let $u := $phi * $A div $B
+ let $u := $u - $uc
+ let $x := $v
+ let $x := $x * 6378137
+ let $y := $u
+ let $y := $y * 6378137
+ return <geoproj-param:coord><geoproj-param:x>{$x}</geoproj-param:x> <geoproj-param:y>{$y}</geoproj-param:y></geoproj-param:coord>
+};
+
+(:~
+ : Forward projection from geographic coordinates lat-long on WGS84 ellipsoid to Oblique Mercator cylinder.<br/>
+ : The Oblique Mercator projection is like the standard Mercator projection, but you can choose the point of origin.<br/>
+ : Specify the coordinates of the center point somewhere near the points being projected,
+ : so the projection deformation is small.<br/>
+ : The azimuth in the center point, alpha, is hardcoded to zero, so the true north is preserved.
+ : This is a simplification of the standard Oblique Mercator projection. <br/>
+ : Gamma, the azimuth of the rectified bearing of center line is also zero, calculated from alpha.<br/>
+ : <br/>
+ : The radius of the Earth in WGS84 is 6378137 m.<br/>
+ : Reverse flatening 298.257223563.<br/>
+ : Eccentricity e 0.0818192.<br/>
+ :<br/>
+ : @param $lat_0 is the latitude for center point, in degrees (-90, 90)
+ : @param $long_c is the longitude for center point, in degrees (-180, 180)
+ : @param $k0 is the scale in the center point. The scale will increase when going far to north and south.
+ : Use value 1 to get the true distances between points, in meters.
+ : At equator, the distance for 1 degree is aproximately 110 km.
+ : @param $lat_long_degrees a sequence of nodes of type <br/>
+ : <latlong><lat><i>latitude degree</i></lat><long><i>longitude degree</i></long></latlong><br/>
+ : in namespace "http://zorba.io/modules/geoproj-param". Each node in the sequence is validated
+ : against the according schema.
+ :
+ : @error err:XQDY0027 if any of the nodes passed in the $lat-long-degress parameter is
+ : not valid according to the schema.
+ :
+ : @return a sequence of x-y coordinates in format <br/>
+ : <coord><x><i>x</i></x><y><i>y</i></y></coord> <br/>
+ : in namespace "http://zorba.io/modules/geoproj-param" <br/>
+ : Note that the x coordinate corresponds to the longitude, and y coordinate to the latitude.<br/>
+ : The coordinates are expressed in meters.<br/>
+ : The coordinates are relative to the center point.
+ @example test/Queries/geo/geoproj1.xq
+ @example test/Queries/geo/geoproj5.xq
+ @example test/Queries/geo/geoproj6.xq
+ @example test/Queries/geo/geoproj8.xq
+ @example test/Queries/geo/geoproj9.xq
+ @example test/Queries/geo/geoproj10.xq
+ @example test/Queries/geo/geoproj12.xq
+ :)
+declare function geoproj:wgs84-to-omerc( $lat-0 as xs:double,
+ $long-c as xs:double,
+ $k0 as xs:double,
+ $lat-long-degrees as element(geoproj-param:latlong)*) as element(geoproj-param:coord)*
+{
+ let $validated-lat-long :=
+ (for $lat-long-degree in $lat-long-degrees
+ return
+ if(empty($lat-long-degree)) then
+ $lat-long-degrees
+ else
+ validate{$lat-long-degree} )
+ return
+ geoproj:wgs84-to-omerc-validated($lat-0, $long-c, $k0, $validated-lat-long)
+};
+
+
+(:~
+ : Forward projection from geographic coordinates lat-long on WGS84 ellipsoid to Oblique Mercator cylinder.<br/>
+ : This is an intermediate function for wgs84-to-omerc.<br/>
+ : The difference is that it returns the x-y coordinates in gml:pos format,
+ : gml being the prefix for the GML namespace "http://www.opengis.net/gml".<br/>
+ :<br/>
+ : @param $lat_0 is the latitude for center point, in degrees (-90, 90)
+ : @param $long_c is the longitude for center point, in degrees (-180, 180)
+ : @param $k0 is the scale in the center point.
+ : @param $lat_long_degrees a sequence of nodes of type <br/>
+ : <latlong><lat><i>latitude degree</i></lat><long><i>longitude degree</i></long></latlong><br/>
+ : in namespace "http://zorba.io/modules/geoproj-param". Each node in this sequence is validated according
+ : to the according schema.
+ :
+ : @error err:XQDY0027 if any of the nodes passed in the $lat-long-degress parameter is
+ : not valid according to the schema.
+ :
+ : @return a sequence of x-y coordinates in format <br/>
+ : <gml:pos><i>x</i> <i>y</i></gml:pos> <br/>
+ : in namespace "http://www.opengis.net/gml"
+ @example test/Queries/geo/geoproj3.xq
+ :)
+declare function geoproj:wgs84-to-omerc-gmlpos( $lat-0 as xs:double,
+ $long-c as xs:double,
+ $k0 as xs:double,
+ $lat-long-degrees as element(geoproj-param:latlong)*) as element(gml:pos)*
+{
+ let $validated-lat-long :=
+ (for $lat-long-degree in $lat-long-degrees
+ return
+ if(empty($lat-long-degree)) then
+ $lat-long-degrees
+ else
+ validate{$lat-long-degree} )
+ return
+ geoproj:wgs84-to-omerc-gmlpos-validated($lat-0, $long-c, $k0, $validated-lat-long)
+};
+
+declare %private function geoproj:wgs84-to-omerc-gmlpos-validated( $lat_0 as xs:double,
+ $long_c as xs:double,
+ $k0 as xs:double,
+ $lat_long_degrees as element(geoproj-param:latlong, geoproj-param:latlongType)*) as element(gml:pos)*
+{
+ for $coord in geoproj:wgs84-to-omerc($lat_0, $long_c, $k0, $lat_long_degrees)
+ return
+ <gml:pos>{string($coord/*:x)}{" "}{string($coord/*:y)}</gml:pos>
+};
+
+(:~
+ : Function for iterative computing of the inverse isometric latitude.
+ :
+ : @param $i the maximum iterations
+ : @param $ts precomputed value
+ : @param $e the Earth eccentricity. For WGS84 is hardcoded to 0.0818192.
+ : @param $prev_phi previous computed inverse isometric latitude
+ : @return isometric latitude in radians
+ :)
+declare %private function geoproj:proj-phi2-helper($i as xs:integer,
+ $ts as xs:double , $e as xs:double,
+ $prev_phi as xs:double) as xs:double
+{
+ if($i eq 0) then
+ $prev_phi
+ else
+ let $phi := math:pi() div 2 - 2 * math:atan($ts * math:pow((1 - $e * math:sin($prev_phi[1])) div (1 + $e * math:sin($prev_phi[1])), $e div 2))
+ return
+ if (abs($prev_phi - $phi) le 1.0e-10) then
+ $phi
+ else
+ geoproj:proj-phi2-helper($i - 1, $ts, $e, $phi)
+};
+
+(:~
+ : Function for computing the inverse isometric latitude.
+ :
+ : @param $ts precomputed value, based on an initial latitude.
+ : @param $e the Earth eccentricity. For WGS84 is hardcoded to 0.0818192.
+ : @return inverse isometric latitude in radians
+ :)
+declare %private function geoproj:proj-phi2($ts as xs:double, $e as xs:double) as xs:double
+{
+ let $phi := math:pi() div 2 - 2 * math:atan($ts)
+ return
+ geoproj:proj-phi2-helper(15, $ts, $e, ($phi))
+};
+
+(:~
+ : Inverse projection from cartesian coordinates on Oblique Mercator cylinder
+ : to geographic coordinates lat-long on WGS84 ellipsoid.<br/>
+ : The parameters for center point and scale should be the same as for the initial forward projection,
+ : otherwise you will get wrong results.<br/>
+ : <br/>
+ :<br/>
+ : @param $lat_0 is the latitude for center point, in degrees (-90, 90)
+ : @param $long_c is the longitude for center point, in degrees (-180, 180)
+ : @param $k0 is the scale in the center point.
+ : @param $coords a sequence of nodes of type <br/>
+ : <coord><x><i>x</i></x><y><i>y</i></y></coord> <br/>
+ : in namespace "http://zorba.io/modules/geoproj-param"<br/>
+ : The coordinates are expressed in meters.
+ :
+ : @error err:XQDY0027 if any of the coordinates passed in the $coords parameter is
+ : not valid according to the schema.
+ :
+ : @return a sequence of geographic coordinates in format <br/>
+ : <latlong><lat><i>latitude degree</i></lat><long><i>longitude degree</i></long></latlong><br/>
+ : in namespace "http://zorba.io/modules/geoproj-param"<br/>
+ : Note that the longitude corresponds to the x coordinate, and the latitude to the y coordinate.<br/>
+ @example test/Queries/geo/geoproj2.xq
+ @example test/Queries/geo/geoproj7.xq
+ @example test/Queries/geo/geoproj11.xq
+ :)
+declare function geoproj:omerc-to-wgs84($lat-0 as xs:double,
+ $long-c as xs:double,
+ $k0 as xs:double,
+ $coords as element(geoproj-param:coord)*) as element(geoproj-param:latlong)*
+{
+ let $validated-coords :=
+ (for $coord in $coords
+ return
+ if(empty($coords)) then
+ $coord
+ else
+ validate{$coord} )
+ return
+ geoproj:omerc-to-wgs84-validated($lat-0, $long-c, $k0, $validated-coords)
+};
+
+declare %private function geoproj:omerc-to-wgs84-validated($lat_0 as xs:double,
+ $long_c as xs:double,
+ $k0 as xs:double,
+ $coords as element(geoproj-param:coord, geoproj-param:coordType)*) as element(geoproj-param:latlong)*
+{
+ let $e as xs:double := 0.0818192E0
+ let $e2 := $e*$e
+ let $phi0 := geoproj:deg-to-rad($lat_0)
+ let $lambda0 := geoproj:deg-to-rad($long_c)
+ let $sin_phi0 := math:sin($phi0)
+ let $sin2_phi0 := $sin_phi0 * $sin_phi0
+ let $cos_phi0 := math:cos($phi0)
+ let $aphi0 := abs($phi0)
+ let $B := if ($aphi0 gt 1.e-10) then math:sqrt(1 + $e2 div (1 - $e2) * math:pow($cos_phi0, 4)) else math:sqrt(1 - $e2)
+ let $A := if ($aphi0 gt 1.e-10) then $B * $k0 * math:sqrt(1 - $e2) div (1 - $e2*$sin2_phi0) else $k0
+ let $t0 := geoproj:proj-tsfn($phi0)
+ let $D := if ($aphi0 gt 1.e-10) then $B * math:sqrt(1 - $e2) div ($cos_phi0 * math:sqrt(1 - $e2*$sin2_phi0)) else 1
+ let $D := if ($D*$D < 1) then 1 else $D
+ let $F := if ($aphi0 gt 1.e-10) then if ($phi0 < 0) then $D - math:sqrt($D*$D - 1) else $D + math:sqrt($D*$D - 1) else 1
+ let $E := if ($aphi0 gt 1.e-10) then math:pow($t0, $B) * $F else 1
+
+ let $G := ($F - 1 div $F) div 2
+ let $uc := abs($A div $B * math:atan2(math:sqrt($D*$D - 1), 1))
+ let $uc := if ($phi0 < 0) then -$uc else $uc
+
+ for $coord in $coords
+ let $x := $coord/*:x div 6378137
+ let $y := $coord/*:y div 6378137
+ let $v := $x
+ let $u := $y + $uc
+ let $Qp := math:exp(-$B * $v div $A)
+ let $Sp := ($Qp - 1 div $Qp) div 2
+ let $Tp := ($Qp + 1 div $Qp) div 2
+ let $Vp := math:sin($B * $u div $A)
+ let $Up := $Vp div $Tp
+ return
+ if(abs(abs($Up) - 1) lt 1e-10) then
+ if ($Up gt 0) then
+ <geoproj-param:latlong><geoproj-param:lat>90</geoproj-param:lat> <geoproj-param:long>{$long_c}</geoproj-param:long></geoproj-param:latlong>
+ else
+ <geoproj-param:latlong><geoproj-param:lat>-90</geoproj-param:lat> <geoproj-param:long>{$long_c}</geoproj-param:long></geoproj-param:latlong>
+ else
+ let $phi := $E div math:sqrt((1 + $Up) div (1 - $Up))
+ let $phi := geoproj:proj-phi2(math:pow($phi, 1 div $B), $e)
+ let $lambda := - 1 div $B * math:atan2($Sp, math:cos($B * $u div $A))
+ return
+ <geoproj-param:latlong><geoproj-param:lat>{geoproj:rad-to-deg($phi)}</geoproj-param:lat> <geoproj-param:long>{geoproj:rad-to-deg($lambda+$lambda0)}</geoproj-param:long></geoproj-param:latlong>
+};
+
+(:~
+ : Inverse projection from cartesian coordinates on Oblique Mercator cylinder
+ : to geographic coordinates lat-long on WGS84 ellipsoid.<br/>
+ : This is an intermediate function for omerc-to-wgs84.<br/>
+ : The difference is that it works with coordinates in gml:pos format,
+ : gml being the prefix for the GML namespace "http://www.opengis.net/gml".<br/>
+ :<br/>
+ : @param $lat_0 is the latitude for center point, in degrees (-90, 90)
+ : @param $long_c is the longitude for center point, in degrees (-180, 180)
+ : @param $k0 is the scale in the center point.
+ : @param $gmlposs a sequence of nodes of type <br/>
+ : <gml:pos><i>x</i> <i>y</i></gml:pos> <br/>
+ : in namespace "http://www.opengis.net/gml"
+ : @return a sequence of geographic coordinates in format <br/>v
+ : <latlong><lat><i>latitude degree</i></lat><long><i>longitude degree</i></long></latlong><br/>
+ : in namespace "http://zorba.io/modules/geoproj-param"
+ @example test/Queries/geo/geoproj4.xq
+ :)
+declare function geoproj:omerc-gmlpos-to-wgs84($lat_0 as xs:double,
+ $long_c as xs:double,
+ $k0 as xs:double,
+ $gmlposs as element(gml:pos)*) as element(geoproj-param:latlong)*
+{
+ geoproj:omerc-to-wgs84($lat_0, $long_c, $k0,
+ (for $gmlpos in $gmlposs
+ let $xystring := normalize-space(fn:string($gmlpos))
+ let $xy := tokenize($xystring, "[ \t\r\n]+")
+ let $x := $xy[1]
+ let $y := $xy[2]
+ return <geoproj-param:coord><geoproj-param:x>{$x}</geoproj-param:x><geoproj-param:y>{$y}</geoproj-param:y></geoproj-param:coord>))
+};
+
+(:~
+ : Convertion from Degrees-Minutes-Seconds (DMS) to Degrees.<br/>
+ : The values for DMS can be like 11d12'13", meaning 11 degrees, 12 minutes and 13 seconds.<br/>
+ : One degree has 60 minutes, and one minute has 60 seconds.<br/>
+ : The separator for degrees can be one of the characters [dDoO].<br/>
+ : The separator for minutes can be one of the characters ['m].<br/>
+ : The separator for seconds can be " or nothing.<br/>
+ : The seconds can be a floating point number.<br/>
+ : <br/>
+ : The seconds can be missing, and if it is missing, the minutes can be missing too.<br/>
+ : The negative value can be expressed as -11d12'13" or 11d12'13"S or 11d12'13"W.
+ : Values for N (North) and E (East) are positive, and S (South) and W (West) are negative.
+ :<br/>
+ : @param $dms the degree-minutes-seconds string expressed in the format described above
+ : @return the value in degrees
+ @example test/Queries/geo/dms1.xq
+ :)
+declare function geoproj:dms-to-deg($dms as xs:string) as xs:double
+{
+ let $dms := normalize-space($dms)
+ let $dtok := tokenize($dms, "([DdOo])|([SNEW]$)")
+ let $d := $dtok[1] cast as xs:double
+ let $dsign := if($d < 0) then -1 else 1
+ let $d := abs($d)
+ return
+ if(count($dtok) eq 1) then
+ $dsign*$d
+ else
+ if(string-length($dtok[2]) eq 0) then
+ if(matches($dms, "[SW]$")) then
+ -$d
+ else
+ $dsign*$d
+ else
+ let $ms := substring($dms, string-length($dtok[1]) + 1 + 1)
+ let $mtok := tokenize($ms, "(['m])|([SNEW]$)")
+ let $m := abs($mtok[1] cast as xs:double)
+ let $d := $d + $m div 60
+ return
+ if(count($mtok) eq 1) then
+ $dsign*$d
+ else
+ if(string-length($mtok[2]) eq 0) then
+ if(matches($dms, "[SW]$")) then
+ -$d
+ else
+ $dsign*$d
+ else
+ let $ss := substring($ms, string-length($mtok[1]) + 1 + 1)
+ let $stok := tokenize($ss, '"|([SNEW]$)')
+ let $s := abs($stok[1] cast as xs:double)
+ let $d := $d + $s div 3600
+ return
+ if(matches($dms, "[SW]$")) then
+ -$d
+ else
+ $dsign*$d
+};
+
+(:~
+ : Convertion from Degrees to Degrees-Minutes-Seconds (DMS).<br/>
+ : <br/>
+ : @param $deg the degree value
+ : @return the value in DMS format, <i>[-]degree</i><b>d</b><i>minutes</i><b>'</b><i>seconds</i>
+ @example test/Queries/geo/dms2.xq
+ :)
+declare function geoproj:deg-to-dms($deg as xs:double) as xs:string
+{
+ let $d := $deg cast as xs:integer
+ let $ms := abs($deg - $d) * 60
+ let $m := $ms cast as xs:integer
+ let $s := $ms - $m
+ let $s := $s * 60
+ let $m := if($s ge (60 - 1e-10)) then $m + 1 else $m
+ let $d := if($m ge (60 - 1e-10)) then $d + 1 else $d
+ let $m := if($m ge (60 - 1e-10)) then $m - 60 else $m
+ let $s := if($s ge (60 - 1e-10)) then 0 else $s
+ return
+ concat($d, "d", $m, "'", $s)
+};
=== modified file 'test/ExpQueryResults/geo/geoproj1.xml.res'
--- test/ExpQueryResults/geo/geoproj1.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj1.xml.res 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>109292.73684961209</geoproj-param:x>
<geoproj-param:y>110793.18638310062</geoproj-param:y>
</geoproj-param:coord>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj10.xml.res'
--- test/ExpQueryResults/geo/geoproj10.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj10.xml.res 2013-06-18 22:44:26 +0000
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>0</geoproj-param:x>
<geoproj-param:y>-110618.44951571905</geoproj-param:y>
</geoproj-param:coord>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>0</geoproj-param:x>
<geoproj-param:y>2.3223354824420721E6</geoproj-param:y>
</geoproj-param:coord>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj11.xml.res'
--- test/ExpQueryResults/geo/geoproj11.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj11.xml.res 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:latlong xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:latlong xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:lat>-11.000065662385046</geoproj-param:lat>
<geoproj-param:long>0</geoproj-param:long>
</geoproj-param:latlong>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj12.xml.res'
--- test/ExpQueryResults/geo/geoproj12.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj12.xml.res 2013-06-18 22:44:26 +0000
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>34417.375607682858</geoproj-param:x>
<geoproj-param:y>-6.7723638717972031E6</geoproj-param:y>
</geoproj-param:coord>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>38106.644879161235</geoproj-param:x>
<geoproj-param:y>8.983207725162318E6</geoproj-param:y>
</geoproj-param:coord>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj2.xml.res'
--- test/ExpQueryResults/geo/geoproj2.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj2.xml.res 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:latlong xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:latlong xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:lat>11</geoproj-param:lat>
<geoproj-param:long>11</geoproj-param:long>
</geoproj-param:latlong>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj4.xml.res'
--- test/ExpQueryResults/geo/geoproj4.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj4.xml.res 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:latlong xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:latlong xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:lat>11</geoproj-param:lat>
<geoproj-param:long>11</geoproj-param:long>
</geoproj-param:latlong>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj5.xml.res'
--- test/ExpQueryResults/geo/geoproj5.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj5.xml.res 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>109292.73684961209</geoproj-param:x>
<geoproj-param:y>110793.18638310062</geoproj-param:y>
</geoproj-param:coord>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj6.xml.res'
--- test/ExpQueryResults/geo/geoproj6.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj6.xml.res 2013-06-18 22:44:26 +0000
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>547086.3150955874</geoproj-param:x>
<geoproj-param:y>115174.5700163616</geoproj-param:y>
</geoproj-param:coord>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>545150.00927157491</geoproj-param:x>
<geoproj-param:y>226184.45457291827</geoproj-param:y>
</geoproj-param:coord>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj7.xml.res'
--- test/ExpQueryResults/geo/geoproj7.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj7.xml.res 2013-06-18 22:44:26 +0000
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:latlong xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:latlong xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:lat>11</geoproj-param:lat>
<geoproj-param:long>102</geoproj-param:long>
</geoproj-param:latlong>
-<geoproj-param:latlong xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:latlong xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:lat>12</geoproj-param:lat>
<geoproj-param:long>102</geoproj-param:long>
</geoproj-param:latlong>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj8.xml.res'
--- test/ExpQueryResults/geo/geoproj8.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj8.xml.res 2013-06-18 22:44:26 +0000
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>-218616.56181767309</geoproj-param:x>
<geoproj-param:y>111339.45363464409</geoproj-param:y>
</geoproj-param:coord>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>-217845.99308707233</geoproj-param:x>
<geoproj-param:y>222020.3879810845</geoproj-param:y>
</geoproj-param:coord>
\ No newline at end of file
=== modified file 'test/ExpQueryResults/geo/geoproj9.xml.res'
--- test/ExpQueryResults/geo/geoproj9.xml.res 2011-02-23 12:55:52 +0000
+++ test/ExpQueryResults/geo/geoproj9.xml.res 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<geoproj-param:coord xmlns:geoproj-param="http://www.zorba-xquery.com/modules/geoproj-param">
+<geoproj-param:coord xmlns:geoproj-param="http://zorba.io/modules/geoproj-param">
<geoproj-param:x>0</geoproj-param:x>
<geoproj-param:y>-221150.04824675474</geoproj-param:y>
</geoproj-param:coord>
\ No newline at end of file
=== modified file 'test/Queries/geo/dms1.xq'
--- test/Queries/geo/dms1.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/dms1.xq 2013-06-18 22:44:26 +0000
@@ -1,4 +1,4 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
(geoproj:dms-to-deg("10d10'10"),
geoproj:dms-to-deg("10d"),
=== modified file 'test/Queries/geo/dms2.xq'
--- test/Queries/geo/dms2.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/dms2.xq 2013-06-18 22:44:26 +0000
@@ -1,4 +1,4 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
(geoproj:deg-to-dms(10.169444444444444),
geoproj:deg-to-dms(10),
=== modified file 'test/Queries/geo/geoproj1.xq'
--- test/Queries/geo/geoproj1.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj1.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:wgs84-to-omerc(10, 10, 1,
<geoproj-param:latlong>
=== modified file 'test/Queries/geo/geoproj10.xq'
--- test/Queries/geo/geoproj10.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj10.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:wgs84-to-omerc(-11, 0, 1,
(<geoproj-param:latlong>
=== modified file 'test/Queries/geo/geoproj11.xq'
--- test/Queries/geo/geoproj11.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj11.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:omerc-to-wgs84(-10, 0, 1,
(<geoproj-param:coord>
=== modified file 'test/Queries/geo/geoproj12.xq'
--- test/Queries/geo/geoproj12.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj12.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:wgs84-to-omerc(-11, 169, 1,
(<geoproj-param:latlong>
=== modified file 'test/Queries/geo/geoproj2.xq'
--- test/Queries/geo/geoproj2.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj2.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:omerc-to-wgs84(10, 10, 1,
(<geoproj-param:coord>
=== modified file 'test/Queries/geo/geoproj3.xq'
--- test/Queries/geo/geoproj3.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj3.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:wgs84-to-omerc-gmlpos(10, 10, 1 div 1000,
<geoproj-param:latlong>
=== modified file 'test/Queries/geo/geoproj4.xq'
--- test/Queries/geo/geoproj4.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj4.xq 2013-06-18 22:44:26 +0000
@@ -1,4 +1,4 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
declare namespace gml="http://www.opengis.net/gml";
geoproj:omerc-gmlpos-to-wgs84(10, 10, 1 div 1000,
=== modified file 'test/Queries/geo/geoproj5.xq'
--- test/Queries/geo/geoproj5.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj5.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:wgs84-to-omerc(10, 100, 1,
<geoproj-param:latlong>
=== modified file 'test/Queries/geo/geoproj6.xq'
--- test/Queries/geo/geoproj6.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj6.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:wgs84-to-omerc(10, 85, 1,
(<geoproj-param:latlong>
=== modified file 'test/Queries/geo/geoproj7.xq'
--- test/Queries/geo/geoproj7.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj7.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:omerc-to-wgs84(10, 100, 1,
(<geoproj-param:coord>
=== modified file 'test/Queries/geo/geoproj8.xq'
--- test/Queries/geo/geoproj8.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj8.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:wgs84-to-omerc(10, -100, 1,
(<geoproj-param:latlong>
=== modified file 'test/Queries/geo/geoproj9.xq'
--- test/Queries/geo/geoproj9.xq 2011-02-23 12:55:52 +0000
+++ test/Queries/geo/geoproj9.xq 2013-06-18 22:44:26 +0000
@@ -1,5 +1,5 @@
-import module namespace geoproj = "http://www.zorba-xquery.com/modules/geoproj";
-declare namespace geoproj-param = "http://www.zorba-xquery.com/modules/geoproj-param";
+import module namespace geoproj = "http://zorba.io/modules/geoproj";
+declare namespace geoproj-param = "http://zorba.io/modules/geoproj-param";
geoproj:wgs84-to-omerc(0, 0, 1,
(<geoproj-param:latlong>
Follow ups