]> git.openstreetmap.org Git - nominatim.git/commitdiff
documentation: new page explaining calculated postcodes
authormarc tobias <mtmail@gmx.net>
Wed, 6 Nov 2019 15:46:40 +0000 (16:46 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Wed, 6 Nov 2019 21:15:44 +0000 (22:15 +0100)
docs/develop/Documentation.md
docs/develop/Postcodes.md [new file with mode: 0644]
docs/mkdocs.yml

index 6e792c25caa7db74103a9c5a5ec2b4afc51e0835..eb3c99d8578df5243100775146a6ff6ccc13cb6e 100644 (file)
@@ -6,31 +6,27 @@ To preview local changes:
 
 1. Install MkDocs
 
-   ```
-   pip3 install --user mkdocs 
-   ```
+    ```
+    pip3 install --user mkdocs 
+    ```
 
 
 2. In build directory run
 
-   ```
-   make doc
-   INFO - Cleaning site directory
-   INFO - Building documentation to directory: /home/vagrant/build/site-html 
-   ```
+        make doc
+        INFO - Cleaning site directory
+        INFO - Building documentation to directory: /home/vagrant/build/site-html 
 
-   This runs `mkdocs build` plus extra transformion of some files and adds symlinks (see `CMakeLists.txt` for the exact steps).
+    This runs `mkdocs build` plus extra transformion of some files and adds symlinks (see `CMakeLists.txt` for the exact steps).
 
 
 3. Start webserver for local testing
 
-   ```
-   mkdocs serve
-   [server:296] Serving on http://127.0.0.1:8000
-   [handlers:62] Start watching changes
-   ```
+        mkdocs serve
+        [server:296] Serving on http://127.0.0.1:8000
+        [handlers:62] Start watching changes
 
-   If you develop inside a Vagrant virtual machine:
-   * add port forwarding to your Vagrantfile, e.g. `config.vm.network "forwarded_port", guest: 8000, host: 8000`
-   * use `mkdocs serve --dev-addr 0.0.0.0:8000` because the default localhost
-      IP does not get forwarded.
+    If you develop inside a Vagrant virtual machine:
+    * add port forwarding to your Vagrantfile, e.g. `config.vm.network "forwarded_port", guest: 8000, host: 8000`
+    * use `mkdocs serve --dev-addr 0.0.0.0:8000` because the default localhost
+       IP does not get forwarded.
diff --git a/docs/develop/Postcodes.md b/docs/develop/Postcodes.md
new file mode 100644 (file)
index 0000000..8b53216
--- /dev/null
@@ -0,0 +1,40 @@
+# Postcodes in Nominatim
+
+The blog post [Nominatim and Postcodes](https://www.openstreetmap.org/user/lonvia/diary/43143)
+describes the new handling in Nominatim 3.1.
+
+Postcode centroids (aka 'calculated postcodes') are generated by looking at all postcodes of
+a country, grouping them and calculating the geometric centroid. There is currently no logic
+to deal with extreme outliers (typos or other mistakes in OSM data). There is also no check
+if a postcodes adhere's to a countries format, e.g. if Swiss postcodes are 4 digits.
+
+
+## Regular updating calculated postcodes
+
+The script to rerun the calculation is `build/utils/update.php --calculate-postcodes` and
+runs once per night on nominatim.openstreetmap.org.
+
+
+## Finding places that share a specific postcode
+
+In the Nominatim database run
+
+```sql
+  SELECT osm_type, osm_id, class, type, st_x(centroid) as lon, st_y(centroid) at lat
+  FROM placex 
+  WHERE country_code='fr'
+    AND upper(trim (both ' ' from address->'postcode')) = '33210';
+```
+
+Alternatively on [Overpass](https://overpass-turbo.eu/) run the following query
+
+```
+[out:json][timeout:250];
+area["name"="France"]->.boundaryarea;
+(
+nwr(area.boundaryarea)["addr:postcode"="33210"];
+);
+out body;
+>;
+out skel qt;
+```
index cb00e2e85ef8c3f68479be8c9cf5513330e09859..5cf63f83414e2319622a8a80e772692b16d18cca 100644 (file)
@@ -22,6 +22,7 @@ pages:
         - 'Overview' : 'develop/overview.md'
         - 'OSM Data Import' : 'develop/Import.md'
         - 'Place Ranking' : 'develop/Ranking.md'
+        - 'Postcodes' : 'develop/Postcodes.md'
         - 'Documentation' : 'develop/Documentation.md'
     - 'External Data Sources':
         - 'Overview' : 'data-sources/overview.md'