Hi Jesse,

BaseX only supports GML 2, and AFAIK gml:pos was not introduced until GML
3. You need to use gml:coordinate instead (which uses a comma instead of a
space as a delimiter). This works for me:

import module namespace geo = "http://expath.org/ns/geo";;
declare namespace gml='http://www.opengis.net/gml';

let $vancouver := <gml:Point srsDimension="2" srsName="
http://www.opengis.net/def/crs/EPSG/0/4326";>
                    <gml:coordinates>49.40,-123.26</gml:coordinates>
                  </gml:Point>

let $seattle := <gml:Point srsDimension="2" srsName="
http://www.opengis.net/def/crs/EPSG/0/4326";>
                  <gml:coordinates>47.68,-122.37</gml:coordinates>
                </gml:Point>

return geo:distance($vancouver, $seattle)


Also, I would think you would want to format the coordinates as longitude,
latitude, however the result is the same (1.9366207682455534) either way. I
don't think your SRS information is being handled properly, but sorry I
don't really know anything about that.

Zach


On Wed, Mar 26, 2014 at 5:49 PM, Jesse Clark <je...@corengi.com> wrote:

> Hi All,
>
> I am writing a feature that will rely on geo:distance to give me the
> distance between two points of latitude and longitude.
>
> I am a total n00b to GIS and GML so I may have messed this up, but based
> on a bit of research to figure out how to define the coordinate system and
> based on the example query from the BaseX 
> docs<http://docs.basex.org/wiki/Geo_Module#geo:distance> I
> came up with the following query as a test:
>
> import module namespace geo = "http://expath.org/ns/geo";;
> declare namespace gml='http://www.opengis.net/gml';
>
> let $vancouver := <gml:Point srsDimension="2" srsName="
> http://www.opengis.net/def/crs/EPSG/0/4326";>
>                     <gml:pos>49.40 -123.26</gml:pos>
>                   </gml:Point>
>
> let $seattle := <gml:Point srsDimension="2" srsName="
> http://www.opengis.net/def/crs/EPSG/0/4326";>
>                   <gml:pos>47.68 -122.37</gml:pos>
>                 </gml:Point>
>
> return geo:distance($vancouver, $seattle)
>
> I have this in a file and am trying to execute it from the CLI with: 'RUN
> [/path/to/file]'
>
> It pukes with this error:
>
> Stopped at  [/path/to/file], 12/21:
> [GEO:GEO0002] java.lang.NullPointerException
>
> I am running off of the zip distribution of BaseX so I believe the geo
> module should be included.
>
> Any guidance would be greatly appreciated.
>
> Best,
> -Jesse
>
> _______________________________________________
> BaseX-Talk mailing list
> BaseX-Talk@mailman.uni-konstanz.de
> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
>
>
_______________________________________________
BaseX-Talk mailing list
BaseX-Talk@mailman.uni-konstanz.de
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

Reply via email to