]> git.openstreetmap.org Git - nominatim.git/blobdiff - website/reverse.php
Merge pull request #396 from mtmail/fix-array-merge-warning
[nominatim.git] / website / reverse.php
index f760dc09043e588e920bc8538efefdaca0c1cb8b..3254e710bda5048ee68b7f611ed6f30f3819d4a3 100755 (executable)
                }
        }
 
                }
        }
 
+
+       $bAsPoints = false;
+       $bAsGeoJSON = (boolean)isset($_GET['polygon_geojson']) && $_GET['polygon_geojson'];
+       $bAsKML = (boolean)isset($_GET['polygon_kml']) && $_GET['polygon_kml'];
+       $bAsSVG = (boolean)isset($_GET['polygon_svg']) && $_GET['polygon_svg'];
+       $bAsText = (boolean)isset($_GET['polygon_text']) && $_GET['polygon_text'];
+       if ( ( ($bAsGeoJSON?1:0)
+                        + ($bAsKML?1:0)
+                        + ($bAsSVG?1:0)
+                        + ($bAsText?1:0)
+                        + ($bAsPoints?1:0)
+                        ) > CONST_PolygonOutput_MaximumTypes)
+       {
+               if (CONST_PolygonOutput_MaximumTypes)
+               {
+                       userError("Select only ".CONST_PolygonOutput_MaximumTypes." polgyon output option");
+               }
+               else
+               {
+                       userError("Polygon output is disabled");
+               }
+               exit;
+       }
+
+
+       // Polygon simplification threshold (optional)
+       $fThreshold = 0.0;
+       if (isset($_GET['polygon_threshold'])) $fThreshold = (float)$_GET['polygon_threshold'];
+
+
        $oDB =& getDB();
        ini_set('memory_limit', '200M');
 
        $oDB =& getDB();
        ini_set('memory_limit', '200M');
 
                $oPlaceLookup->setIncludeNameDetails(getParamBool('namedetails', false));
 
                $aPlace = $oPlaceLookup->lookupPlace($aLookup);
                $oPlaceLookup->setIncludeNameDetails(getParamBool('namedetails', false));
 
                $aPlace = $oPlaceLookup->lookupPlace($aLookup);
+
+               $oPlaceLookup->setIncludePolygonAsPoints($bAsPoints);
+               $oPlaceLookup->setIncludePolygonAsText($bAsText);
+               $oPlaceLookup->setIncludePolygonAsGeoJSON($bAsGeoJSON);
+               $oPlaceLookup->setIncludePolygonAsKML($bAsKML);
+               $oPlaceLookup->setIncludePolygonAsSVG($bAsSVG);
+               $oPlaceLookup->setPolygonSimplificationThreshold($fThreshold);
+
+               $fRadius = $fDiameter = getResultDiameter($aPlace);
+               $aOutlineResult = $oPlaceLookup->getOutlines($aPlace['place_id'], $aPlace['lon'], $aPlace['lat'], $fRadius);
+
+               if ($aOutlineResult)
+               {
+                       $aPlace = array_merge($aPlace, $aOutlineResult);
+               }
        }
        else
        {
        }
        else
        {