mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-03-07 02:24:08 +00:00
Compare commits
75 Commits
b7d77b9b43
...
v5.2.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a13b62fb9 | ||
|
|
3ecda751c4 | ||
|
|
5d4c29b84b | ||
|
|
f1fbc04f33 | ||
|
|
353c985b9f | ||
|
|
2dda9079f0 | ||
|
|
4c91a0bc8d | ||
|
|
31c8ec6db0 | ||
|
|
e2330ff4c1 | ||
|
|
589825d37e | ||
|
|
a93113bc44 | ||
|
|
b042eca382 | ||
|
|
d202a8f7d8 | ||
|
|
af6386bd68 | ||
|
|
862bfdf6fb | ||
|
|
28029edc8b | ||
|
|
d6e9196177 | ||
|
|
e0a750e089 | ||
|
|
93b2a0f194 | ||
|
|
aa3fce6852 | ||
|
|
535ffc1e3f | ||
|
|
77ed4635f2 | ||
|
|
7715a9d500 | ||
|
|
58d570ca8a | ||
|
|
5a8aa6cce4 | ||
|
|
72592da0cc | ||
|
|
193d6c4173 | ||
|
|
4fd881bcb2 | ||
|
|
54620f9566 | ||
|
|
42b687f545 | ||
|
|
43ffceff27 | ||
|
|
2fb03cd103 | ||
|
|
8d3d24a1e4 | ||
|
|
8efdab1d6f | ||
|
|
1d1d80e1e3 | ||
|
|
670cf98f93 | ||
|
|
433c40cd68 | ||
|
|
a049569020 | ||
|
|
bf49f6a46f | ||
|
|
45a44f1411 | ||
|
|
5a2bfd7a19 | ||
|
|
fd12d2e9f3 | ||
|
|
3d0867ff16 | ||
|
|
177b16b89b | ||
|
|
0b7bde2500 | ||
|
|
7ac3591433 | ||
|
|
07c2907064 | ||
|
|
355cbcc7b8 | ||
|
|
8339c2b928 | ||
|
|
341c09ee95 | ||
|
|
b0b909be93 | ||
|
|
bf604e36ee | ||
|
|
3a50f749dd | ||
|
|
563255202d | ||
|
|
94d22bbdac | ||
|
|
32d26f12c4 | ||
|
|
0f324c8cb2 | ||
|
|
1e3b56d215 | ||
|
|
e855552e01 | ||
|
|
79a1907c49 | ||
|
|
91e345f77f | ||
|
|
d0ad65f696 | ||
|
|
e916d27b7c | ||
|
|
823ad5d279 | ||
|
|
048d571e46 | ||
|
|
f5e4b74c38 | ||
|
|
c2a311e69c | ||
|
|
5968f7d646 | ||
|
|
4cdd2526b6 | ||
|
|
4ff7696ed3 | ||
|
|
247afe1f56 | ||
|
|
6f74141fa4 | ||
|
|
75ccf97de3 | ||
|
|
196de9e974 | ||
|
|
6b627df4fb |
4
.github/workflows/ci-tests.yml
vendored
4
.github/workflows/ci-tests.yml
vendored
@@ -47,7 +47,7 @@ jobs:
|
|||||||
python: '3.9'
|
python: '3.9'
|
||||||
- flavour: ubuntu-24
|
- flavour: ubuntu-24
|
||||||
ubuntu: 24
|
ubuntu: 24
|
||||||
postgresql: 17
|
postgresql: 18
|
||||||
lua: '5.3'
|
lua: '5.3'
|
||||||
dependencies: apt
|
dependencies: apt
|
||||||
python: 'builtin'
|
python: 'builtin'
|
||||||
@@ -326,7 +326,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: ./Nominatim/.github/actions/setup-postgresql
|
- uses: ./Nominatim/.github/actions/setup-postgresql
|
||||||
with:
|
with:
|
||||||
postgresql-version: 17
|
postgresql-version: 18
|
||||||
|
|
||||||
- name: Install Python dependencies
|
- name: Install Python dependencies
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
36
ChangeLog
36
ChangeLog
@@ -1,3 +1,39 @@
|
|||||||
|
5.2.0
|
||||||
|
* increase minimum required Python to 3.9
|
||||||
|
* index and output entrances of buildings and areas (thanks @emlove)
|
||||||
|
* name tags used for creating display names are now configurable
|
||||||
|
(thanks @astridx)
|
||||||
|
* new pattern-replacement query preprocessor (thanks @TuringVerified)
|
||||||
|
* special phrases can now be filtered by presence of tags (thanks @anqixxx)
|
||||||
|
* lua import style now always includes tags required by Nominatim
|
||||||
|
* improved query time reporting and logging
|
||||||
|
* improve word matching for languages with no word boundaries
|
||||||
|
* POIs with addresses inherited from surrounding building are no
|
||||||
|
longer returned in the address layer
|
||||||
|
* avoid creating a directory for the tokenizer when not needed
|
||||||
|
* replace behave with pytest-bdd for BDD testing
|
||||||
|
* refactoring and performance improvements to query parsing
|
||||||
|
* various smaller updates to styles
|
||||||
|
* remove English as default language for South Korea
|
||||||
|
* remove Japanese word variants
|
||||||
|
* updated country names for Norwegians (thanks @Johannes-Andersen)
|
||||||
|
* remove support for deprecated osm2pgsql gazetteer style
|
||||||
|
* fix updating of importances (also needs to update search_name table)
|
||||||
|
* fix query for deletable endpoint to use index again
|
||||||
|
* fix reindexing of contained places when a boundary is deleted and reinstated
|
||||||
|
* fix difference computation error when updating postcodes
|
||||||
|
* bracket handling sanitizer no longer strips bracket terms in the middle of
|
||||||
|
name
|
||||||
|
* reduce precision of stored coordinates to 7-digits everywhere
|
||||||
|
* avoid ST_Relate as it seems buggy on some systems
|
||||||
|
* remove setting for logging queries in DB, no longer functional
|
||||||
|
* postcode updates no longer require a project directory (needed for tests)
|
||||||
|
* refactor locale handling code (thanks @anqixxx)
|
||||||
|
* code updates for newer Python (thanks @emmanuel-ferdman)
|
||||||
|
* better test coverage (thanks @asharmalik19)
|
||||||
|
* various fixes and improvements to documentation
|
||||||
|
(thanks @anqixxx, @dave-meyer, @hasandiwan)
|
||||||
|
|
||||||
5.1.0
|
5.1.0
|
||||||
* replace datrie with simple internal trie implementation
|
* replace datrie with simple internal trie implementation
|
||||||
* add pattern-based postcode parser for queries,
|
* add pattern-based postcode parser for queries,
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ versions.
|
|||||||
|
|
||||||
| Version | End of support for security updates |
|
| Version | End of support for security updates |
|
||||||
| ------- | ----------------------------------- |
|
| ------- | ----------------------------------- |
|
||||||
|
| 5.2.x | 2027-10-29 |
|
||||||
| 5.1.x | 2027-04-01 |
|
| 5.1.x | 2027-04-01 |
|
||||||
| 5.0.x | 2027-02-06 |
|
| 5.0.x | 2027-02-06 |
|
||||||
| 4.5.x | 2026-09-12 |
|
| 4.5.x | 2026-09-12 |
|
||||||
| 4.4.x | 2026-03-07 |
|
| 4.4.x | 2026-03-07 |
|
||||||
| 4.3.x | 2025-09-07 |
|
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
@@ -32,8 +32,7 @@ description of the nature and severity of the issue. **
|
|||||||
Patches for identified security issues are applied to all affected versions and
|
Patches for identified security issues are applied to all affected versions and
|
||||||
new minor versions are released. At the same time we release a statement at
|
new minor versions are released. At the same time we release a statement at
|
||||||
the [Nominatim blog](https://nominatim.org/blog/) describing the nature of the
|
the [Nominatim blog](https://nominatim.org/blog/) describing the nature of the
|
||||||
incident. Announcements will also be published at the
|
incident.
|
||||||
[geocoding mailinglist](https://lists.openstreetmap.org/listinfo/geocoding).
|
|
||||||
|
|
||||||
## List of Previous Incidents
|
## List of Previous Incidents
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,18 @@ breaking changes. **Please read them before running the migration.**
|
|||||||
and migrate to 4.3 first. Then you can migrate to the current
|
and migrate to 4.3 first. Then you can migrate to the current
|
||||||
version. It is strongly recommended to do a reimport instead.
|
version. It is strongly recommended to do a reimport instead.
|
||||||
|
|
||||||
|
## 5.1.0 -> 5.2.0
|
||||||
|
|
||||||
|
### Lua import style: required extratags removed
|
||||||
|
|
||||||
|
Tags that are required by Nominatim as extratags are now always included
|
||||||
|
independent of what is defined in the style. The line
|
||||||
|
|
||||||
|
flex.add_for_extratags('required')
|
||||||
|
|
||||||
|
is no longer required in custom styles and will throw an error. Simply
|
||||||
|
remove the line from your style.
|
||||||
|
|
||||||
## 4.5.0 -> 5.0.0
|
## 4.5.0 -> 5.0.0
|
||||||
|
|
||||||
### PHP frontend removed
|
### PHP frontend removed
|
||||||
|
|||||||
@@ -105,6 +105,13 @@ grouped by type.
|
|||||||
|
|
||||||
Include geometry of result.
|
Include geometry of result.
|
||||||
|
|
||||||
|
| Parameter | Value | Default |
|
||||||
|
|-----------| ----- | ------- |
|
||||||
|
| entrances | 0 or 1 | 0 |
|
||||||
|
|
||||||
|
When set to 1, include the tagged entrances in the result.
|
||||||
|
|
||||||
|
|
||||||
### Language of results
|
### Language of results
|
||||||
|
|
||||||
| Parameter | Value | Default |
|
| Parameter | Value | Default |
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ Only has an effect for JSON output formats.
|
|||||||
|
|
||||||
| Parameter | Value | Default |
|
| Parameter | Value | Default |
|
||||||
|-----------| ----- | ------- |
|
|-----------| ----- | ------- |
|
||||||
| addressdetails | 0 or 1 | 0 |
|
| addressdetails | 0 or 1 | 1 |
|
||||||
|
|
||||||
When set to 1, include a breakdown of the address into elements.
|
When set to 1, include a breakdown of the address into elements.
|
||||||
The exact content of the address breakdown depends on the output format.
|
The exact content of the address breakdown depends on the output format.
|
||||||
@@ -77,6 +77,12 @@ that is available in the database, e.g. wikipedia link, opening hours.
|
|||||||
When set to 1, include a full list of names for the result. These may include
|
When set to 1, include a full list of names for the result. These may include
|
||||||
language variants, older names, references and brand.
|
language variants, older names, references and brand.
|
||||||
|
|
||||||
|
| Parameter | Value | Default |
|
||||||
|
|-----------| ----- | ------- |
|
||||||
|
| entrances | 0 or 1 | 0 |
|
||||||
|
|
||||||
|
When set to 1, include the tagged entrances in the result.
|
||||||
|
|
||||||
|
|
||||||
### Language of results
|
### Language of results
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ The possible fields are:
|
|||||||
* `namedetails` - dictionary with full list of available names including ref etc.
|
* `namedetails` - dictionary with full list of available names including ref etc.
|
||||||
* `geojson`, `svg`, `geotext`, `geokml` - full geometry
|
* `geojson`, `svg`, `geotext`, `geokml` - full geometry
|
||||||
(only with the appropriate `polygon_*` parameter)
|
(only with the appropriate `polygon_*` parameter)
|
||||||
|
* `entrances` - array of objects representing tagged entrances for the object, or
|
||||||
|
null if none are found (only with `entrances=1`)
|
||||||
|
|
||||||
## JSONv2
|
## JSONv2
|
||||||
|
|
||||||
@@ -87,6 +89,8 @@ The properties object has the following fields:
|
|||||||
* `extratags` - dictionary with additional useful tags like `website` or `maxspeed`
|
* `extratags` - dictionary with additional useful tags like `website` or `maxspeed`
|
||||||
(only with `extratags=1`)
|
(only with `extratags=1`)
|
||||||
* `namedetails` - dictionary with full list of available names including ref etc.
|
* `namedetails` - dictionary with full list of available names including ref etc.
|
||||||
|
* `entrances` - array of objects representing tagged entrances for the object, or
|
||||||
|
null if none are found (only with `entrances=1`)
|
||||||
|
|
||||||
Use `polygon_geojson` to output the full geometry of the object instead
|
Use `polygon_geojson` to output the full geometry of the object instead
|
||||||
of the centroid.
|
of the centroid.
|
||||||
@@ -110,6 +114,8 @@ The following feature attributes are implemented:
|
|||||||
* `admin` - list of localised names of administrative boundaries (only with `addressdetails=1`)
|
* `admin` - list of localised names of administrative boundaries (only with `addressdetails=1`)
|
||||||
* `extra` - dictionary with additional useful tags like `website` or `maxspeed`
|
* `extra` - dictionary with additional useful tags like `website` or `maxspeed`
|
||||||
(only with `extratags=1`)
|
(only with `extratags=1`)
|
||||||
|
* `entrances` - array of objects representing tagged entrances for the object, or
|
||||||
|
null if none are found (only with `entrances=1`)
|
||||||
|
|
||||||
|
|
||||||
Use `polygon_geojson` to output the full geometry of the object instead
|
Use `polygon_geojson` to output the full geometry of the object instead
|
||||||
@@ -162,8 +168,8 @@ The place information can be found in the `result` element. The attributes of th
|
|||||||
The full address of the result can be found in the content of the
|
The full address of the result can be found in the content of the
|
||||||
`result` element as a comma-separated list.
|
`result` element as a comma-separated list.
|
||||||
|
|
||||||
Additional information requested with `addressdetails=1`, `extratags=1` and
|
Additional information requested with `addressdetails=1`, `extratags=1`,
|
||||||
`namedetails=1` can be found in extra elements.
|
`namedetails=1`, and `entrances=1` can be found in extra elements.
|
||||||
|
|
||||||
### Search and Lookup
|
### Search and Lookup
|
||||||
|
|
||||||
@@ -224,9 +230,9 @@ be more than one. The attributes of that element contain:
|
|||||||
When `addressdetails=1` is requested, the localised address parts appear
|
When `addressdetails=1` is requested, the localised address parts appear
|
||||||
as subelements with the type of the address part.
|
as subelements with the type of the address part.
|
||||||
|
|
||||||
Additional information requested with `extratags=1` and `namedetails=1` can
|
Additional information requested with `extratags=1`, `namedetails=1`, and
|
||||||
be found in extra elements as sub-element of `extratags` and `namedetails`
|
`entrances=1` can be found in extra elements as sub-element of `extratags`,
|
||||||
respectively.
|
`namedetails`, and `entrances` respectively.
|
||||||
|
|
||||||
|
|
||||||
## Notes on field values
|
## Notes on field values
|
||||||
@@ -303,3 +309,78 @@ with a designation label. Per default the following labels may appear:
|
|||||||
|
|
||||||
They roughly correspond to the classification of the OpenStreetMap data
|
They roughly correspond to the classification of the OpenStreetMap data
|
||||||
according to either the `place` tag or the main key of the object.
|
according to either the `place` tag or the main key of the object.
|
||||||
|
|
||||||
|
### entrances
|
||||||
|
|
||||||
|
Entrance details in the xml and json formats return the latitude and longitude
|
||||||
|
of the entrance, the osm node ID, the [type of
|
||||||
|
entrance](https://wiki.openstreetmap.org/wiki/Key:entrance), and any extra tags
|
||||||
|
associated with the entrance node.
|
||||||
|
|
||||||
|
* osm_id
|
||||||
|
* type
|
||||||
|
* lat
|
||||||
|
* lon
|
||||||
|
* extratags
|
||||||
|
|
||||||
|
They roughly correspond to the classification of the OpenStreetMap data
|
||||||
|
according to either the `place` tag or the main key of the object.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
##### JSON
|
||||||
|
|
||||||
|
[https://nominatim.openstreetmap.org/details?osmtype=W&osmid=32619803&entrances=1&format=json](https://nominatim.openstreetmap.org/details?osmtype=W&osmid=32619803&entrances=1&format=json)
|
||||||
|
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"place_id": 124325848,
|
||||||
|
"parent_place_id": 123936289,
|
||||||
|
"osm_type": "W",
|
||||||
|
"osm_id": 32619803,
|
||||||
|
"category": "shop",
|
||||||
|
"type": "supermarket",
|
||||||
|
"admin_level": 15,
|
||||||
|
"localname": "PENNY",
|
||||||
|
...
|
||||||
|
"entrances": [
|
||||||
|
{
|
||||||
|
"osm_id": 1733488238,
|
||||||
|
"type": "yes",
|
||||||
|
"lat": "51.0466704",
|
||||||
|
"lon": "12.8077106",
|
||||||
|
"extratags": {
|
||||||
|
"foot": "yes"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"osm_id": 1733488256,
|
||||||
|
"type": "main",
|
||||||
|
"lat": "51.0467197",
|
||||||
|
"lon": "12.8078448",
|
||||||
|
"extratags": {
|
||||||
|
"foot": "yes"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"osm_id": 1733498087,
|
||||||
|
"type": "exit",
|
||||||
|
"lat": "51.0467081",
|
||||||
|
"lon": "12.8078131",
|
||||||
|
"extratags": {
|
||||||
|
"foot": "yes"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"osm_id": 7914950851,
|
||||||
|
"type": "service",
|
||||||
|
"lat": "51.0468487",
|
||||||
|
"lon": "12.8075876",
|
||||||
|
"extratags": {
|
||||||
|
"access": "delivery"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
@@ -98,6 +98,12 @@ that is available in the database, e.g. wikipedia link, opening hours.
|
|||||||
When set to 1, include a full list of names for the result. These may include
|
When set to 1, include a full list of names for the result. These may include
|
||||||
language variants, older names, references and brand.
|
language variants, older names, references and brand.
|
||||||
|
|
||||||
|
| Parameter | Value | Default |
|
||||||
|
|-----------| ----- | ------- |
|
||||||
|
| entrances | 0 or 1 | 0 |
|
||||||
|
|
||||||
|
When set to 1, include the tagged entrances in the result.
|
||||||
|
|
||||||
|
|
||||||
### Language of results
|
### Language of results
|
||||||
|
|
||||||
@@ -146,7 +152,7 @@ In terms of address details the zoom levels are as follows:
|
|||||||
|
|
||||||
| Parameter | Value | Default |
|
| Parameter | Value | Default |
|
||||||
|-----------| ----- | ------- |
|
|-----------| ----- | ------- |
|
||||||
| layer | comma-separated list of: `address`, `poi`, `railway`, `natural`, `manmade` | _unset_ (no restriction) |
|
| layer | comma-separated list of: `address`, `poi`, `railway`, `natural`, `manmade` | `address,poi` |
|
||||||
|
|
||||||
The layer filter allows to select places by themes.
|
The layer filter allows to select places by themes.
|
||||||
|
|
||||||
@@ -212,7 +218,7 @@ This overrides the specified machine readable format.
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
* [https://nominatim.openstreetmap.org/reverse?format=xml&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1](https://nominatim.openstreetmap.org/reverse?format=xml&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1)
|
* [https://nominatim.openstreetmap.org/reverse?format=xml&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1&layer=address](https://nominatim.openstreetmap.org/reverse?format=xml&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1&layer=address)
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<reversegeocode timestamp="Fri, 06 Nov 09 16:33:54 +0000" querystring="...">
|
<reversegeocode timestamp="Fri, 06 Nov 09 16:33:54 +0000" querystring="...">
|
||||||
@@ -235,7 +241,7 @@ This overrides the specified machine readable format.
|
|||||||
|
|
||||||
##### Example with `format=jsonv2`
|
##### Example with `format=jsonv2`
|
||||||
|
|
||||||
* [https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-34.44076&lon=-58.70521](https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-34.44076&lon=-58.70521)
|
* [https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-34.44076&lon=-58.70521&layer=address](https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-34.44076&lon=-58.70521&layer=address)
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -267,7 +273,7 @@ This overrides the specified machine readable format.
|
|||||||
|
|
||||||
##### Example with `format=geojson`
|
##### Example with `format=geojson`
|
||||||
|
|
||||||
* [https://nominatim.openstreetmap.org/reverse?format=geojson&lat=44.50155&lon=11.33989](https://nominatim.openstreetmap.org/reverse?format=geojson&lat=44.50155&lon=11.33989)
|
* [https://nominatim.openstreetmap.org/reverse?format=geojson&lat=44.50155&lon=11.33989&layer=address](https://nominatim.openstreetmap.org/reverse?format=geojson&lat=44.50155&lon=11.33989&layer=address)
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -319,7 +325,7 @@ This overrides the specified machine readable format.
|
|||||||
|
|
||||||
##### Example with `format=geocodejson`
|
##### Example with `format=geocodejson`
|
||||||
|
|
||||||
[https://nominatim.openstreetmap.org/reverse?format=geocodejson&lat=60.2299&lon=11.1663](https://nominatim.openstreetmap.org/reverse?format=geocodejson&lat=60.2299&lon=11.1663)
|
[https://nominatim.openstreetmap.org/reverse?format=geocodejson&lat=60.2299&lon=11.1663&layer=address](https://nominatim.openstreetmap.org/reverse?format=geocodejson&lat=60.2299&lon=11.1663&layer=address)
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -136,6 +136,12 @@ that is available in the database, e.g. wikipedia link, opening hours.
|
|||||||
When set to 1, include a full list of names for the result. These may include
|
When set to 1, include a full list of names for the result. These may include
|
||||||
language variants, older names, references and brand.
|
language variants, older names, references and brand.
|
||||||
|
|
||||||
|
| Parameter | Value | Default |
|
||||||
|
|-----------| ----- | ------- |
|
||||||
|
| entrances | 0 or 1 | 0 |
|
||||||
|
|
||||||
|
When set to 1, include the tagged entrances in the result.
|
||||||
|
|
||||||
|
|
||||||
### Language of results
|
### Language of results
|
||||||
|
|
||||||
|
|||||||
@@ -68,15 +68,16 @@ When Nominatim processes an OSM object, it looks for four kinds of tags:
|
|||||||
The _main tags_ classify what kind of place the OSM object represents. One
|
The _main tags_ classify what kind of place the OSM object represents. One
|
||||||
OSM object can have more than one main tag. In such case one database entry
|
OSM object can have more than one main tag. In such case one database entry
|
||||||
is created for each main tag. _Name tags_ represent searchable names of the
|
is created for each main tag. _Name tags_ represent searchable names of the
|
||||||
place. _Address tags_ are used to compute the address hierarchy of the place.
|
place. _Address tags_ are used to compute the address information of the place.
|
||||||
Address tags are used for searching and for creating a display name of the place.
|
Address tags are used for searching and for creating a display name of the place.
|
||||||
_Extra tags_ are any tags that are not directly related to search but
|
_Extra tags_ are any tags that are not directly related to search but
|
||||||
contain interesting additional information.
|
contain interesting additional information. These are just saved in the database
|
||||||
|
and may be returned with the result [on request](../api/Search.md#output-details).
|
||||||
|
|
||||||
!!! danger
|
!!! danger
|
||||||
Some tags in the extratags category are used by Nominatim to better
|
Some tags in the extratags category are used by Nominatim to better
|
||||||
classify the place. You want to make sure these are always present
|
classify the place. These tags will always be added, independent of
|
||||||
in custom styles.
|
any settings in the style.
|
||||||
|
|
||||||
Configuring the style means deciding which key and/or key/value is used
|
Configuring the style means deciding which key and/or key/value is used
|
||||||
in which category.
|
in which category.
|
||||||
@@ -266,11 +267,7 @@ in turn take precedence over prefix matches.
|
|||||||
|
|
||||||
##### Presets
|
##### Presets
|
||||||
|
|
||||||
| Name | Description |
|
Accepts all [presets from ignored tags](#presets_1).
|
||||||
| :----- | :---------- |
|
|
||||||
| required | Tags that Nominatim will use for various computations when present in extratags. Always include these. |
|
|
||||||
|
|
||||||
In addition, all [presets from ignored tags](#presets_1) are accepted.
|
|
||||||
|
|
||||||
### General pre-filtering
|
### General pre-filtering
|
||||||
|
|
||||||
@@ -426,6 +423,56 @@ is added for extratags.
|
|||||||
already delete the tiger tags with `set_prefilters()` because that
|
already delete the tiger tags with `set_prefilters()` because that
|
||||||
would remove tiger:county before the address tags are processed.
|
would remove tiger:county before the address tags are processed.
|
||||||
|
|
||||||
|
## Filling additional tables
|
||||||
|
|
||||||
|
Most of the OSM objects are saved in the main `place` table for further
|
||||||
|
processing. In addition to that, there are some smaller tables that save
|
||||||
|
specialised information. The content of these tables can be customized as
|
||||||
|
well.
|
||||||
|
|
||||||
|
### Entrance table
|
||||||
|
|
||||||
|
The table `place_entrance` saves information about OSM nodes that represent
|
||||||
|
an entrance. This data is later mingled with buildings and other areas and
|
||||||
|
can be returned [on request](../api/Search.md#output-details). The table
|
||||||
|
saves the type of entrance as well as a set of custom extra tags.
|
||||||
|
|
||||||
|
The function `set_entrance_filter()` can be used to customize the table's
|
||||||
|
content.
|
||||||
|
|
||||||
|
When called without any parameter, then filling the entrance table will be
|
||||||
|
disabled. When called with a preset name, the appropriate preset will be
|
||||||
|
applied.
|
||||||
|
|
||||||
|
To create a custom configuration, call the function
|
||||||
|
with a table with the following fields:
|
||||||
|
|
||||||
|
* __main_tags__ is a list of tags that mark an entrance node. The value of the
|
||||||
|
first tag found in the list will be used as the entrance type.
|
||||||
|
* __extra_include__ is an optional list of tags to be added to the extratags
|
||||||
|
for this entrance. When left out, all tags except for the ones defined
|
||||||
|
in 'main_tags' will be included. To disable saving of extra tags, set
|
||||||
|
this to the empty list.
|
||||||
|
* __extra_exclude__ defines an optional list of tags to drop before including
|
||||||
|
the remaining tags as extratags. Note that the tags defined in 'main_tags'
|
||||||
|
will always be excluded, independently of this setting.
|
||||||
|
|
||||||
|
To have even more fine-grained control over the output, you can also hand
|
||||||
|
in a callback for processing entrance information. The callback function
|
||||||
|
receives a single parameter, the
|
||||||
|
[osm2pgsql object](https://osm2pgsql.org/doc/manual.html#processing-callbacks).
|
||||||
|
This object itself must not be modified. The callback should return either
|
||||||
|
`nil` when the object is not an entrance. Or it returns a table with a
|
||||||
|
mandatory `entrance` field containing a string with the type of entrance
|
||||||
|
and an optional `extratags` field with a simple key-value table of extra
|
||||||
|
information.
|
||||||
|
|
||||||
|
##### Presets
|
||||||
|
|
||||||
|
| Name | Description |
|
||||||
|
| :----- | :---------- |
|
||||||
|
| default | Standard configuration used with `full` and `extratags` styles. |
|
||||||
|
|
||||||
## Customizing osm2pgsql callbacks
|
## Customizing osm2pgsql callbacks
|
||||||
|
|
||||||
osm2pgsql expects the flex style to implement three callbacks, one process
|
osm2pgsql expects the flex style to implement three callbacks, one process
|
||||||
|
|||||||
@@ -648,21 +648,53 @@ See also [NOMINATIM_DEFAULT_LANGUAGE](#nominatim_default_language).
|
|||||||
| **Description:** | Log requests into a file |
|
| **Description:** | Log requests into a file |
|
||||||
| **Format:** | path |
|
| **Format:** | path |
|
||||||
| **Default:** | _empty_ (logging disabled) |
|
| **Default:** | _empty_ (logging disabled) |
|
||||||
| **After Changes:** | run `nominatim refresh --website` |
|
|
||||||
|
|
||||||
Enable logging of requests into a file with this setting by setting the log
|
Enable logging of requests into a file with this setting by setting the log
|
||||||
file where to log to. A relative file name is assumed to be relative to
|
file where to log to. A relative file name is assumed to be relative to
|
||||||
the project directory.
|
the project directory. The format of the log output can be set
|
||||||
|
with NOMINATIM_LOG_FORMAT.
|
||||||
|
|
||||||
|
#### NOMINATIM_LOG_FORMAT
|
||||||
|
|
||||||
The entries in the log file have the following format:
|
| Summary | |
|
||||||
|
| -------------- | --------------------------------------------------- |
|
||||||
|
| **Description:** | Log requests into a file |
|
||||||
|
| **Format:** | [Python String Format](https://docs.python.org/3/library/string.html#formatstrings) string |
|
||||||
|
| **Default:** | `[{start}] {total_time:.4f} {results_total} {endpoint} "{query_string}"` |
|
||||||
|
|
||||||
<request time> <execution time in s> <number of results> <type> "<query string>"
|
Describes the content of a log line for a single request. The format
|
||||||
|
must be readable by Python's format function. Nominatim provides a number
|
||||||
|
of metrics than can be logged. The default set of metrics is the following:
|
||||||
|
|
||||||
|
/// html | div.simple-table
|
||||||
|
| name | type | Description |
|
||||||
|
| --------------- | ------ | ------------|
|
||||||
|
| start | time | Point in time when the request arrived. |
|
||||||
|
| end | time | Point in time when the request was done. |
|
||||||
|
| query_start | time | Point in time when processing started. |
|
||||||
|
| total_time | float | Total time in seconds to handle the request. |
|
||||||
|
| wait_time | float | Time in seconds the request waited for a database connection to be available. |
|
||||||
|
| query_time | float | Total time in seconds to process the request once a connection was available. |
|
||||||
|
| results_total | int | Number of results found. |
|
||||||
|
| endpoint | string | API endpoint used. |
|
||||||
|
| query_string | string | Raw query string received. |
|
||||||
|
///
|
||||||
|
|
||||||
|
Variables of type 'time' contain a UTC timestamp string in ISO format.
|
||||||
|
|
||||||
|
Nominatim also exposes additional metrics to help with development. These
|
||||||
|
are subject to change between versions:
|
||||||
|
|
||||||
|
/// html | div.simple-table
|
||||||
|
| name | type | Description |
|
||||||
|
| ------------------------- | ------ | ------------|
|
||||||
|
| search_rounds | int | Total number of searches executed for the request. |
|
||||||
|
| search_min_penalty | float | Minimal possible penalty for the request. |
|
||||||
|
| search_first_result_round | int | Number of first search to yield any result. |
|
||||||
|
| search_min_result_penalty | float | Minimal penalty by a result found. |
|
||||||
|
| search_best_penalty_round | int | Search round that yielded the best penalty result. |
|
||||||
|
///
|
||||||
|
|
||||||
Request time is the time when the request was started. The execution time is
|
|
||||||
given in seconds and includes the entire time the query was queued and executed
|
|
||||||
in the frontend.
|
|
||||||
type contains the name of the endpoint used.
|
|
||||||
|
|
||||||
#### NOMINATIM_DEBUG_SQL
|
#### NOMINATIM_DEBUG_SQL
|
||||||
|
|
||||||
|
|||||||
@@ -39,3 +39,9 @@ th {
|
|||||||
filter: grayscale(100%);
|
filter: grayscale(100%);
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.simple-table table:not([class]) th,
|
||||||
|
.simple-table table:not([class]) td {
|
||||||
|
padding: 2px 4px;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|||||||
@@ -268,13 +268,17 @@ name out of it:
|
|||||||
'Brugges'
|
'Brugges'
|
||||||
```
|
```
|
||||||
|
|
||||||
The `address_row` field has a helper function to apply the function to all
|
The `address_row` field has a helper function to compute the display name for each Address Line
|
||||||
its members and save the result in the `local_name` field. It also returns
|
component based on its `local_name` field. This is then utilized by the overall `result` object,
|
||||||
all the localized names as a convenient simple list. This list can be used
|
which has a helper function to apply the function to all its ‘address_row’ members and saves
|
||||||
to create a human-readable output:
|
the result in the `locale_name` field.
|
||||||
|
|
||||||
|
However, in order to set this `local_name` field in a preferred language, you must use the `Locale`
|
||||||
|
object which contains the function `localize_results`, which explicitly sets each `local_name field`.
|
||||||
|
|
||||||
``` python
|
``` python
|
||||||
>>> address_parts = results[0].address_rows.localize(locale)
|
>>> Locales().localize_results(results)
|
||||||
|
>>> address_parts = results[0].address_rows
|
||||||
>>> print(', '.join(address_parts))
|
>>> print(', '.join(address_parts))
|
||||||
Bruges, Flandre-Occidentale, Flandre, Belgique
|
Bruges, Flandre-Occidentale, Flandre, Belgique
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -49,7 +49,11 @@ its address.
|
|||||||
|
|
||||||
## Localization
|
## Localization
|
||||||
|
|
||||||
Results are always returned with the full list of available names.
|
Results are always returned with the full list of available names. However, the
|
||||||
|
default `locale_name` must be explicitly set using the `localize` function within
|
||||||
|
`Locales`. This parses through the full list of available names to find the one
|
||||||
|
most preferred by the user. Once this is set, the user can simply use the
|
||||||
|
`display_name` field within a `Result` object to retrive the localized name.
|
||||||
|
|
||||||
### Locale
|
### Locale
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,9 @@ local NAME_FILTER = nil
|
|||||||
local ADDRESS_TAGS = {}
|
local ADDRESS_TAGS = {}
|
||||||
local ADDRESS_FILTER = nil
|
local ADDRESS_FILTER = nil
|
||||||
local EXTRATAGS_FILTER
|
local EXTRATAGS_FILTER
|
||||||
|
local REQUIRED_EXTRATAGS_FILTER
|
||||||
local POSTCODE_FALLBACK = true
|
local POSTCODE_FALLBACK = true
|
||||||
|
local ENTRANCE_FUNCTION = nil
|
||||||
|
|
||||||
-- This file can also be directly require'd instead of running it under
|
-- This file can also be directly require'd instead of running it under
|
||||||
-- the themepark framework. In that case the first parameter is usually
|
-- the themepark framework. In that case the first parameter is usually
|
||||||
@@ -40,37 +42,51 @@ if type(themepark) ~= 'table' then
|
|||||||
themepark = nil
|
themepark = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
-- The single place table.
|
-- The place tables carry the raw OSM information.
|
||||||
local place_table_definition = {
|
local table_definitions = {
|
||||||
name = "place",
|
place = {
|
||||||
ids = { type = 'any', id_column = 'osm_id', type_column = 'osm_type' },
|
ids = { type = 'any', id_column = 'osm_id', type_column = 'osm_type' },
|
||||||
columns = {
|
columns = {
|
||||||
{ column = 'class', type = 'text', not_null = true },
|
{ column = 'class', type = 'text', not_null = true },
|
||||||
{ column = 'type', type = 'text', not_null = true },
|
{ column = 'type', type = 'text', not_null = true },
|
||||||
{ column = 'admin_level', type = 'smallint' },
|
{ column = 'admin_level', type = 'smallint' },
|
||||||
{ column = 'name', type = 'hstore' },
|
{ column = 'name', type = 'hstore' },
|
||||||
{ column = 'address', type = 'hstore' },
|
{ column = 'address', type = 'hstore' },
|
||||||
{ column = 'extratags', type = 'hstore' },
|
{ column = 'extratags', type = 'hstore' },
|
||||||
{ column = 'geometry', type = 'geometry', projection = 'WGS84', not_null = true },
|
{ column = 'geometry', type = 'geometry', projection = 'WGS84', not_null = true },
|
||||||
|
},
|
||||||
|
indexes = {}
|
||||||
},
|
},
|
||||||
data_tablespace = os.getenv("NOMINATIM_TABLESPACE_PLACE_DATA"),
|
place_entrance = {
|
||||||
index_tablespace = os.getenv("NOMINATIM_TABLESPACE_PLACE_INDEX"),
|
ids = { type = 'node', id_column = 'osm_id' },
|
||||||
indexes = {}
|
columns = {
|
||||||
|
{ column = 'type', type = 'text', not_null = true },
|
||||||
|
{ column = 'extratags', type = 'hstore' },
|
||||||
|
{ column = 'geometry', type = 'geometry', projection = 'WGS84', not_null = true }
|
||||||
|
},
|
||||||
|
indexes = {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
local insert_row
|
local insert_row = {}
|
||||||
local script_path = debug.getinfo(1, "S").source:match("@?(.*/)")
|
local script_path = debug.getinfo(1, "S").source:match("@?(.*/)")
|
||||||
local PRESETS = loadfile(script_path .. 'presets.lua')()
|
local PRESETS = loadfile(script_path .. 'presets.lua')()
|
||||||
|
|
||||||
if themepark then
|
for table_name, table_definition in pairs(table_definitions) do
|
||||||
themepark:add_table(place_table_definition)
|
table_definition.name = table_name
|
||||||
insert_row = function(columns)
|
table_definition.data_tablespace = os.getenv("NOMINATIM_TABLESPACE_PLACE_DATA")
|
||||||
themepark:insert('place', columns, {}, {})
|
table_definition.index_tablespace = os.getenv("NOMINATIM_TABLESPACE_PLACE_INDEX")
|
||||||
end
|
|
||||||
else
|
if themepark then
|
||||||
local place_table = osm2pgsql.define_table(place_table_definition)
|
themepark:add_table(table_definition)
|
||||||
insert_row = function(columns)
|
insert_row[table_name] = function(columns)
|
||||||
place_table:insert(columns)
|
themepark:insert(table_name, columns, {}, {})
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local place_table = osm2pgsql.define_table(table_definition)
|
||||||
|
insert_row[table_name] = function(columns)
|
||||||
|
place_table:insert(columns)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -150,24 +166,6 @@ local function address_fallback(place)
|
|||||||
return place:clone{names=names}
|
return place:clone{names=names}
|
||||||
end
|
end
|
||||||
|
|
||||||
--------- Built-in extratags transformation functions ---------------
|
|
||||||
|
|
||||||
local function default_extratags_filter(p, k)
|
|
||||||
-- Default handling is to copy over place tag for boundaries.
|
|
||||||
-- Nominatim needs this.
|
|
||||||
if k ~= 'boundary' or p.intags.place == nil then
|
|
||||||
return p.extratags
|
|
||||||
end
|
|
||||||
|
|
||||||
local extra = { place = p.intags.place }
|
|
||||||
for kin, vin in pairs(p.extratags) do
|
|
||||||
extra[kin] = vin
|
|
||||||
end
|
|
||||||
|
|
||||||
return extra
|
|
||||||
end
|
|
||||||
EXTRATAGS_FILTER = default_extratags_filter
|
|
||||||
|
|
||||||
----------------- other helper functions -----------------------------
|
----------------- other helper functions -----------------------------
|
||||||
|
|
||||||
local function lookup_prefilter_classification(k, v)
|
local function lookup_prefilter_classification(k, v)
|
||||||
@@ -429,18 +427,25 @@ function Place:write_row(k, v)
|
|||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
|
|
||||||
local extratags = EXTRATAGS_FILTER(self, k, v)
|
local extra = EXTRATAGS_FILTER(self, k, v) or {}
|
||||||
if not (extratags and next(extratags)) then
|
|
||||||
extratags = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
insert_row{
|
for tk, tv in pairs(self.object.tags) do
|
||||||
|
if REQUIRED_EXTRATAGS_FILTER(tk, tv) and extra[tk] == nil then
|
||||||
|
extra[tk] = tv
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if extra and next(extra) == nil then
|
||||||
|
extra = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
insert_row.place{
|
||||||
class = k,
|
class = k,
|
||||||
type = v,
|
type = v,
|
||||||
admin_level = self.admin_level,
|
admin_level = self.admin_level,
|
||||||
name = next(self.names) and self.names,
|
name = next(self.names) and self.names,
|
||||||
address = next(self.address) and self.address,
|
address = next(self.address) and self.address,
|
||||||
extratags = extratags,
|
extratags = extra,
|
||||||
geometry = self.geometry
|
geometry = self.geometry
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -593,6 +598,16 @@ end
|
|||||||
|
|
||||||
-- Process functions for all data types
|
-- Process functions for all data types
|
||||||
function module.process_node(object)
|
function module.process_node(object)
|
||||||
|
if ENTRANCE_FUNCTION ~= nil then
|
||||||
|
local entrance_info = ENTRANCE_FUNCTION(object)
|
||||||
|
if entrance_info ~= nil then
|
||||||
|
insert_row.place_entrance{
|
||||||
|
type = entrance_info.entrance,
|
||||||
|
extratags = entrance_info.extratags,
|
||||||
|
geometry = object:as_point()
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function geom_func(o)
|
local function geom_func(o)
|
||||||
return o:as_point()
|
return o:as_point()
|
||||||
@@ -687,6 +702,15 @@ function module.process_tags(o)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--------- Extratags post-processing functions ---------------
|
||||||
|
|
||||||
|
local function default_extratags_filter(p, k)
|
||||||
|
return p.extratags
|
||||||
|
end
|
||||||
|
|
||||||
|
EXTRATAGS_FILTER = default_extratags_filter
|
||||||
|
REQUIRED_EXTRATAGS_FILTER = module.tag_match(PRESETS.EXTRATAGS)
|
||||||
|
|
||||||
--------- Convenience functions for simple style configuration -----------------
|
--------- Convenience functions for simple style configuration -----------------
|
||||||
|
|
||||||
function module.set_prefilters(data)
|
function module.set_prefilters(data)
|
||||||
@@ -717,7 +741,7 @@ end
|
|||||||
function module.add_for_extratags(data)
|
function module.add_for_extratags(data)
|
||||||
if type(data) == 'string' then
|
if type(data) == 'string' then
|
||||||
local preset = data
|
local preset = data
|
||||||
data = PRESETS.EXTRATAGS[data] or PRESETS.IGNORE_KEYS[data]
|
data = PRESETS.IGNORE_KEYS[data]
|
||||||
if data == nil then
|
if data == nil then
|
||||||
error('Unknown preset for extratags: ' .. preset)
|
error('Unknown preset for extratags: ' .. preset)
|
||||||
end
|
end
|
||||||
@@ -917,6 +941,99 @@ function module.set_relation_types(data)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function module.set_entrance_filter(data)
|
||||||
|
if data == nil or type(data) == 'function' then
|
||||||
|
ENTRANCE_FUNCTION = data
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if type(data) == 'string' then
|
||||||
|
local preset = data
|
||||||
|
data = PRESETS.ENTRANCE_TABLE[data]
|
||||||
|
if data == nil then
|
||||||
|
error('Unknown preset for entrance table: ' .. preset)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
ENTRANCE_FUNCTION = nil
|
||||||
|
|
||||||
|
if data.main_tags ~= nil and next(data.main_tags) ~= nil then
|
||||||
|
if data.extra_include ~= nil and next(data.extra_include) == nil then
|
||||||
|
-- shortcut: no extra tags requested
|
||||||
|
ENTRANCE_FUNCTION = function(o)
|
||||||
|
for _, v in ipairs(data.main_tags) do
|
||||||
|
if o.tags[v] ~= nil then
|
||||||
|
return {entrance = o.tags[v]}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if data.extra_include ~= nil then
|
||||||
|
local tags = {}
|
||||||
|
for _, v in pairs(data.extra_include) do
|
||||||
|
tags[v] = true
|
||||||
|
end
|
||||||
|
if data.extra_exclude ~= nil then
|
||||||
|
for _, v in pairs(data.extra_exclude) do
|
||||||
|
tags[v] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for _, v in pairs(data.main_tags) do
|
||||||
|
tags[v] = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
ENTRANCE_FUNCTION = function(o)
|
||||||
|
for _, v in ipairs(data.main_tags) do
|
||||||
|
if o.tags[v] ~= nil then
|
||||||
|
local entrance = o.tags[v]
|
||||||
|
local extra = {}
|
||||||
|
for k, v in pairs(tags) do
|
||||||
|
extra[k] = o.tags[k]
|
||||||
|
end
|
||||||
|
if next(extra) == nil then
|
||||||
|
extra = nil
|
||||||
|
end
|
||||||
|
return {entrance = entrance, extratags = extra}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local notags = {}
|
||||||
|
if data.extra_exclude ~= nil then
|
||||||
|
for _, v in pairs(data.extra_exclude) do
|
||||||
|
notags[v] = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for _, v in pairs(data.main_tags) do
|
||||||
|
notags[v] = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
ENTRANCE_FUNCTION = function(o)
|
||||||
|
for _, v in ipairs(data.main_tags) do
|
||||||
|
if o.tags[v] ~= nil then
|
||||||
|
local entrance = o.tags[v]
|
||||||
|
local extra = {}
|
||||||
|
for k, v in pairs(o.tags) do
|
||||||
|
if notags[k] ~= 1 then
|
||||||
|
extra[k] = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if next(extra) == nil then
|
||||||
|
extra = nil
|
||||||
|
end
|
||||||
|
return {entrance = entrance, extratags = extra}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function module.get_taginfo()
|
function module.get_taginfo()
|
||||||
return {main = MAIN_KEYS, name = NAMES, address = ADDRESS_TAGS}
|
return {main = MAIN_KEYS, name = NAMES, address = ADDRESS_TAGS}
|
||||||
|
|||||||
@@ -200,6 +200,8 @@ module.MAIN_TAGS_POIS = function (group)
|
|||||||
leisure = {'always',
|
leisure = {'always',
|
||||||
nature_reserve = 'fallback',
|
nature_reserve = 'fallback',
|
||||||
swimming_pool = 'named',
|
swimming_pool = 'named',
|
||||||
|
garden = 'named',
|
||||||
|
common = 'named',
|
||||||
no = group},
|
no = group},
|
||||||
lock = {yes = lock_transform},
|
lock = {yes = lock_transform},
|
||||||
man_made = {pier = 'always',
|
man_made = {pier = 'always',
|
||||||
@@ -362,7 +364,7 @@ module.IGNORE_KEYS.metatags = {'note', 'note:*', 'source', 'source:*', '*source'
|
|||||||
'tiger:cfcc', 'tiger:reviewed', 'nysgissam:*',
|
'tiger:cfcc', 'tiger:reviewed', 'nysgissam:*',
|
||||||
'NHD:*', 'nhd:*', 'gnis:*', 'geobase:*', 'yh:*',
|
'NHD:*', 'nhd:*', 'gnis:*', 'geobase:*', 'yh:*',
|
||||||
'osak:*', 'naptan:*', 'CLC:*', 'import', 'it:fvg:*',
|
'osak:*', 'naptan:*', 'CLC:*', 'import', 'it:fvg:*',
|
||||||
'lacounty:*', 'ref:linz:*',
|
'lacounty:*', 'ref:linz:*', 'survey:*',
|
||||||
'ref:bygningsnr', 'ref:ruian:*', 'building:ruian:type',
|
'ref:bygningsnr', 'ref:ruian:*', 'building:ruian:type',
|
||||||
'type',
|
'type',
|
||||||
'is_in:postcode'}
|
'is_in:postcode'}
|
||||||
@@ -373,10 +375,15 @@ module.IGNORE_KEYS.address = {'addr:street:*', 'addr:city:*', 'addr:district:*',
|
|||||||
'addr:province:*', 'addr:subdistrict:*', 'addr:place:*',
|
'addr:province:*', 'addr:subdistrict:*', 'addr:place:*',
|
||||||
'addr:TW:dataset'}
|
'addr:TW:dataset'}
|
||||||
|
|
||||||
-- Extra tags (prefiltered away)
|
-- INTERNAL: Required extra tags
|
||||||
|
|
||||||
module.EXTRATAGS = {}
|
module.EXTRATAGS = {keys = {'wikipedia', 'wikipedia:*', 'wikidata', 'capital'}}
|
||||||
|
|
||||||
module.EXTRATAGS.required = {'wikipedia', 'wikipedia:*', 'wikidata', 'capital'}
|
-- Defaults for the entrance table
|
||||||
|
|
||||||
|
module.ENTRANCE_TABLE = {}
|
||||||
|
|
||||||
|
module.ENTRANCE_TABLE.default = {main_tags = {'entrance', 'routing:entrance'},
|
||||||
|
extra_exclude = module.IGNORE_KEYS.metatags}
|
||||||
|
|
||||||
return module
|
return module
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ flex.set_address_tags('core')
|
|||||||
flex.modify_address_tags('houses')
|
flex.modify_address_tags('houses')
|
||||||
|
|
||||||
flex.ignore_keys('metatags')
|
flex.ignore_keys('metatags')
|
||||||
flex.add_for_extratags('required')
|
|
||||||
|
|
||||||
if cfg.with_extratags then
|
if cfg.with_extratags then
|
||||||
flex.set_unused_handling{delete_keys = {'tiger:*'}}
|
flex.set_unused_handling{delete_keys = {'tiger:*'}}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ flex.set_address_tags('core')
|
|||||||
flex.set_postcode_fallback(false)
|
flex.set_postcode_fallback(false)
|
||||||
|
|
||||||
flex.ignore_keys('metatags')
|
flex.ignore_keys('metatags')
|
||||||
flex.add_for_extratags('required')
|
|
||||||
|
|
||||||
if cfg.with_extratags then
|
if cfg.with_extratags then
|
||||||
flex.set_unused_handling{delete_keys = {'tiger:*'}}
|
flex.set_unused_handling{delete_keys = {'tiger:*'}}
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ flex.set_address_tags('core')
|
|||||||
flex.modify_address_tags('houses')
|
flex.modify_address_tags('houses')
|
||||||
|
|
||||||
flex.ignore_keys('metatags')
|
flex.ignore_keys('metatags')
|
||||||
flex.add_for_extratags('required')
|
|
||||||
|
|
||||||
if cfg.with_extratags then
|
if cfg.with_extratags then
|
||||||
flex.set_unused_handling{delete_keys = {'tiger:*'}}
|
flex.set_unused_handling{delete_keys = {'tiger:*'}}
|
||||||
@@ -30,3 +29,5 @@ else
|
|||||||
flex.ignore_keys('name')
|
flex.ignore_keys('name')
|
||||||
flex.ignore_keys('address')
|
flex.ignore_keys('address')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
flex.set_entrance_filter('default')
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ flex.set_address_tags('core')
|
|||||||
flex.set_postcode_fallback(false)
|
flex.set_postcode_fallback(false)
|
||||||
|
|
||||||
flex.ignore_keys('metatags')
|
flex.ignore_keys('metatags')
|
||||||
flex.add_for_extratags('required')
|
|
||||||
|
|
||||||
if cfg.with_extratags then
|
if cfg.with_extratags then
|
||||||
flex.set_unused_handling{delete_keys = {'tiger:*'}}
|
flex.set_unused_handling{delete_keys = {'tiger:*'}}
|
||||||
|
|||||||
@@ -338,6 +338,11 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
-- When an existing way is updated, recalculate entrances
|
||||||
|
IF existingplacex.osm_type = 'W' and (existingplacex.rank_search > 27 or existingplacex.class IN ('landuse', 'leisure')) THEN
|
||||||
|
PERFORM place_update_entrances(existingplacex.place_id, existingplacex.osm_id);
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- Abort the insertion (we modified the existing place instead)
|
-- Abort the insertion (we modified the existing place instead)
|
||||||
RETURN NULL;
|
RETURN NULL;
|
||||||
END;
|
END;
|
||||||
|
|||||||
@@ -530,6 +530,7 @@ CREATE OR REPLACE FUNCTION insert_addresslines(obj_place_id BIGINT,
|
|||||||
AS $$
|
AS $$
|
||||||
DECLARE
|
DECLARE
|
||||||
address_havelevel BOOLEAN[];
|
address_havelevel BOOLEAN[];
|
||||||
|
place_min_distance FLOAT[];
|
||||||
|
|
||||||
location_isaddress BOOLEAN;
|
location_isaddress BOOLEAN;
|
||||||
current_boundary GEOMETRY := NULL;
|
current_boundary GEOMETRY := NULL;
|
||||||
@@ -545,6 +546,7 @@ BEGIN
|
|||||||
nameaddress_vector := '{}'::int[];
|
nameaddress_vector := '{}'::int[];
|
||||||
|
|
||||||
address_havelevel := array_fill(false, ARRAY[maxrank]);
|
address_havelevel := array_fill(false, ARRAY[maxrank]);
|
||||||
|
place_min_distance := array_fill(1.0, ARRAY[maxrank]);
|
||||||
|
|
||||||
FOR location IN
|
FOR location IN
|
||||||
SELECT apl.*, key
|
SELECT apl.*, key
|
||||||
@@ -575,6 +577,10 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
IF location.isguess and location.distance < place_min_distance[location.rank_address] THEN
|
||||||
|
place_min_distance[location.rank_address] := location.distance;
|
||||||
|
END IF;
|
||||||
|
|
||||||
INSERT INTO place_addressline (place_id, address_place_id, fromarea,
|
INSERT INTO place_addressline (place_id, address_place_id, fromarea,
|
||||||
isaddress, distance, cached_rank_address)
|
isaddress, distance, cached_rank_address)
|
||||||
VALUES (obj_place_id, location.place_id, not location.isguess,
|
VALUES (obj_place_id, location.place_id, not location.isguess,
|
||||||
@@ -602,6 +608,16 @@ BEGIN
|
|||||||
-- If this is the first item in the rank, then assume it is the address.
|
-- If this is the first item in the rank, then assume it is the address.
|
||||||
location_isaddress := not address_havelevel[location.rank_address];
|
location_isaddress := not address_havelevel[location.rank_address];
|
||||||
|
|
||||||
|
-- Ignore guessed places when they are too far away compared to similar closer ones.
|
||||||
|
IF location.isguess THEN
|
||||||
|
CONTINUE WHEN not location_isaddress
|
||||||
|
AND location.distance > 2 * place_min_distance[location.rank_address];
|
||||||
|
|
||||||
|
IF location.distance < place_min_distance[location.rank_address] THEN
|
||||||
|
place_min_distance[location.rank_address] := location.distance;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- Further sanity checks to ensure that the address forms a sane hierarchy.
|
-- Further sanity checks to ensure that the address forms a sane hierarchy.
|
||||||
IF location_isaddress THEN
|
IF location_isaddress THEN
|
||||||
IF location.isguess and current_node_area is not NULL THEN
|
IF location.isguess and current_node_area is not NULL THEN
|
||||||
@@ -874,6 +890,11 @@ BEGIN
|
|||||||
-- Compute a preliminary centroid.
|
-- Compute a preliminary centroid.
|
||||||
NEW.centroid := get_center_point(NEW.geometry);
|
NEW.centroid := get_center_point(NEW.geometry);
|
||||||
|
|
||||||
|
-- Record the entrance node locations
|
||||||
|
IF NEW.osm_type = 'W' and (NEW.rank_search > 27 or NEW.class IN ('landuse', 'leisure')) THEN
|
||||||
|
PERFORM place_update_entrances(NEW.place_id, NEW.osm_id);
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- recalculate country and partition
|
-- recalculate country and partition
|
||||||
IF NEW.rank_search = 4 AND NEW.address is not NULL AND NEW.address ? 'country' THEN
|
IF NEW.rank_search = 4 AND NEW.address is not NULL AND NEW.address ? 'country' THEN
|
||||||
-- for countries, believe the mapped country code,
|
-- for countries, believe the mapped country code,
|
||||||
|
|||||||
@@ -623,3 +623,34 @@ BEGIN
|
|||||||
RETURN NULL;
|
RETURN NULL;
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE plpgsql;
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION place_update_entrances(placeid BIGINT, osmid BIGINT)
|
||||||
|
RETURNS INTEGER
|
||||||
|
AS $$
|
||||||
|
DECLARE
|
||||||
|
entrance RECORD;
|
||||||
|
osm_ids BIGINT[];
|
||||||
|
BEGIN
|
||||||
|
osm_ids := '{}';
|
||||||
|
FOR entrance in SELECT osm_id, type, geometry, extratags
|
||||||
|
FROM place_entrance
|
||||||
|
WHERE osm_id IN (SELECT unnest(nodes) FROM planet_osm_ways WHERE id=osmid)
|
||||||
|
LOOP
|
||||||
|
osm_ids := array_append(osm_ids, entrance.osm_id);
|
||||||
|
INSERT INTO placex_entrance (place_id, osm_id, type, location, extratags)
|
||||||
|
VALUES (placeid, entrance.osm_id, entrance.type, entrance.geometry, entrance.extratags)
|
||||||
|
ON CONFLICT (place_id, osm_id) DO UPDATE
|
||||||
|
SET type = excluded.type, location = excluded.location, extratags = excluded.extratags;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
IF array_length(osm_ids, 1) > 0 THEN
|
||||||
|
DELETE FROM placex_entrance WHERE place_id=placeid AND NOT osm_id=ANY(osm_ids);
|
||||||
|
ELSE
|
||||||
|
DELETE FROM placex_entrance WHERE place_id=placeid;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
RETURN NULL;
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
LANGUAGE plpgsql;
|
||||||
|
|||||||
@@ -244,6 +244,25 @@ CREATE UNIQUE INDEX idx_postcode_id ON location_postcode USING BTREE (place_id)
|
|||||||
CREATE INDEX idx_postcode_geometry ON location_postcode USING GIST (geometry) {{db.tablespace.address_index}};
|
CREATE INDEX idx_postcode_geometry ON location_postcode USING GIST (geometry) {{db.tablespace.address_index}};
|
||||||
GRANT SELECT ON location_postcode TO "{{config.DATABASE_WEBUSER}}" ;
|
GRANT SELECT ON location_postcode TO "{{config.DATABASE_WEBUSER}}" ;
|
||||||
|
|
||||||
|
-- Table to store location of entrance nodes
|
||||||
|
DROP TABLE IF EXISTS placex_entrance;
|
||||||
|
CREATE TABLE placex_entrance (
|
||||||
|
place_id BIGINT NOT NULL,
|
||||||
|
osm_id BIGINT NOT NULL,
|
||||||
|
type TEXT NOT NULL,
|
||||||
|
location GEOMETRY(Point, 4326) NOT NULL,
|
||||||
|
extratags HSTORE
|
||||||
|
);
|
||||||
|
CREATE UNIQUE INDEX idx_placex_entrance_place_id_osm_id ON placex_entrance
|
||||||
|
USING BTREE (place_id, osm_id) {{db.tablespace.search_index}};
|
||||||
|
GRANT SELECT ON placex_entrance TO "{{config.DATABASE_WEBUSER}}" ;
|
||||||
|
|
||||||
|
-- Create an index on the place table for lookups to populate the entrance
|
||||||
|
-- table
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_placex_entrance_lookup ON place
|
||||||
|
USING BTREE (osm_id)
|
||||||
|
WHERE class IN ('routing:entrance', 'entrance');
|
||||||
|
|
||||||
DROP TABLE IF EXISTS import_polygon_error;
|
DROP TABLE IF EXISTS import_polygon_error;
|
||||||
CREATE TABLE import_polygon_error (
|
CREATE TABLE import_polygon_error (
|
||||||
osm_id BIGINT,
|
osm_id BIGINT,
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ markdown_extensions:
|
|||||||
- codehilite
|
- codehilite
|
||||||
- admonition
|
- admonition
|
||||||
- pymdownx.superfences
|
- pymdownx.superfences
|
||||||
|
- pymdownx.blocks.html
|
||||||
- pymdownx.tabbed:
|
- pymdownx.tabbed:
|
||||||
alternate_style: true
|
alternate_style: true
|
||||||
- def_list
|
- def_list
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ classifiers = [
|
|||||||
"Operating System :: OS Independent",
|
"Operating System :: OS Independent",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"async-timeout",
|
||||||
"python-dotenv",
|
"python-dotenv",
|
||||||
"pyYAML>=5.1",
|
"pyYAML>=5.1",
|
||||||
"SQLAlchemy>=1.4.31",
|
"SQLAlchemy>=1.4.31",
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
"croft" : 20,
|
"croft" : 20,
|
||||||
"subdivision" : 22,
|
"subdivision" : 22,
|
||||||
"allotments" : 22,
|
"allotments" : 22,
|
||||||
"neighbourhood" : [20, 22],
|
"neighbourhood" : 24,
|
||||||
"quarter" : [20, 22],
|
"quarter" : [20, 22],
|
||||||
"isolated_dwelling" : [22, 25],
|
"isolated_dwelling" : [22, 25],
|
||||||
"farm" : [22, 25],
|
"farm" : [22, 25],
|
||||||
@@ -48,17 +48,20 @@
|
|||||||
"" : [25, 0]
|
"" : [25, 0]
|
||||||
},
|
},
|
||||||
"landuse" : {
|
"landuse" : {
|
||||||
"residential" : 22,
|
"residential" : 24,
|
||||||
"farm" : 22,
|
"farm" : 24,
|
||||||
"farmyard" : 22,
|
"farmyard" : 24,
|
||||||
"industrial" : 22,
|
"industrial" : 24,
|
||||||
"commercial" : 22,
|
"commercial" : 24,
|
||||||
"allotments" : 22,
|
"allotments" : 24,
|
||||||
"retail" : 22,
|
"retail" : 24,
|
||||||
"" : [22, 0]
|
"" : [24, 0]
|
||||||
},
|
},
|
||||||
"leisure" : {
|
"leisure" : {
|
||||||
"park" : [24, 0]
|
"park" : [24, 0],
|
||||||
|
"nature_reserve" : [24, 0],
|
||||||
|
"garden": [25, 0],
|
||||||
|
"common": [25, 0]
|
||||||
},
|
},
|
||||||
"natural" : {
|
"natural" : {
|
||||||
"peak" : [18, 0],
|
"peak" : [18, 0],
|
||||||
@@ -236,6 +239,17 @@
|
|||||||
"administrative11" : 20
|
"administrative11" : 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{ "countries" : ["jp"],
|
||||||
|
"tags" : {
|
||||||
|
"boundary" : {
|
||||||
|
"administrative7" : 16,
|
||||||
|
"administrative8" : 18,
|
||||||
|
"administrative9" : 20,
|
||||||
|
"administrative10" : 22,
|
||||||
|
"administrative11" : 24
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -97,7 +97,6 @@ name:
|
|||||||
na: Andorra
|
na: Andorra
|
||||||
ne: एण्डोरा
|
ne: एण्डोरा
|
||||||
nl: Andorra
|
nl: Andorra
|
||||||
nn: Andorra
|
|
||||||
"no": Andorra
|
"no": Andorra
|
||||||
nv: Andówa
|
nv: Andówa
|
||||||
oc: Andòrra
|
oc: Andòrra
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ name:
|
|||||||
mt: Emirati Għarab Magħquda
|
mt: Emirati Għarab Magħquda
|
||||||
my: အာရပ်စော်ဘွားများပြည်ထောင်စုနိုင်ငံ
|
my: အာရပ်စော်ဘွားများပြည်ထောင်စုနိုင်ငံ
|
||||||
na: Emireitit Arabiya
|
na: Emireitit Arabiya
|
||||||
|
nb: De forente arabiske emirater
|
||||||
ne: संयुक्त अरब इमिरेट्स
|
ne: संयुक्त अरब इमिरेट्स
|
||||||
nl: Verenigde Arabische Emiraten
|
nl: Verenigde Arabische Emiraten
|
||||||
nn: Dei sameinte arabiske emirata
|
nn: Dei sameinte arabiske emirata
|
||||||
|
|||||||
@@ -96,7 +96,6 @@ name:
|
|||||||
na: Apeganitan
|
na: Apeganitan
|
||||||
ne: अफगानिस्तान
|
ne: अफगानिस्तान
|
||||||
nl: Afghanistan
|
nl: Afghanistan
|
||||||
nn: Afghanistan
|
|
||||||
"no": Afghanistan
|
"no": Afghanistan
|
||||||
oc: Afganistan
|
oc: Afganistan
|
||||||
om: Afgaanistaan
|
om: Afgaanistaan
|
||||||
|
|||||||
@@ -86,10 +86,8 @@ name:
|
|||||||
mt: Antigwa u Barbuda
|
mt: Antigwa u Barbuda
|
||||||
my: အင်တီဂွါနှင့် ဘာဘူဒါ
|
my: အင်တီဂွါနှင့် ဘာဘူဒါ
|
||||||
na: Antigua me Barbuda
|
na: Antigua me Barbuda
|
||||||
nb: Antigua og Barbuda
|
|
||||||
ne: एन्टिगुआ र बर्बुडा
|
ne: एन्टिगुआ र बर्बुडा
|
||||||
nl: Antigua en Barbuda
|
nl: Antigua en Barbuda
|
||||||
nn: Antigua og Barbuda
|
|
||||||
"no": Antigua og Barbuda
|
"no": Antigua og Barbuda
|
||||||
nv: Antíígwa dóó Hashkʼaan Bikéyah Yázhí
|
nv: Antíígwa dóó Hashkʼaan Bikéyah Yázhí
|
||||||
oc: Antigua e Barbuda
|
oc: Antigua e Barbuda
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ name:
|
|||||||
ms: Anguilla
|
ms: Anguilla
|
||||||
ne: एन्गुला
|
ne: एन्गुला
|
||||||
nl: Anguilla
|
nl: Anguilla
|
||||||
nn: Anguilla
|
|
||||||
"no": Anguilla
|
"no": Anguilla
|
||||||
oc: Anguilla
|
oc: Anguilla
|
||||||
pa: ਐਂਗੁਈਲਾ
|
pa: ਐਂਗੁਈਲਾ
|
||||||
|
|||||||
@@ -101,7 +101,6 @@ name:
|
|||||||
na: Arbainiya
|
na: Arbainiya
|
||||||
ne: अल्बानिया
|
ne: अल्बानिया
|
||||||
nl: Albanië
|
nl: Albanië
|
||||||
nn: Albania
|
|
||||||
"no": Albania
|
"no": Albania
|
||||||
nv: Dziłigaii Bikéyah
|
nv: Dziłigaii Bikéyah
|
||||||
oc: Albania
|
oc: Albania
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ name:
|
|||||||
na: Arminiya
|
na: Arminiya
|
||||||
ne: आर्मेनिया
|
ne: आर्मेनिया
|
||||||
nl: Armenië
|
nl: Armenië
|
||||||
nn: Armenia
|
|
||||||
"no": Armenia
|
"no": Armenia
|
||||||
nv: Aooméénii Bikéyah
|
nv: Aooméénii Bikéyah
|
||||||
oc: Armenia
|
oc: Armenia
|
||||||
|
|||||||
@@ -90,7 +90,6 @@ name:
|
|||||||
na: Angora
|
na: Angora
|
||||||
ne: अंगोला
|
ne: अंगोला
|
||||||
nl: Angola
|
nl: Angola
|
||||||
nn: Angola
|
|
||||||
"no": Angola
|
"no": Angola
|
||||||
nv: Angóola
|
nv: Angóola
|
||||||
ny: Angola
|
ny: Angola
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ name:
|
|||||||
na: Ardjentina
|
na: Ardjentina
|
||||||
ne: अर्जेन्टिना
|
ne: अर्जेन्टिना
|
||||||
nl: Argentinië
|
nl: Argentinië
|
||||||
nn: Argentina
|
|
||||||
"no": Argentina
|
"no": Argentina
|
||||||
nv: Béésh Łigaii Bikéyah
|
nv: Béésh Łigaii Bikéyah
|
||||||
oc: Argentina
|
oc: Argentina
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ name:
|
|||||||
mt: Awstrija
|
mt: Awstrija
|
||||||
my: သြစတြီးယားနိုင်ငံ
|
my: သြစတြီးယားနိုင်ငံ
|
||||||
na: Oteriya
|
na: Oteriya
|
||||||
|
nb: Østerrike
|
||||||
ne: अष्ट्रीया
|
ne: अष्ट्रीया
|
||||||
nl: Oostenrijk
|
nl: Oostenrijk
|
||||||
nn: Austerrike
|
nn: Austerrike
|
||||||
|
|||||||
@@ -94,7 +94,6 @@ name:
|
|||||||
na: Otereiriya
|
na: Otereiriya
|
||||||
ne: अष्ट्रेलिया
|
ne: अष्ट्रेलिया
|
||||||
nl: Australië
|
nl: Australië
|
||||||
nn: Australia
|
|
||||||
"no": Australia
|
"no": Australia
|
||||||
nv: Nahatʼeʼiitsoh Bikéyah
|
nv: Nahatʼeʼiitsoh Bikéyah
|
||||||
oc: Austràlia
|
oc: Austràlia
|
||||||
|
|||||||
@@ -96,10 +96,8 @@ name:
|
|||||||
mt: Ażerbajġan
|
mt: Ażerbajġan
|
||||||
my: အဇာဘိုင်ဂျန်နိုင်ငံ
|
my: အဇာဘိုင်ဂျန်နိုင်ငံ
|
||||||
na: Aderbaidjan
|
na: Aderbaidjan
|
||||||
nb: Aserbajdsjan
|
|
||||||
ne: अजरबैजान
|
ne: अजरबैजान
|
||||||
nl: Azerbeidzjan
|
nl: Azerbeidzjan
|
||||||
nn: Aserbajdsjan
|
|
||||||
"no": Aserbajdsjan
|
"no": Aserbajdsjan
|
||||||
nv: Azééwii Bikéyah
|
nv: Azééwii Bikéyah
|
||||||
ny: Azerbaijan
|
ny: Azerbaijan
|
||||||
|
|||||||
@@ -94,7 +94,6 @@ name:
|
|||||||
na: Boteniya me Erdegobina
|
na: Boteniya me Erdegobina
|
||||||
ne: बोस्निया र हर्जगोभिना
|
ne: बोस्निया र हर्जगोभिना
|
||||||
nl: Bosnië en Herzegovina
|
nl: Bosnië en Herzegovina
|
||||||
nn: Bosnia-Hercegovina
|
|
||||||
"no": Bosnia-Hercegovina
|
"no": Bosnia-Hercegovina
|
||||||
nv: Bosna dóó Hetsog Bikéyah
|
nv: Bosna dóó Hetsog Bikéyah
|
||||||
oc: Bòsnia e Ercegovina
|
oc: Bòsnia e Ercegovina
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ name:
|
|||||||
na: Barbadot
|
na: Barbadot
|
||||||
ne: बार्बाडोस
|
ne: बार्बाडोस
|
||||||
nl: Barbados
|
nl: Barbados
|
||||||
nn: Barbados
|
|
||||||
"no": Barbados
|
"no": Barbados
|
||||||
oc: Barbados
|
oc: Barbados
|
||||||
om: Baarbeedoos
|
om: Baarbeedoos
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ name:
|
|||||||
lt: Bangladešas
|
lt: Bangladešas
|
||||||
lv: Bangladeša
|
lv: Bangladeša
|
||||||
mn: Бангладеш
|
mn: Бангладеш
|
||||||
|
"no": Bangladesh
|
||||||
pl: Bangladesz
|
pl: Bangladesz
|
||||||
pt: Bangladesh
|
pt: Bangladesh
|
||||||
ru: Бангладеш
|
ru: Бангладеш
|
||||||
|
|||||||
@@ -95,10 +95,8 @@ name:
|
|||||||
mt: Belġju
|
mt: Belġju
|
||||||
my: ဘယ်လ်ဂျီယမ်နိုင်ငံ
|
my: ဘယ်လ်ဂျီယမ်နိုင်ငံ
|
||||||
na: Berdjiyum
|
na: Berdjiyum
|
||||||
nb: Belgia
|
|
||||||
ne: बेल्जियम
|
ne: बेल्जियम
|
||||||
nl: België
|
nl: België
|
||||||
nn: Belgia
|
|
||||||
"no": Belgia
|
"no": Belgia
|
||||||
oc: Belgica
|
oc: Belgica
|
||||||
om: Beeljiyeem
|
om: Beeljiyeem
|
||||||
|
|||||||
@@ -88,7 +88,6 @@ name:
|
|||||||
na: Burkinabato
|
na: Burkinabato
|
||||||
ne: बुर्किना फासो
|
ne: बुर्किना फासो
|
||||||
nl: Burkina Faso
|
nl: Burkina Faso
|
||||||
nn: Burkina Faso
|
|
||||||
"no": Burkina Faso
|
"no": Burkina Faso
|
||||||
oc: Burkina Faso
|
oc: Burkina Faso
|
||||||
om: Burkinaa Faasoo
|
om: Burkinaa Faasoo
|
||||||
|
|||||||
@@ -93,7 +93,6 @@ name:
|
|||||||
na: Borgeriya
|
na: Borgeriya
|
||||||
ne: बुल्गेरिया
|
ne: बुल्गेरिया
|
||||||
nl: Bulgarije
|
nl: Bulgarije
|
||||||
nn: Bulgaria
|
|
||||||
"no": Bulgaria
|
"no": Bulgaria
|
||||||
nv: Bálgaa Bikéyah
|
nv: Bálgaa Bikéyah
|
||||||
oc: Bulgaria
|
oc: Bulgaria
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ name:
|
|||||||
na: Bahrain
|
na: Bahrain
|
||||||
ne: बहराइन
|
ne: बहराइन
|
||||||
nl: Bahrein
|
nl: Bahrein
|
||||||
nn: Bahrain
|
|
||||||
"no": Bahrain
|
"no": Bahrain
|
||||||
oc: Bahrayn
|
oc: Bahrayn
|
||||||
om: Baahireen
|
om: Baahireen
|
||||||
|
|||||||
@@ -88,7 +88,6 @@ name:
|
|||||||
na: Burundi
|
na: Burundi
|
||||||
ne: बुरूण्डी
|
ne: बुरूण्डी
|
||||||
nl: Burundi
|
nl: Burundi
|
||||||
nn: Burundi
|
|
||||||
"no": Burundi
|
"no": Burundi
|
||||||
oc: Burundi
|
oc: Burundi
|
||||||
om: Buruundii
|
om: Buruundii
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ name:
|
|||||||
na: Benin
|
na: Benin
|
||||||
ne: बेनिन
|
ne: बेनिन
|
||||||
nl: Benin
|
nl: Benin
|
||||||
nn: Benin
|
|
||||||
"no": Benin
|
"no": Benin
|
||||||
oc: Benin
|
oc: Benin
|
||||||
om: Beeniin
|
om: Beeniin
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ name:
|
|||||||
lv: Bermudu salas
|
lv: Bermudu salas
|
||||||
mk: Бермуда
|
mk: Бермуда
|
||||||
mn: Бермудын Арал
|
mn: Бермудын Арал
|
||||||
|
"no": Bermuda
|
||||||
oc: Bermudas
|
oc: Bermudas
|
||||||
pl: Bermudy
|
pl: Bermudy
|
||||||
pt: Bermudas
|
pt: Bermudas
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ name:
|
|||||||
na: Brunei
|
na: Brunei
|
||||||
ne: ब्रुनेई
|
ne: ब्रुनेई
|
||||||
nl: Brunei
|
nl: Brunei
|
||||||
nn: Brunei
|
|
||||||
"no": Brunei
|
"no": Brunei
|
||||||
ny: Brunei
|
ny: Brunei
|
||||||
oc: Brunei
|
oc: Brunei
|
||||||
|
|||||||
@@ -94,7 +94,6 @@ name:
|
|||||||
na: Boribiya
|
na: Boribiya
|
||||||
ne: बोलिभिया
|
ne: बोलिभिया
|
||||||
nl: Bolivia
|
nl: Bolivia
|
||||||
nn: Bolivia
|
|
||||||
"no": Bolivia
|
"no": Bolivia
|
||||||
nv: Bolíbiya
|
nv: Bolíbiya
|
||||||
oc: Bolívia
|
oc: Bolívia
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ name:
|
|||||||
na: Bradir
|
na: Bradir
|
||||||
ne: ब्राजिल
|
ne: ब्राजिल
|
||||||
nl: Brazilië
|
nl: Brazilië
|
||||||
nn: Brasil
|
|
||||||
"no": Brasil
|
"no": Brasil
|
||||||
nv: Bwazííl
|
nv: Bwazííl
|
||||||
oc: Brasil
|
oc: Brasil
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ name:
|
|||||||
na: Bahamat
|
na: Bahamat
|
||||||
ne: बहामस
|
ne: बहामस
|
||||||
nl: Bahama's
|
nl: Bahama's
|
||||||
nn: Bahamas
|
|
||||||
"no": Bahamas
|
"no": Bahamas
|
||||||
oc: Las Bahamas
|
oc: Las Bahamas
|
||||||
om: Bahamaas
|
om: Bahamaas
|
||||||
|
|||||||
@@ -92,7 +92,6 @@ name:
|
|||||||
na: Butan
|
na: Butan
|
||||||
ne: भूटान
|
ne: भूटान
|
||||||
nl: Bhutan
|
nl: Bhutan
|
||||||
nn: Bhutan
|
|
||||||
"no": Bhutan
|
"no": Bhutan
|
||||||
nv: Bikéyah
|
nv: Bikéyah
|
||||||
oc: Botan
|
oc: Botan
|
||||||
|
|||||||
@@ -90,7 +90,6 @@ name:
|
|||||||
na: Botwana
|
na: Botwana
|
||||||
ne: बोत्स्वाना
|
ne: बोत्स्वाना
|
||||||
nl: Botswana
|
nl: Botswana
|
||||||
nn: Botswana
|
|
||||||
"no": Botswana
|
"no": Botswana
|
||||||
nv: Tswana Dineʼé Bikéyah
|
nv: Tswana Dineʼé Bikéyah
|
||||||
oc: Botswana
|
oc: Botswana
|
||||||
|
|||||||
@@ -83,8 +83,7 @@ name:
|
|||||||
na: Berarut
|
na: Berarut
|
||||||
ne: बेलारुस
|
ne: बेलारुस
|
||||||
nl: Wit-Rusland
|
nl: Wit-Rusland
|
||||||
nn: Kviterussland
|
"no": Belarus
|
||||||
"no": Hviterussland
|
|
||||||
oc: Bielorussia
|
oc: Bielorussia
|
||||||
or: ବେଲାଋଷ
|
or: ବେଲାଋଷ
|
||||||
os: Белорусси
|
os: Белорусси
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ name:
|
|||||||
na: Berij
|
na: Berij
|
||||||
ne: बेलिज
|
ne: बेलिज
|
||||||
nl: Belize
|
nl: Belize
|
||||||
nn: Belize
|
|
||||||
"no": Belize
|
"no": Belize
|
||||||
oc: Belize
|
oc: Belize
|
||||||
om: Beliiz
|
om: Beliiz
|
||||||
|
|||||||
@@ -94,7 +94,6 @@ name:
|
|||||||
na: Kanada
|
na: Kanada
|
||||||
ne: क्यानाडा
|
ne: क्यानाडा
|
||||||
nl: Canada
|
nl: Canada
|
||||||
nn: Canada
|
|
||||||
"no": Canada
|
"no": Canada
|
||||||
nv: Deeteel Bikéyah
|
nv: Deeteel Bikéyah
|
||||||
oc: Canadà
|
oc: Canadà
|
||||||
|
|||||||
@@ -74,7 +74,6 @@ name:
|
|||||||
na: Ripubrikit Engame Kongo
|
na: Ripubrikit Engame Kongo
|
||||||
ne: प्रजातान्त्रिक गणतन्त्र कंगो
|
ne: प्रजातान्त्रिक गणतन्त्र कंगो
|
||||||
nl: Democratische Republiek Congo
|
nl: Democratische Republiek Congo
|
||||||
nn: Den demokratiske republikken Kongo
|
|
||||||
"no": Den demokratiske republikken Kongo
|
"no": Den demokratiske republikken Kongo
|
||||||
nv: Kéyah Káango Shádiʼááhjí Siʼánígíí
|
nv: Kéyah Káango Shádiʼááhjí Siʼánígíí
|
||||||
oc: Republica Democratica de Còngo
|
oc: Republica Democratica de Còngo
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ name:
|
|||||||
mt: Repubblika Ċentru-Afrikana
|
mt: Repubblika Ċentru-Afrikana
|
||||||
my: ဗဟိုအာဖရိကသမ္မတနိုင်ငံ
|
my: ဗဟိုအာဖရိကသမ္မတနိုင်ငံ
|
||||||
na: Ripubrikin Aprika Yugaga
|
na: Ripubrikin Aprika Yugaga
|
||||||
|
nb: Den sentralafrikanske republikk
|
||||||
ne: मध्य अफ्रिकी गणतन्त्र
|
ne: मध्य अफ्रिकी गणतन्त्र
|
||||||
nl: Centraal-Afrikaanse Republiek
|
nl: Centraal-Afrikaanse Republiek
|
||||||
nn: Den sentralafrikanske republikken
|
nn: Den sentralafrikanske republikken
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ name:
|
|||||||
na: Ripubrikin Kongo
|
na: Ripubrikin Kongo
|
||||||
ne: कङ्गो
|
ne: कङ्गो
|
||||||
nl: Congo-Brazzaville
|
nl: Congo-Brazzaville
|
||||||
nn: Kongo-Brazzaville
|
|
||||||
"no": Republikken Kongo
|
"no": Republikken Kongo
|
||||||
nv: Kéyah Káango Náhookǫsjí Siʼánígíí
|
nv: Kéyah Káango Náhookǫsjí Siʼánígíí
|
||||||
oc: Republica de Còngo
|
oc: Republica de Còngo
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ name:
|
|||||||
na: Switzerland
|
na: Switzerland
|
||||||
ne: स्विजरल्याण्ड
|
ne: स्विजरल्याण्ड
|
||||||
nl: Zwitserland
|
nl: Zwitserland
|
||||||
nn: Sveits
|
|
||||||
"no": Sveits
|
"no": Sveits
|
||||||
nv: Swis Bikéyah
|
nv: Swis Bikéyah
|
||||||
oc: Soïssa
|
oc: Soïssa
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ name:
|
|||||||
mt: Kosta tal-Avorju
|
mt: Kosta tal-Avorju
|
||||||
my: အိုင်ဗရီကို့စ်နိုင်ငံ
|
my: အိုင်ဗရီကို့စ်နိုင်ငံ
|
||||||
na: Aibori Kot
|
na: Aibori Kot
|
||||||
|
nb: Elfenbenskysten
|
||||||
ne: आइभरी कोस्ट
|
ne: आइभरी कोस्ट
|
||||||
nl: Ivoorkust
|
nl: Ivoorkust
|
||||||
nn: Elfenbeinskysten
|
nn: Elfenbeinskysten
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ name:
|
|||||||
ms: Kepulauan Cook
|
ms: Kepulauan Cook
|
||||||
mt: Gżejjer Cook
|
mt: Gżejjer Cook
|
||||||
my: ကွတ် ကျွန်းစု
|
my: ကွတ် ကျွန်းစု
|
||||||
|
nb: Cookøyene
|
||||||
ne: कुक टापु
|
ne: कुक टापु
|
||||||
nl: Cookeilanden
|
nl: Cookeilanden
|
||||||
nn: Cookøyane
|
nn: Cookøyane
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ name:
|
|||||||
na: Tsire
|
na: Tsire
|
||||||
ne: चिली
|
ne: चिली
|
||||||
nl: Chili
|
nl: Chili
|
||||||
nn: Chile
|
|
||||||
"no": Chile
|
"no": Chile
|
||||||
nv: Chíilii
|
nv: Chíilii
|
||||||
ny: Chile
|
ny: Chile
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ name:
|
|||||||
na: Kamerun
|
na: Kamerun
|
||||||
ne: क्यामेरून
|
ne: क्यामेरून
|
||||||
nl: Kameroen
|
nl: Kameroen
|
||||||
nn: Kamerun
|
|
||||||
"no": Kamerun
|
"no": Kamerun
|
||||||
nv: Táłtłʼááh Chʼosh Daadánígíí Bitooh
|
nv: Táłtłʼááh Chʼosh Daadánígíí Bitooh
|
||||||
oc: Cameron
|
oc: Cameron
|
||||||
|
|||||||
@@ -101,10 +101,8 @@ name:
|
|||||||
mt: Ċina
|
mt: Ċina
|
||||||
my: တရုတ်
|
my: တရုတ်
|
||||||
na: Tsiene
|
na: Tsiene
|
||||||
nb: Kina
|
|
||||||
ne: चीन
|
ne: चीन
|
||||||
nl: China
|
nl: China
|
||||||
nn: Kina
|
|
||||||
"no": Kina
|
"no": Kina
|
||||||
nv: Tsiiʼyishbizhí Dineʼé Bikéyah
|
nv: Tsiiʼyishbizhí Dineʼé Bikéyah
|
||||||
ny: China
|
ny: China
|
||||||
|
|||||||
@@ -82,7 +82,6 @@ name:
|
|||||||
na: Korombiya
|
na: Korombiya
|
||||||
ne: कोलम्बिया
|
ne: कोलम्बिया
|
||||||
nl: Colombia
|
nl: Colombia
|
||||||
nn: Colombia
|
|
||||||
"no": Colombia
|
"no": Colombia
|
||||||
nv: Kolámbiya
|
nv: Kolámbiya
|
||||||
oc: Colómbia
|
oc: Colómbia
|
||||||
|
|||||||
@@ -81,7 +81,6 @@ name:
|
|||||||
na: Kosta Rika
|
na: Kosta Rika
|
||||||
ne: कोस्टारिका
|
ne: कोस्टारिका
|
||||||
nl: Costa Rica
|
nl: Costa Rica
|
||||||
nn: Costa Rica
|
|
||||||
"no": Costa Rica
|
"no": Costa Rica
|
||||||
oc: Còsta Rica
|
oc: Còsta Rica
|
||||||
om: Kostaa Rikaa
|
om: Kostaa Rikaa
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ name:
|
|||||||
na: Kiuba
|
na: Kiuba
|
||||||
ne: क्युबा
|
ne: क्युबा
|
||||||
nl: Cuba
|
nl: Cuba
|
||||||
nn: Cuba
|
|
||||||
"no": Cuba
|
"no": Cuba
|
||||||
nv: Kyóoba
|
nv: Kyóoba
|
||||||
oc: Cuba
|
oc: Cuba
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ name:
|
|||||||
mk: Зелен ’Рт
|
mk: Зелен ’Рт
|
||||||
mn: Кабо-Верде
|
mn: Кабо-Верде
|
||||||
nl: Kaapverdië
|
nl: Kaapverdië
|
||||||
|
"no": Kapp Verde
|
||||||
pl: Republika Zielonego Przylądka
|
pl: Republika Zielonego Przylądka
|
||||||
pt: Cabo Verde
|
pt: Cabo Verde
|
||||||
ru: Кабо-Верде
|
ru: Кабо-Верде
|
||||||
|
|||||||
@@ -77,10 +77,8 @@ name:
|
|||||||
mt: Ċipru
|
mt: Ċipru
|
||||||
my: ဆိုက်ပရပ်စ်နိုင်ငံ
|
my: ဆိုက်ပရပ်စ်နိုင်ငံ
|
||||||
na: Taiprus
|
na: Taiprus
|
||||||
nb: Kypros
|
|
||||||
ne: साइप्रस
|
ne: साइप्रस
|
||||||
nl: Cyprus
|
nl: Cyprus
|
||||||
nn: Kypros
|
|
||||||
"no": Kypros
|
"no": Kypros
|
||||||
nv: Béésh Łichíiʼii Bikéyah
|
nv: Béésh Łichíiʼii Bikéyah
|
||||||
oc: Chipre
|
oc: Chipre
|
||||||
|
|||||||
@@ -93,7 +93,6 @@ name:
|
|||||||
na: Ripubrikin Tsiek
|
na: Ripubrikin Tsiek
|
||||||
ne: चेक गणतन्त्र
|
ne: चेक गणतन्त्र
|
||||||
nl: Tsjechië
|
nl: Tsjechië
|
||||||
nn: Tsjekkia
|
|
||||||
"no": Tsjekkia
|
"no": Tsjekkia
|
||||||
nv: Chek Bikéyah
|
nv: Chek Bikéyah
|
||||||
oc: Republica Chèca
|
oc: Republica Chèca
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ name:
|
|||||||
na: Djermani
|
na: Djermani
|
||||||
ne: जर्मनी
|
ne: जर्मनी
|
||||||
nl: Duitsland
|
nl: Duitsland
|
||||||
nn: Tyskland
|
|
||||||
"no": Tyskland
|
"no": Tyskland
|
||||||
nv: Béésh Bichʼahii Bikéyah
|
nv: Béésh Bichʼahii Bikéyah
|
||||||
oc: Alemanha
|
oc: Alemanha
|
||||||
|
|||||||
@@ -74,7 +74,6 @@ name:
|
|||||||
na: Djibuti
|
na: Djibuti
|
||||||
ne: जिबुटी
|
ne: जिबुटी
|
||||||
nl: Djibouti
|
nl: Djibouti
|
||||||
nn: Djibouti
|
|
||||||
"no": Djibouti
|
"no": Djibouti
|
||||||
nv: Jibótii
|
nv: Jibótii
|
||||||
oc: Jiboti
|
oc: Jiboti
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ name:
|
|||||||
na: Denemark
|
na: Denemark
|
||||||
ne: डेनमार्क
|
ne: डेनमार्क
|
||||||
nl: Denemarken
|
nl: Denemarken
|
||||||
nn: Danmark
|
|
||||||
"no": Danmark
|
"no": Danmark
|
||||||
nv: Déinish Dineʼé Bikéyah
|
nv: Déinish Dineʼé Bikéyah
|
||||||
oc: Danemarc
|
oc: Danemarc
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ name:
|
|||||||
lv: Dominika
|
lv: Dominika
|
||||||
mn: Доминика
|
mn: Доминика
|
||||||
nl: Dominica
|
nl: Dominica
|
||||||
|
"no": Dominica
|
||||||
pl: Dominika
|
pl: Dominika
|
||||||
pt: Dominica
|
pt: Dominica
|
||||||
ru: Доминика
|
ru: Доминика
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ name:
|
|||||||
mt: Repubblika Dominikana
|
mt: Repubblika Dominikana
|
||||||
my: ဒိုမီနီကန်သမ္မတနိုင်ငံ
|
my: ဒိုမီနီကန်သမ္မတနိုင်ငံ
|
||||||
na: Ripubrikin Dominika
|
na: Ripubrikin Dominika
|
||||||
|
nb: Den dominikanske republikk
|
||||||
ne: डोमिनिकन गणतन्त्र
|
ne: डोमिनिकन गणतन्त्र
|
||||||
nl: Dominicaanse Republiek
|
nl: Dominicaanse Republiek
|
||||||
nn: Den dominikanske republikken
|
nn: Den dominikanske republikken
|
||||||
|
|||||||
@@ -93,7 +93,6 @@ name:
|
|||||||
na: Ardjiriya
|
na: Ardjiriya
|
||||||
ne: अल्जेरिया
|
ne: अल्जेरिया
|
||||||
nl: Algerije
|
nl: Algerije
|
||||||
nn: Algerie
|
|
||||||
"no": Algerie
|
"no": Algerie
|
||||||
nv: Aljííya
|
nv: Aljííya
|
||||||
ny: Algeria
|
ny: Algeria
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ name:
|
|||||||
na: Ekwador
|
na: Ekwador
|
||||||
ne: इक्वेडर
|
ne: इक्वेडर
|
||||||
nl: Ecuador
|
nl: Ecuador
|
||||||
nn: Ecuador
|
|
||||||
"no": Ecuador
|
"no": Ecuador
|
||||||
nv: Kéyah Nahasdzáán Ałníiʼgi Siʼánígíí
|
nv: Kéyah Nahasdzáán Ałníiʼgi Siʼánígíí
|
||||||
oc: Eqüator
|
oc: Eqüator
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ name:
|
|||||||
na: Etoniya
|
na: Etoniya
|
||||||
ne: इस्टोनिया
|
ne: इस्टोनिया
|
||||||
nl: Estland
|
nl: Estland
|
||||||
nn: Estland
|
|
||||||
"no": Estland
|
"no": Estland
|
||||||
nv: Ééstii Bikéyah
|
nv: Ééstii Bikéyah
|
||||||
oc: Estònia
|
oc: Estònia
|
||||||
|
|||||||
@@ -97,7 +97,6 @@ name:
|
|||||||
na: Idjipt
|
na: Idjipt
|
||||||
ne: मिश्र
|
ne: मिश्र
|
||||||
nl: Egypte
|
nl: Egypte
|
||||||
nn: Egypt
|
|
||||||
"no": Egypt
|
"no": Egypt
|
||||||
nv: Ííjip
|
nv: Ííjip
|
||||||
oc: Egipte
|
oc: Egipte
|
||||||
|
|||||||
@@ -10,7 +10,10 @@ name:
|
|||||||
fr: République arabe sahraouie démocratique
|
fr: République arabe sahraouie démocratique
|
||||||
it: Repubblica Araba Democratica dei Sahrawi
|
it: Repubblica Araba Democratica dei Sahrawi
|
||||||
lt: Sacharos Arabų Demokratinė Respublika
|
lt: Sacharos Arabų Demokratinė Respublika
|
||||||
|
nb: Den saharawiske arabiske demokratiske republikk
|
||||||
nl: Arabische Democratische Republiek Sahara
|
nl: Arabische Democratische Republiek Sahara
|
||||||
|
nn: Den saharawiske arabiske demokratiske republikken
|
||||||
|
"no": Den saharawiske arabiske demokratiske republikk
|
||||||
pt: República Árabe Saaraui Democrática
|
pt: República Árabe Saaraui Democrática
|
||||||
ru: Сахарская Арабская Демократическая Республика
|
ru: Сахарская Арабская Демократическая Республика
|
||||||
ur: صحراوی عرب عوامی جمہوریہ
|
ur: صحراوی عرب عوامی جمہوریہ
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ name:
|
|||||||
na: Eritrea
|
na: Eritrea
|
||||||
ne: एरिट्रिया
|
ne: एरिट्रिया
|
||||||
nl: Eritrea
|
nl: Eritrea
|
||||||
nn: Eritrea
|
|
||||||
"no": Eritrea
|
"no": Eritrea
|
||||||
oc: Eritrèa
|
oc: Eritrèa
|
||||||
om: Eritrea
|
om: Eritrea
|
||||||
|
|||||||
@@ -88,10 +88,8 @@ name:
|
|||||||
mt: Spanja
|
mt: Spanja
|
||||||
my: စပိန်နိုင်ငံ
|
my: စပိန်နိုင်ငံ
|
||||||
na: Pain
|
na: Pain
|
||||||
nb: Spania
|
|
||||||
ne: स्पेन
|
ne: स्पेन
|
||||||
nl: Spanje
|
nl: Spanje
|
||||||
nn: Spania
|
|
||||||
"no": Spania
|
"no": Spania
|
||||||
nv: Dibé Diníí Bikéyah
|
nv: Dibé Diníí Bikéyah
|
||||||
oc: Espanha
|
oc: Espanha
|
||||||
|
|||||||
@@ -92,7 +92,6 @@ name:
|
|||||||
na: Itiyopiya
|
na: Itiyopiya
|
||||||
ne: इथियोपिया
|
ne: इथियोपिया
|
||||||
nl: Ethiopië
|
nl: Ethiopië
|
||||||
nn: Etiopia
|
|
||||||
"no": Etiopia
|
"no": Etiopia
|
||||||
nv: Iithiyópya
|
nv: Iithiyópya
|
||||||
oc: Etiopia
|
oc: Etiopia
|
||||||
|
|||||||
@@ -92,7 +92,6 @@ name:
|
|||||||
na: Finland
|
na: Finland
|
||||||
ne: फिनल्याण्ड
|
ne: फिनल्याण्ड
|
||||||
nl: Finland
|
nl: Finland
|
||||||
nn: Finland
|
|
||||||
"no": Finland
|
"no": Finland
|
||||||
nv: Nahoditsʼǫʼłání
|
nv: Nahoditsʼǫʼłání
|
||||||
oc: Finlàndia
|
oc: Finlàndia
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ name:
|
|||||||
na: Bidji
|
na: Bidji
|
||||||
ne: फिजी
|
ne: फिजी
|
||||||
nl: Fiji
|
nl: Fiji
|
||||||
nn: Fiji
|
|
||||||
"no": Fiji
|
"no": Fiji
|
||||||
nv: Fííjii
|
nv: Fííjii
|
||||||
oc: Fiji
|
oc: Fiji
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ name:
|
|||||||
ms: Kepulauan Falkland (Islas Malvinas)
|
ms: Kepulauan Falkland (Islas Malvinas)
|
||||||
mt: Falkland Islands
|
mt: Falkland Islands
|
||||||
my: ဖောက်ကလန် ကျွန်းစု
|
my: ဖောက်ကလန် ကျွန်းစု
|
||||||
|
nb: Falklandsøyene
|
||||||
ne: फक्ल्याण्ड टापुहरू (इज्लास माल्भिनास)
|
ne: फक्ल्याण्ड टापुहरू (इज्लास माल्भिनास)
|
||||||
nl: Falklandeilanden
|
nl: Falklandeilanden
|
||||||
nn: Falklandsøyane
|
nn: Falklandsøyane
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ name:
|
|||||||
lv: Mikronēzija
|
lv: Mikronēzija
|
||||||
mn: Микронези
|
mn: Микронези
|
||||||
nl: Micronesia
|
nl: Micronesia
|
||||||
"no": Mikronesia
|
"no": Mikronesiaføderasjonen
|
||||||
oc: Estats Federats de Micronesia
|
oc: Estats Federats de Micronesia
|
||||||
pl: Mikronezja
|
pl: Mikronezja
|
||||||
ru: Федеративные Штаты Микронезии
|
ru: Федеративные Штаты Микронезии
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ name:
|
|||||||
mr: फेरो द्वीपसमूह
|
mr: फेरो द्वीपसमूह
|
||||||
ms: Kepulauan Faroe
|
ms: Kepulauan Faroe
|
||||||
mt: Gżejjer Faroe
|
mt: Gżejjer Faroe
|
||||||
|
nb: Færøyene
|
||||||
ne: फरोइ टापु
|
ne: फरोइ टापु
|
||||||
nl: Faeröer
|
nl: Faeröer
|
||||||
nn: Færøyane
|
nn: Færøyane
|
||||||
|
|||||||
@@ -96,7 +96,6 @@ name:
|
|||||||
na: Prant
|
na: Prant
|
||||||
ne: फ्रान्स
|
ne: फ्रान्स
|
||||||
nl: Frankrijk
|
nl: Frankrijk
|
||||||
nn: Frankrike
|
|
||||||
"no": Frankrike
|
"no": Frankrike
|
||||||
nv: Dáághahii Dineʼé Bikéyah
|
nv: Dáághahii Dineʼé Bikéyah
|
||||||
oc: França
|
oc: França
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ name:
|
|||||||
na: Gabun
|
na: Gabun
|
||||||
ne: गाबोन
|
ne: गाबोन
|
||||||
nl: Gabon
|
nl: Gabon
|
||||||
nn: Gabon
|
|
||||||
"no": Gabon
|
"no": Gabon
|
||||||
nv: Gabǫ́ǫ́
|
nv: Gabǫ́ǫ́
|
||||||
oc: Gabon
|
oc: Gabon
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ name:
|
|||||||
na: Ingerand
|
na: Ingerand
|
||||||
ne: संयुक्त अधिराज्य
|
ne: संयुक्त अधिराज्य
|
||||||
nl: Verenigd Koninkrijk
|
nl: Verenigd Koninkrijk
|
||||||
nn: Storbritannia
|
|
||||||
"no": Storbritannia
|
"no": Storbritannia
|
||||||
nv: Tótaʼ Dineʼé Bikéyah
|
nv: Tótaʼ Dineʼé Bikéyah
|
||||||
oc: Reialme Unit
|
oc: Reialme Unit
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ name:
|
|||||||
lv: Grenāda
|
lv: Grenāda
|
||||||
mn: Гренада
|
mn: Гренада
|
||||||
nl: Grenada
|
nl: Grenada
|
||||||
|
"no": Grenada
|
||||||
pl: Granada
|
pl: Granada
|
||||||
pt: Granada
|
pt: Granada
|
||||||
ru: Гренада
|
ru: Гренада
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ name:
|
|||||||
na: Djiordjiya
|
na: Djiordjiya
|
||||||
ne: जर्जिया (देश)
|
ne: जर्जिया (देश)
|
||||||
nl: Georgië
|
nl: Georgië
|
||||||
nn: Georgia
|
|
||||||
"no": Georgia
|
"no": Georgia
|
||||||
nv: Jóojah (Kéyah)
|
nv: Jóojah (Kéyah)
|
||||||
oc: Georgia (Caucàs)
|
oc: Georgia (Caucàs)
|
||||||
|
|||||||
@@ -55,7 +55,6 @@ name:
|
|||||||
ms: Guernsey
|
ms: Guernsey
|
||||||
ne: गुर्न्जी
|
ne: गुर्न्जी
|
||||||
nl: Guernsey
|
nl: Guernsey
|
||||||
nn: Guernsey
|
|
||||||
"no": Guernsey
|
"no": Guernsey
|
||||||
oc: Guernesey
|
oc: Guernesey
|
||||||
os: Гернси
|
os: Гернси
|
||||||
|
|||||||
@@ -83,7 +83,6 @@ name:
|
|||||||
na: Gana
|
na: Gana
|
||||||
ne: घाना
|
ne: घाना
|
||||||
nl: Ghana
|
nl: Ghana
|
||||||
nn: Ghana
|
|
||||||
"no": Ghana
|
"no": Ghana
|
||||||
nv: Gáana
|
nv: Gáana
|
||||||
oc: Ghana
|
oc: Ghana
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ name:
|
|||||||
my: ဂျီဘရော်လ်တာ
|
my: ဂျီဘရော်လ်တာ
|
||||||
ne: गिब्राल्टार
|
ne: गिब्राल्टार
|
||||||
nl: Gibraltar
|
nl: Gibraltar
|
||||||
nn: Gibraltar
|
|
||||||
"no": Gibraltar
|
"no": Gibraltar
|
||||||
oc: Gibartar
|
oc: Gibartar
|
||||||
or: ଜିବ୍ରାଲେଟର
|
or: ଜିବ୍ରାଲେଟର
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ name:
|
|||||||
my: ဂရင်းလန်ကျွန်း
|
my: ဂရင်းလန်ကျွန်း
|
||||||
ne: ग्रीनल्याण्ड
|
ne: ग्रीनल्याण्ड
|
||||||
nl: Groenland
|
nl: Groenland
|
||||||
nn: Grønland
|
|
||||||
"no": Grønland
|
"no": Grønland
|
||||||
nv: Haʼaʼaahjí Hakʼaz Dineʼé Bikéyah
|
nv: Haʼaʼaahjí Hakʼaz Dineʼé Bikéyah
|
||||||
oc: Groenlàndia
|
oc: Groenlàndia
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user