(no commit message) master
authorChristian Weiske <cweiske@cweiske.de>
Thu, 15 Mar 2018 20:47:25 +0000 (21:47 +0100)
committerwww-cweiske <www-cweiske@localhost.localdomain>
Thu, 15 Mar 2018 20:47:25 +0000 (21:47 +0100)
arcgis-to-geojson.php

index 073c26ab4fff4c571a18565479ab818dc5148972..071a9467b3c475aee3949297b975e1f50129e105 100644 (file)
@@ -1,75 +1,67 @@
-<?php
-/**
- * Convert a ArcGis web recordset polygon to a geojson polygon feature.
- *
- * Validate the generated JSON with http://geojsonlint.com/
- *
- * Dependency installation:
- * $ composer require php-coord/php-coord
- *
- * @author Christan Weiske <cweiske@cweiske.de>
- */
-require_once __DIR__ . '/vendor/autoload.php';
-
-function err($msg)
-{
-    echo $msg . "\n";
-    exit(1);
-}
-
-if ($argc < 2) {
-    err("convert.php <esriGeoMetryFile.json>");
-}
-
-$file = $argv[1];
-$data = json_decode(file_get_contents($file));
-
-if (!isset($data->RecordSet->geometryType)
-    || $data->RecordSet->geometryType != 'esriGeometryPolygon'
-) {
-    err('No esriGeometryPolygon');
-}
-
-$sRefs = [
-    25833 => ['N', 33]
-];
-$sRef = $data->RecordSet->spatialReference->wkid;
-if (!isset($sRefs[$sRef])) {
-    err('Unknown spatial reference EPSG ' . $sRef);
-}
-list($latZone, $lngZone) = $sRefs[$sRef];
-
-$geoJson = [
-    'type'       => 'Feature',
-    'title'      => basename($file, '.json'),
-    'properties' => null,
-    'geometry'   => [
-        'type'        => 'Polygon',
-        'coordinates' => [],
-    ],
-];
-foreach ($data->RecordSet->features as $feature) {
-    foreach ($feature->geometry->rings as $ring) {
-        $coords = [];
-        foreach ($ring as $point) {
-            $utm = new \PHPCoord\UTMRef(
-                $point[0], $point[1], 0, $latZone, $lngZone
-            );
-            $ll = $utm->toLatLng();
-            $coords[] = [$ll->getLng(), $ll->getLat()];
-        }
-
-        $geoJson['geometry']['coordinates'][] = $coords;
-    }
-}
-
-echo json_encode($geoJson, JSON_PRETTY_PRINT) . "\n";
-
-/*
-$UTMRef = new \PHPCoord\UTMRef(350531.8, 5689109.2, 0, 'N', 33);
-$LatLng = $UTMRef->toLatLng();
-
-echo (string) $UTMRef . "\n";
-echo (string) $LatLng . "\n";
-*/
-?>
+<?php\r
+/**\r
+ * Convert a ArcGis web recordset polygon to a geojson polygon feature.\r
+ *\r
+ * Validate the generated JSON with http://geojsonlint.com/\r
+ *\r
+ * Dependency installation:\r
+ * $ composer require php-coord/php-coord\r
+ *\r
+ * @author Christan Weiske <cweiske@cweiske.de>\r
+ */\r
+require_once __DIR__ . '/vendor/autoload.php';\r
+\r
+function err($msg)\r
+{\r
+    echo $msg . "\n";\r
+    exit(1);\r
+}\r
+\r
+if ($argc < 2) {\r
+    err("convert.php <esriGeoMetryFile.json>");\r
+}\r
+\r
+$file = $argv[1];\r
+$data = json_decode(file_get_contents($file));\r
+\r
+if (!isset($data->RecordSet->geometryType)\r
+    || $data->RecordSet->geometryType != 'esriGeometryPolygon'\r
+) {\r
+    err('No esriGeometryPolygon');\r
+}\r
+\r
+$sRefs = [\r
+    25833 => ['N', 33]\r
+];\r
+$sRef = $data->RecordSet->spatialReference->wkid;\r
+if (!isset($sRefs[$sRef])) {\r
+    err('Unknown spatial reference EPSG ' . $sRef);\r
+}\r
+list($latZone, $lngZone) = $sRefs[$sRef];\r
+\r
+$geoJson = [\r
+    'type'       => 'Feature',\r
+    'title'      => basename($file, '.json'),\r
+    'properties' => null,\r
+    'geometry'   => [\r
+        'type'        => 'Polygon',\r
+        'coordinates' => [],\r
+    ],\r
+];\r
+foreach ($data->RecordSet->features as $feature) {\r
+    foreach ($feature->geometry->rings as $ring) {\r
+        $coords = [];\r
+        foreach ($ring as $point) {\r
+            $utm = new \PHPCoord\UTMRef(\r
+                $point[0], $point[1], 0, $latZone, $lngZone\r
+            );\r
+            $ll = $utm->toLatLng();\r
+            $coords[] = [$ll->getLng(), $ll->getLat()];\r
+        }\r
+\r
+        $geoJson['geometry']['coordinates'][] = $coords;\r
+    }\r
+}\r
+\r
+echo json_encode($geoJson, JSON_PRETTY_PRINT) . "\n";\r
+?>\r