pgLatLon
diff README.mkd @ 16:e319679cefbd
Added more operators for clusters (including polygons); Bugfix regarding missing entries in ecluster_ops operator class (index was not used for nearest-neighbor searches)
author | jbe |
---|---|
date | Fri Sep 09 19:22:30 2016 +0200 (2016-09-09) |
parents | 4489b4d7d9c8 |
children | 8a8d6dc44337 |
line diff
1.1 --- a/README.mkd Sat Sep 03 16:00:22 2016 +0200 1.2 +++ b/README.mkd Fri Sep 09 19:22:30 2016 +0200 1.3 @@ -1,4 +1,4 @@ 1.4 -pgLatLon v0.3 documentation 1.5 +pgLatLon v0.4 documentation 1.6 =========================== 1.7 1.8 pgLatLon is a spatial database extension for the PostgreSQL object-relational 1.9 @@ -56,6 +56,38 @@ 1.10 1.11 test_database=# CREATE EXTENSION latlon; 1.12 1.13 +### Updating 1.14 + 1.15 +Before updating your database cluster to a new version of pgLatLon, you may 1.16 +want to uninstall the old by calling "`make uninstall`" in the unpacked source 1.17 +code directory of your old pgLatLon version. You may also manually delete the 1.18 +`latlon-v????.so` files from your PostgreSQL library directory and the 1.19 +`latlon.control` and `latlon--*.sql` files from your PostgreSQL extension 1.20 +directory. 1.21 + 1.22 +The new version can be installed as described above. For altering an existing 1.23 +database to use the installed new version (mandatory if you removed the old 1.24 +version), execute the following SQL command in the respective databases: 1.25 + 1.26 + ALTER EXTENSION latlon UPDATE; 1.27 + 1.28 +If the update contains modifications to operator classes, it may be necessary 1.29 +to drop all indices on geographic data types first (you will get an error 1.30 +message in this case). These indices can be re-created after the update. 1.31 + 1.32 +Note that taking several update steps at once (e.g. updating from version 0.2 1.33 +directly to version 0.4) requires the intermediate versions to be installed 1.34 +(i.e. in this example version 0.3 would need to be installed). Whenever you 1.35 +install or uninstall an intermediate or old version, make sure to afterwards 1.36 +re-install the latest pgLatLon version to ensure that the `latlon.control` file 1.37 +is available and points to the latest version. 1.38 + 1.39 +If the update contains modifications to the internal data representation 1.40 +format, an update path might not be available. In this case, create a dump of 1.41 +your database, delete your database, and restore it from your dump. 1.42 + 1.43 +Be sure to always keep backups of all your data before attempting to update. 1.44 + 1.45 1.46 Reference 1.47 --------- 1.48 @@ -236,8 +268,11 @@ 1.49 * `epoint && ecircle` 1.50 * `epoint && ecluster` 1.51 * `ebox && ebox` 1.52 +* `ebox && ecircle` 1.53 +* `ebox && ecluster` 1.54 * `ecircle && ecircle` 1.55 * `ecircle && ecluster` 1.56 +* `ecluster && ecluster` 1.57 1.58 The `&&` operator is commutative, i.e. `a && b` is the same as `b && a`. Each 1.59 commutation is supported as well. 1.60 @@ -254,22 +289,41 @@ 1.61 * `ecircle &&+ ecluster` 1.62 * `ecluster &&+ ecluster` 1.63 1.64 -The `&&+` operator is commutative, i.e. `a &&+ b` is the same as `b &&+ a`. Each 1.65 -commutation is supported as well. 1.66 +The `&&+` operator is commutative, i.e. `a &&+ b` is the same as `b &&+ a`. 1.67 +Each commutation is supported as well. 1.68 1.69 Where two data types support both the `&&` and the `&&+` operator, the `&&+` 1.70 operator computes faster. 1.71 1.72 +#### Contains operator `@>` 1.73 + 1.74 +Tests if the object right of the operator is contained in the object left of 1.75 +the operator. Currently implemented for: 1.76 + 1.77 +* `ebox @> epoint` (alias for `&&`) 1.78 +* `ebox @> ecluster` 1.79 +* `ecluster @> epoint` (alias for `&&`) 1.80 +* `ecluster @> ebox` 1.81 +* `ecluster @> ecluster` 1.82 + 1.83 +The commutator of `@>` ("contains") is `<@` ("is contained in"), i.e. `a @> b` 1.84 +is the same as `b <@ a`. 1.85 + 1.86 #### Distance operator `<->` 1.87 1.88 Calculates the shortest distance between two geographic objects in meters (zero 1.89 if the objects are overlapping). Currently implemented for: 1.90 1.91 * `epoint <-> epoint` 1.92 +* `epoint <-> ebox` 1.93 * `epoint <-> ecircle` 1.94 * `epoint <-> ecluster` 1.95 +* `ebox <-> ebox` 1.96 +* `ebox <-> ecircle` 1.97 +* `ebox <-> ecluster` 1.98 * `ecircle <-> ecircle` 1.99 * `ecircle <-> ecluster` 1.100 +* `ecluster <-> ecluster` 1.101 1.102 The `<->` operator is commutative, i.e. `a <-> b` is the same as `b <-> a`. 1.103 Each commutation is supported as well.