Hello, I would like to combine Polygons with ST_UNION function in my OpenLayers client. The number of polygons is unknown.
The geometrie of the polygons is in polyArray and i get it from the OpenLayers Layer. First I build a request in OpenLayers. ___________________________________ var queryString = "?"; for (var i=0; i<polyArray.length; i++) { queryString += "polygon"+i + "=" + polyArray[i] + "&"; } var bla = queryString.substring(0, queryString.length-1); ___________________________________ I'tested it with two polygons, the result is "?polygon0=POLYGON((0 0,400 0,400 400,400 0,0 0))&polygon1=POLYGON((-600 200,-600 300,200 300,200 200,-600 200))" Now i send this to my php file. OpenLayers.loadURL("Test.php", query, executeUnion, executeUnion); function executeUnion(response) { alert (response.responseText); Now i read the Request and insert the polygons in an Array and build the statement in php ___________________________________ $countInput=0; while (true) { if($_GET['polygon'.$countInput]==null) { break; }else{ $polygon[$countInput] = $_GET['polygon'.$countInput]; } $countInput++; } $statementString = "SELECT ST_AsText(ST_Union(ARRAY["; $countStatements=0; while (true) { if($polygon[$countStatements]==null) break; else { $statementString .= "ST_GeomFromText('$polygon[$countStatements]'), "; } $countStatements++; } $statementString[strlen($statementString)-2] = ''; $statementString .= "]))"; ___________________________________ result ist "SELECT ST_AsText(ST_Union(ARRAY[ST_GeomFromText('POLYGON((0 0,400 0,400 400,400 0,0 0))'), ST_GeomFromText('POLYGON((-600 200,-600 300,200 300,200 200,-600 200))'), ST_GeomFromText('POLYGON((200 200,200 600,300 600,300 300,200 200))') ] ) )") now connect to DB $conn = pg_connect ("dbname=$dbname user=$user password=$password port=$port host=$host"); the insert the statement ___________________________________ $result = pg_query($conn, $statementString); $row = pg_fetch_array($result,0); echo $row[0]; ___________________________________ nothing happend, i get an empty alert. if i use the statement as a string and not as a variable ___________________________________ $result = pg_query($conn, "SELECT ST_AsText(ST_Union(ARRAY[ST_GeomFromText('POLYGON((0 0,400 0,400 400,400 0,0 0))'), ST_GeomFromText('POLYGON((-600 200,-600 300,200 300,200 200,-600 200))'), ST_GeomFromText('POLYGON((200 200,200 600,300 600,300 300,200 200))') ] ) )"); ___________________________________ i get the geometry of the Union of the polygons. how i can build the statement dynamically?
_______________________________________________ postgis-users mailing list postgis-users@postgis.refractions.net http://postgis.refractions.net/mailman/listinfo/postgis-users