OpenGIS Implementační specifikace pro geografické informace - Jednoduchý přístup k prvkům - Část 1: Společná architektura<\/A>. Příspěvek se zaměřil na to, jak neúplná dokumentace prostorových operátorů nutí uživatele hádat a pravděpodobně i chybně odhadovat, jak software funguje místo toho, aby věděli, jak by software měl fungovat. Stejně nešťastné jako může být pro uživatele neúplná dokumentace, je mnohem horší mísení různých definic prostorových vztahů v rámci stejného prostorového operátoru, což se zdá být to, co Esri udělalo.<\/P><\/P>
Půjčme si příklady z předchozího příspěvku a podívejme se na tři objekty a metodu ArcPy Geometry.within()<\/SPAN>.<\/P><\/P>>>> #Vytvořit čtvercový polygon
>>> polygon = arcpy.FromWKT('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0))')
>>> #Vytvořit linii, která leží úplně na hranici polygonu
>>> line = arcpy.FromWKT('LINESTRING(1 0, 2 0)')
>>> #Vytvořit prázdnou linii
>>> line_empty = arcpy.FromWKT('LINESTRING EMPTY')
>>>
>>> #Otestovat zda je linie uvnitř polygonu
>>> line.within(polygon)
False
>>> #Otestovat zda je prázdná linie uvnitř polygonu
>>> line_empty.within(polygon)
True<\/PRE><\/P>Pro srovnání proveďme stejné dva testy z řádků 9 a 12 pomocí Esri9s ST_Geometry v Oracle:<\/P><\/P>SQL> --Otestovat zda je linie uvnitř polygonu
SQL> SELECT sde.st_within(sde.st_geomfromtext('LINESTRING(1 0, 2 0)', 0),
sde.st_geomfromtext('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0))', 0))
FROM dual;
SDE.ST_WITHIN(SDE.ST_GEOMFROMTEXT('LINESTRING(10,20)',0),SDE.ST_GEOMFROMTEXT('PO'
--------------------------------------------------------------------------------
&nbs p;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp ; nbsp;
SQL> --Otestovat zda je prázdná linie uvnitř polygonu
SQL> SELECT sde.st_within(sde.st_geomfromtext('LINESTRING EMPTY', 0),
;&nbs p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p;p ; nbsp;
;&nbs p;sde.st_geomfromtext('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0))', 0))
;&nbs p; FROM dual;
SDE.ST_WITHIN(SDE.ST_GEOMFROMTEXT('LINESTRINGEMPTY',0),SDE.ST_GEOMFROMTEXT('POLY'
--------------------------------------------------------------------------------
;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;;&nbs p;<\/P>Zajímavé je, že výsledky použití ST_Geometry se liší od použití ArcPy.& nbsp; Vzhledem k tomu, že funkce ST_Geometry jsou OGC jednoduchý přístup k prvkům a SQL kompatibilní, což znamená implementaci DE-9IM, jsou výsledky ze ST_Geometry v Oracle očekávané, protože linie ležící pouze na hranici polygonu není považována za uvnitř polygonu a prázdná geometrie nemůže být uvnitř jiné geometrie.<\/P><\/P>Při pohledu na výsledky ArcPy je řádek 10 správný pouze<\/SPAN>, pokud