GEOS integration questions
Yewondwossen Assefa
assefa at DMSOLUTIONS.CA
Fri Jan 20 07:19:54 PST 2006
I Updated the php wrapper for this support. Details in
http://mapserver.gis.umn.edu/bugs/show_bug.cgi?id=1623 for more details.
example of usage :
<?php
dl("php_mapscript_48.dll");
$shape1 = ms_shapeObjFromWkt("POLYGON((0.0 0.0, 0.0 2.0, 2.0 2.0, 2.0
0.0, 0.0 0.0))");
$shape2 = ms_shapeObjFromWkt("POLYGON((0.5 0.5, 0.5 1.5, 1.5 1.5, 1.5
0.5, 0.5 0.5))");
if ($shape1->containsShape($shape2))
echo "1\n";
else
echo "0\n";
if ($shape2->containsShape($shape1))
echo "1\n";
else
echo "0\n";
if ($shape2->containsShape($shape2))
echo "1\n";
else
echo "0\n";
?>
Later,
Stephen Lime wrote:
>Well, a nice bottle of scotch would be a good start. ;-)
>
>For grins I added the conains operator to the geos wrapper and to Swig-based
>mapscript. That support is in CVS head (not 4.8, too late for that, sorry).
>I hesitate to touch the PHP wrapper though. You'll have to convince one of
>the other developers to make that change (or have them ok me doing it).
>
>Anyway in a language like Perl you can do:
>
>shape1 = mapscript::shapeObj::fromWKT('POLYGON((0.0 0.0, 0.0 2.0, 2.0 2.0,
>2.0 0.0, 0.0 0.0))') or die("Shape 1: ". mapscript::msGetErrorString("\n")
>."\n");
>$shape2 = mapscript::shapeObj::fromWKT('POLYGON((0.5 0.5,0.5 1.5,1.5 1.5,1.5
>0.5,0.5 0.5))') or die("Shape 2:". mapscript::msGetErrorString("\n") ."\n");
>
>print $shape1->contains($shape2) ."\n";
>print $shape2->contains($shape1) ."\n";
>print $shape2->contains($shape2) ."\n";
>
>Which outputs:
>
>1
>0
>1
>
>as expected. This is only exposing the operator. Nothing is itegrated into
>the MapServer query functions. However, in MapScript you could:
>
>1) use the bounds of shape 1 to do a rect-based query and then
>2) loop through the result set doing contains
>
>I'm not going to do a full implementation of GEOS until I convert the cpp
>interface to c (sometime soon). However, it seems like contains might be
>interesting to folks in the meantime so...
>
>Steve
>
>On Thu, 19 Jan 2006 19:21:26 -0600, Mark Adams <markadams at CUESTASYS.COM> wrote:
>
>
>
>>This is a timely discussion for me. I urgently need to provide support for
>>a "contains" query specifically in an application I am developing (other
>>GEOS supported operators would be great, but the contains query is
>>critical). What would it take to add this functionality into mapserver and
>>mapscript? (We use PHP Mapscript here.)
>>
>>Thanks.
>>
>>------------------------------
>>Mark Adams
>>Senior Analyst & Project Manager
>>Cuesta Systems (DPRA Canada)
>>5230 South Service Road
>>Burlington, ON L7L 5K2
>>Phone: 905-333-4544 x14
>>Fax: 905-333-0455
>>Email: mark.adams at dpra.com
>>
>>
>>On Thu, 19 Jan 2006 10:34:39 -0600, Steve Lime
>><steve.lime at DNR.STATE.MN.US> wrote:
>>
>>
>>
>>>The only GEOS methods exposed are convex hull and a buffer. I didn't
>>>want to go nuts until I received some feedback about the usefulness of
>>>that type of functionality. They are not difficult to add. Are there
>>>
>>>
>>specific
>>
>>
>>>operators you are interested in and would be willing to test? Let me know
>>>if so and we can work in the 4.9 branch.
>>>
>>>A full list of operators supported by GEOS is available at
>>>
>>>
>>geos.refractions.net.
>>
>>
>>>As for mapfile integration. My idea was to expose a few operators that
>>>work of a single shape (e.g. buffer, convex hull, etc...) via the
>>>
>>>
>>PROCESSING
>>
>>
>>>block that is currently used for defining raster operations. That way you
>>>could basically apply a GEOS operator to all features of a particular
>>>
>>>
>>layer as
>>
>>
>>>they are read from the data source- for any data source.
>>>
>>>Steve
>>>
>>>
>>>
>>>>>>listuser HH <listuser at HERZSYS.DE> 01/19/06 5:49 AM >>>
>>>>>>
>>>>>>
>>>Hello all,
>>>
>>>I would like to know how much of the GEOS functions (and which) are
>>>already available in the MapScript API and in PHP MapScript. I found
>>>only intersects and cointains for both. The shapeObj in PHP Mapscript
>>>also has buffer and convexhull.
>>>
>>>Can someone tell me what the plans for including more of the GEOS
>>>functions are?
>>>
>>>Are there plans to use some functions (i.e. buffer) directly in the
>>>
>>>
>>mapfile?
>>
>>
>>>Are there any docs that give some more information?
>>>
>>>Regards
>>>
>>>Norbert
>>>
>>>
--
----------------------------------------------------------------
Assefa Yewondwossen
Software Analyst
Email: assefa at dmsolutions.ca
http://www.dmsolutions.ca/
Phone: (613) 565-5056 (ext 14)
Fax: (613) 565-0925
----------------------------------------------------------------
More information about the MapServer-users
mailing list