Merge pull request #1980 from umap-project/osm-relation-tags

fix: import unified relations from OSM data (use latest osmtogeojson)
This commit is contained in:
Yohan Boniface 2024-07-10 10:34:03 +02:00 committed by GitHub
commit 75e36f1c54
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 153 additions and 1 deletions

View file

@ -63,7 +63,7 @@
"leaflet.markercluster": "^1.5.3", "leaflet.markercluster": "^1.5.3",
"leaflet.path.drag": "0.0.6", "leaflet.path.drag": "0.0.6",
"leaflet.photon": "0.9.1", "leaflet.photon": "0.9.1",
"osmtogeojson": "^3.0.0-beta.3", "osmtogeojson": "^3.0.0-beta.5",
"simple-statistics": "^7.8.3" "simple-statistics": "^7.8.3"
}, },
"browserslist": [ "browserslist": [

View file

@ -0,0 +1,130 @@
{
"version": 0.6,
"generator": "Overpass API 0.7.62.1 084b4234",
"osm3s": {
"timestamp_osm_base": "2024-07-09T21:12:25Z",
"copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
},
"elements": [
{
"type": "relation",
"id": 15612202,
"bounds": {
"minlat": 44.4954890,
"minlon": 4.4694996,
"maxlat": 44.5008991,
"maxlon": 4.4837427
},
"members": [
{
"type": "way",
"ref": 923993108,
"role": "",
"geometry": [
{ "lat": 44.5008991, "lon": 4.4837427 },
{ "lat": 44.5005842, "lon": 4.4829595 }
]
},
{
"type": "way",
"ref": 152053540,
"role": "",
"geometry": [
{ "lat": 44.5005842, "lon": 4.4829595 },
{ "lat": 44.5004511, "lon": 4.4825203 },
{ "lat": 44.5003881, "lon": 4.4823967 },
{ "lat": 44.5003271, "lon": 4.4823127 }
]
},
{
"type": "way",
"ref": 152053454,
"role": "",
"geometry": [
{ "lat": 44.5003271, "lon": 4.4823127 },
{ "lat": 44.5000601, "lon": 4.4819984 }
]
},
{
"type": "way",
"ref": 1154990810,
"role": "",
"geometry": [
{ "lat": 44.4962236, "lon": 4.4723158 },
{ "lat": 44.4962813, "lon": 4.4723213 },
{ "lat": 44.4965874, "lon": 4.4721067 },
{ "lat": 44.4966180, "lon": 4.4720209 },
{ "lat": 44.4966410, "lon": 4.4718492 },
{ "lat": 44.4967328, "lon": 4.4717205 },
{ "lat": 44.4970542, "lon": 4.4715917 },
{ "lat": 44.4974522, "lon": 4.4713986 },
{ "lat": 44.4978195, "lon": 4.4710231 },
{ "lat": 44.4980338, "lon": 4.4707442 },
{ "lat": 44.4981945, "lon": 4.4704330 },
{ "lat": 44.4983016, "lon": 4.4701434 },
{ "lat": 44.4985006, "lon": 4.4697249 },
{ "lat": 44.4986383, "lon": 4.4695747 },
{ "lat": 44.4989138, "lon": 4.4694996 }
]
},
{
"type": "way",
"ref": 152053472,
"role": "",
"geometry": [
{ "lat": 44.5000601, "lon": 4.4819984 },
{ "lat": 44.5000206, "lon": 4.4819429 },
{ "lat": 44.4998592, "lon": 4.4817717 },
{ "lat": 44.4996283, "lon": 4.4814022 },
{ "lat": 44.4995821, "lon": 4.4813051 },
{ "lat": 44.4995458, "lon": 4.4811896 },
{ "lat": 44.4995458, "lon": 4.4811110 },
{ "lat": 44.4997535, "lon": 4.4799509 },
{ "lat": 44.4997865, "lon": 4.4798677 },
{ "lat": 44.4997766, "lon": 4.4798030 },
{ "lat": 44.4997370, "lon": 4.4797752 },
{ "lat": 44.4997008, "lon": 4.4797984 },
{ "lat": 44.4991997, "lon": 4.4811711 },
{ "lat": 44.4991601, "lon": 4.4812173 },
{ "lat": 44.4991074, "lon": 4.4812450 },
{ "lat": 44.4990612, "lon": 4.4812265 },
{ "lat": 44.4988799, "lon": 4.4811017 },
{ "lat": 44.4984513, "lon": 4.4806719 },
{ "lat": 44.4967173, "lon": 4.4791004 },
{ "lat": 44.4962100, "lon": 4.4785085 },
{ "lat": 44.4961073, "lon": 4.4783887 },
{ "lat": 44.4959557, "lon": 4.4780559 },
{ "lat": 44.4959290, "lon": 4.4778837 },
{ "lat": 44.4957377, "lon": 4.4775351 },
{ "lat": 44.4956229, "lon": 4.4772561 },
{ "lat": 44.4955081, "lon": 4.4768269 },
{ "lat": 44.4954890, "lon": 4.4764568 },
{ "lat": 44.4955540, "lon": 4.4759472 },
{ "lat": 44.4955923, "lon": 4.4755502 },
{ "lat": 44.4957071, "lon": 4.4750406 },
{ "lat": 44.4957721, "lon": 4.4746758 },
{ "lat": 44.4957874, "lon": 4.4741662 },
{ "lat": 44.4957683, "lon": 4.4726856 },
{ "lat": 44.4958219, "lon": 4.4725140 },
{ "lat": 44.4960783, "lon": 4.4723101 },
{ "lat": 44.4962084, "lon": 4.4722887 },
{ "lat": 44.4962236, "lon": 4.4723158 }
]
}
],
"tags": {
"ascent": "70",
"descent": "5",
"distance": "1.9",
"name": "Saint-Maurice d'Ibie - Petit Montagu",
"network": "lwn",
"network:type": "node_network",
"route": "hiking",
"survey:date": "2023-03-13",
"type": "route"
}
}
]
}

View file

@ -585,3 +585,25 @@ def test_import_from_datasets(page, live_server, tilelayer, settings):
expect(page.locator(".leaflet-marker-icon")).to_be_visible() expect(page.locator(".leaflet-marker-icon")).to_be_visible()
page.get_by_role("button", name="Open browser").click() page.get_by_role("button", name="Open browser").click()
expect(page.locator("h5").get_by_text("Good data")).to_be_visible() expect(page.locator("h5").get_by_text("Good data")).to_be_visible()
def test_import_osm_relation(tilelayer, live_server, page):
# Overpass query used for this data:
# [out:json][timeout:25];(relation(id:15612202)%20;);out%20geom;
page.goto(f"{live_server.url}/map/new/")
page.get_by_title("Open browser").click()
layers = page.locator(".umap-browser .datalayer")
paths = page.locator("path")
expect(paths).to_have_count(0)
expect(layers).to_have_count(0)
button = page.get_by_title("Import data")
expect(button).to_be_visible()
button.click()
textarea = page.locator(".umap-upload textarea")
file_path = Path(__file__).parent.parent / "fixtures/test_import_osm_relation.json"
textarea.fill(file_path.read_text())
page.locator('select[name="format"]').select_option("osm")
page.get_by_role("button", name="Import data", exact=True).click()
# A layer and one path has been created
expect(layers).to_have_count(1)
expect(paths).to_have_count(1)