Added implementation ideas to parse_wrmap_coordinates.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Thu, 15 Aug 2013 09:17:15 +0000 (09:17 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Thu, 15 Aug 2013 09:17:15 +0000 (09:17 +0000)
git-svn-id: http://www.winterrodeln.org/svn/wrpylib/trunk@1516 7aebc617-e5e2-0310-91dc-80fb5f6d2477

wrpylib/wrmwmarkup.py

index 5dd7ec0b889603f61e1e9f9ae39d7278663a183e..9dbebe9fd91f2a8bb78df1a6e930728037f95aaf 100644 (file)
@@ -367,7 +367,25 @@ def parse_googlemap(wikitext):
     return {'lon': center[0], 'lat': center[1], 'zoom': zoom}, json
 
 
-def parse_wrmap_coordinates(coordinates_str):
+def parse_wrmap_coordinates(coords):
+    '''gets a string coordinates and returns an array of lon/lat coordinate pairs, e.g.
+    47.12 N 11.87 E
+    47.13 N 11.70 E
+    ->
+    [[11.87, 47.12], [11.70, 47.13]]'''
+    '''
+        $matches = array();
+        $num_matches = preg_match_all('/\s*(\d+\.?\d*)\s*N?\s+(\d+\.?\d*)\s*E?\s*/', $input, $matches);
+        $result = array();
+        for ($i=0; $i!=$num_matches; ++$i) {
+            $result[] = array(floatval($matches[2][$i]), floatval($matches[1][$i]));
+        }
+        if (implode($matches[0]) != $input) throw new Exception('Falsches Koordinatenformat: ' . $input);
+        return $result;
+    }
+
+    Think of using re.sub(pattern, repl, string, count=0, flags=0)
+    '''
     return [[0, 0]] # TODO