diff --git a/.gitignore b/.gitignore
index 9b48636973..67d32960ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -97,12 +97,15 @@ data/system/gb/wichelstowe
data/system/gb/wixams
data/system/gb/wokingham
data/system/gb/wynyard
+data/system/hk/kowloon
data/system/il/tel_aviv
data/system/in/pune
data/system/ir/tehran
data/system/ly/tripoli
data/system/nz/auckland
data/system/jp/hiroshima
+data/system/jp/tokyo
+data/system/kr/seoul
data/system/pl/krakow
data/system/pl/warsaw
data/system/pt/lisbon
diff --git a/Cargo.lock b/Cargo.lock
index 472d78fc3f..14ec5fdc27 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1919,7 +1919,7 @@ dependencies = [
[[package]]
name = "geom"
version = "0.1.0"
-source = "git+https://github.com/a-b-street/geom#97d271a536fc5877e778189512b2f65212b8c8ed"
+source = "git+https://github.com/a-b-street/geom#9bb49fce2be2c527405a821ffd22c63869416976"
dependencies = [
"anyhow",
"earcutr",
@@ -3390,7 +3390,7 @@ checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
[[package]]
name = "osm2lanes"
version = "0.1.0"
-source = "git+https://github.com/a-b-street/osm2streets#ee4d022879169687ca8d97a9553f1c17251324f8"
+source = "git+https://github.com/a-b-street/osm2streets#bb4d1cdafd2138b1b50698ac64798cda01115e3b"
dependencies = [
"abstutil",
"anyhow",
@@ -3402,7 +3402,7 @@ dependencies = [
[[package]]
name = "osm2streets"
version = "0.1.0"
-source = "git+https://github.com/a-b-street/osm2streets#ee4d022879169687ca8d97a9553f1c17251324f8"
+source = "git+https://github.com/a-b-street/osm2streets#bb4d1cdafd2138b1b50698ac64798cda01115e3b"
dependencies = [
"abstutil",
"anyhow",
@@ -3637,8 +3637,9 @@ dependencies = [
[[package]]
name = "polylabel"
-version = "3.0.0"
-source = "git+https://github.com/dabreegster/polylabel-rs?branch=update_geo#f01b75acbc5ef9c8b1f61af8f74e3403c1ee9d0b"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93b10c25671a60bbd95b230005a8fa1964d34ee4dbcd7306c36fac979b660fab"
dependencies = [
"geo",
"num-traits",
@@ -4606,7 +4607,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "streets_reader"
version = "0.1.0"
-source = "git+https://github.com/a-b-street/osm2streets#ee4d022879169687ca8d97a9553f1c17251324f8"
+source = "git+https://github.com/a-b-street/osm2streets#bb4d1cdafd2138b1b50698ac64798cda01115e3b"
dependencies = [
"abstutil",
"anyhow",
diff --git a/data/MANIFEST.json b/data/MANIFEST.json
index c5e21f9ea4..b47924dfa5 100644
--- a/data/MANIFEST.json
+++ b/data/MANIFEST.json
@@ -935,6 +935,11 @@
"uncompressed_size_bytes": 14290313,
"compressed_size_bytes": 4214415
},
+ "data/input/hk/kowloon/raw_maps/tsim_sha_tsui.bin": {
+ "checksum": "778bfaaf350430767948e122c175e7af",
+ "uncompressed_size_bytes": 6977891,
+ "compressed_size_bytes": 1505560
+ },
"data/input/il/tel_aviv/raw_maps/center.bin": {
"checksum": "0fc91bd403e2365979ddd15ab9435fe6",
"uncompressed_size_bytes": 14161044,
@@ -1000,6 +1005,16 @@
"uncompressed_size_bytes": 474959,
"compressed_size_bytes": 149015
},
+ "data/input/jp/tokyo/raw_maps/shibuya.bin": {
+ "checksum": "2907137155eab7d879c6b272c822374f",
+ "uncompressed_size_bytes": 8929612,
+ "compressed_size_bytes": 2370982
+ },
+ "data/input/kr/seoul/raw_maps/itaewon_dong.bin": {
+ "checksum": "4a94e70dbcfd256bea89d2b55c4f9ecc",
+ "uncompressed_size_bytes": 4175249,
+ "compressed_size_bytes": 1153822
+ },
"data/input/ly/tripoli/raw_maps/center.bin": {
"checksum": "b80ee6dbfb41d2ce756026d1d827b055",
"uncompressed_size_bytes": 7813342,
@@ -1075,6 +1090,11 @@
"uncompressed_size_bytes": 54217485,
"compressed_size_bytes": 54057897
},
+ "data/input/shared/geofabrik/asia/china-latest.osm.pbf": {
+ "checksum": "83cfb5719ae73a7031c258d39fc5b191",
+ "uncompressed_size_bytes": 1081785095,
+ "compressed_size_bytes": 1080480391
+ },
"data/input/shared/geofabrik/asia/india-latest.osm.pbf": {
"checksum": "2bda0ae30306f73510846dff089b5edd",
"uncompressed_size_bytes": 1314526047,
@@ -1095,11 +1115,21 @@
"uncompressed_size_bytes": 159384670,
"compressed_size_bytes": 159153169
},
+ "data/input/shared/geofabrik/asia/japan/kanto-latest.osm.pbf": {
+ "checksum": "2b9c360f0f88f3299eda193995e8fc10",
+ "uncompressed_size_bytes": 379779692,
+ "compressed_size_bytes": 379226079
+ },
"data/input/shared/geofabrik/asia/malaysia-singapore-brunei-latest.osm.pbf": {
"checksum": "f7bc92125a62fb908c917b2f65ac3ff1",
"uncompressed_size_bytes": 198960533,
"compressed_size_bytes": 198716613
},
+ "data/input/shared/geofabrik/asia/south-korea-latest.osm.pbf": {
+ "checksum": "8ed10217d1c486e1c94198ad0dc64f43",
+ "uncompressed_size_bytes": 197399811,
+ "compressed_size_bytes": 197213123
+ },
"data/input/shared/geofabrik/asia/taiwan-latest.osm.pbf": {
"checksum": "59c9e9c99006b3434259cb64d76fbb70",
"uncompressed_size_bytes": 114907029,
@@ -1960,6 +1990,11 @@
"uncompressed_size_bytes": 42704,
"compressed_size_bytes": 24130
},
+ "data/system/extra_fonts/NotoSansKR-Regular.ttf": {
+ "checksum": "e910afbd441c5247227fb4a731d65799",
+ "uncompressed_size_bytes": 6192764,
+ "compressed_size_bytes": 3003864
+ },
"data/system/extra_fonts/NotoSerifCJKtc-Regular.otf": {
"checksum": "338584d1454293b6dfd84a9137153b3c",
"uncompressed_size_bytes": 23614420,
@@ -3905,6 +3940,11 @@
"uncompressed_size_bytes": 7181152,
"compressed_size_bytes": 1775644
},
+ "data/system/hk/kowloon/maps/tsim_sha_tsui.bin": {
+ "checksum": "51ee01d6f6327f706556da4eb7d096c7",
+ "uncompressed_size_bytes": 11367848,
+ "compressed_size_bytes": 3628467
+ },
"data/system/il/tel_aviv/maps/center.bin": {
"checksum": "d2ef8968a81cee19cd786d9f3942a6c9",
"uncompressed_size_bytes": 49042121,
@@ -3975,6 +4015,16 @@
"uncompressed_size_bytes": 1672245,
"compressed_size_bytes": 636628
},
+ "data/system/jp/tokyo/maps/shibuya.bin": {
+ "checksum": "209546f662e2318d3045cabe6e011adb",
+ "uncompressed_size_bytes": 21351607,
+ "compressed_size_bytes": 8128210
+ },
+ "data/system/kr/seoul/maps/itaewon_dong.bin": {
+ "checksum": "5916da8ea3ccb10fed8d62ab62a8b2e8",
+ "uncompressed_size_bytes": 17321534,
+ "compressed_size_bytes": 6792700
+ },
"data/system/ly/tripoli/maps/center.bin": {
"checksum": "0e50a58f25e9ed4617d15b461ed76452",
"uncompressed_size_bytes": 30753643,
diff --git a/data/system/assets/flags/hk.svg b/data/system/assets/flags/hk.svg
new file mode 100644
index 0000000000..c95457ca0a
--- /dev/null
+++ b/data/system/assets/flags/hk.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/system/assets/flags/kr.svg b/data/system/assets/flags/kr.svg
new file mode 100644
index 0000000000..a2b3074c1b
--- /dev/null
+++ b/data/system/assets/flags/kr.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/system/extra_fonts/NotoSansKR-Regular.ttf b/data/system/extra_fonts/NotoSansKR-Regular.ttf
new file mode 100644
index 0000000000..1b14d32473
Binary files /dev/null and b/data/system/extra_fonts/NotoSansKR-Regular.ttf differ
diff --git a/importer/config/hk/kowloon/tsim_sha_tsui.geojson b/importer/config/hk/kowloon/tsim_sha_tsui.geojson
new file mode 100644
index 0000000000..725b873af5
--- /dev/null
+++ b/importer/config/hk/kowloon/tsim_sha_tsui.geojson
@@ -0,0 +1,48 @@
+{
+ "type": "FeatureCollection",
+ "features": [
+ {
+ "type": "Feature",
+ "properties": {},
+ "geometry": {
+ "coordinates": [
+ [
+ [
+ 114.16160386797134,
+ 22.315792440162127
+ ],
+ [
+ 114.16171962226144,
+ 22.301710067644223
+ ],
+ [
+ 114.1676809682923,
+ 22.301870711078493
+ ],
+ [
+ 114.16924365123191,
+ 22.29448092189031
+ ],
+ [
+ 114.17821460884744,
+ 22.297801020460227
+ ],
+ [
+ 114.19013730090478,
+ 22.302352640274847
+ ],
+ [
+ 114.19152635240715,
+ 22.3148822156721
+ ],
+ [
+ 114.16160386797134,
+ 22.315792440162127
+ ]
+ ]
+ ],
+ "type": "Polygon"
+ }
+ }
+ ]
+}
diff --git a/importer/config/jp/tokyo/shibuya.geojson b/importer/config/jp/tokyo/shibuya.geojson
new file mode 100644
index 0000000000..a8f259e8be
--- /dev/null
+++ b/importer/config/jp/tokyo/shibuya.geojson
@@ -0,0 +1,36 @@
+{
+ "type": "FeatureCollection",
+ "features": [
+ {
+ "type": "Feature",
+ "properties": {},
+ "geometry": {
+ "coordinates": [
+ [
+ [
+ 139.68037337025942,
+ 35.66696129802982
+ ],
+ [
+ 139.68037337025942,
+ 35.64551935993049
+ ],
+ [
+ 139.72764182456154,
+ 35.64551935993049
+ ],
+ [
+ 139.72764182456154,
+ 35.66696129802982
+ ],
+ [
+ 139.68037337025942,
+ 35.66696129802982
+ ]
+ ]
+ ],
+ "type": "Polygon"
+ }
+ }
+ ]
+}
diff --git a/importer/config/kr/seoul/itaewon_dong.geojson b/importer/config/kr/seoul/itaewon_dong.geojson
new file mode 100644
index 0000000000..471dad2fdc
--- /dev/null
+++ b/importer/config/kr/seoul/itaewon_dong.geojson
@@ -0,0 +1,36 @@
+{
+ "type": "FeatureCollection",
+ "features": [
+ {
+ "type": "Feature",
+ "properties": {},
+ "geometry": {
+ "coordinates": [
+ [
+ [
+ 126.96255019339702,
+ 37.5504166249313
+ ],
+ [
+ 126.96255019339702,
+ 37.521140208573286
+ ],
+ [
+ 127.01019531611081,
+ 37.521140208573286
+ ],
+ [
+ 127.01019531611081,
+ 37.5504166249313
+ ],
+ [
+ 126.96255019339702,
+ 37.5504166249313
+ ]
+ ]
+ ],
+ "type": "Polygon"
+ }
+ }
+ ]
+}
diff --git a/map_gui/src/load.rs b/map_gui/src/load.rs
index a0593c5fe2..fd892c56f0 100644
--- a/map_gui/src/load.rs
+++ b/map_gui/src/load.rs
@@ -31,10 +31,10 @@ impl MapLoader {
) -> Box> {
// TODO Generalize this more, maybe with some kind of country code -> font config
if let Some(extra_font) = match name.city.country.as_ref() {
+ "hk" | "jp" | "tw" => Some("NotoSerifCJKtc-Regular.otf"),
"il" => Some("NotoSansHebrew-Regular.ttf"),
"ir" | "ly" => Some("NotoSansArabic-Regular.ttf"),
- "jp" => Some("NotoSerifCJKtc-Regular.otf"),
- "tw" => Some("NotoSerifCJKtc-Regular.otf"),
+ "kr" => Some("NotoSansKR-Regular.ttf"),
_ => None,
} {
if !ctx.is_font_loaded(extra_font) {
diff --git a/map_gui/src/tools/mod.rs b/map_gui/src/tools/mod.rs
index ee41c99d0c..2da4d9d302 100644
--- a/map_gui/src/tools/mod.rs
+++ b/map_gui/src/tools/mod.rs
@@ -245,6 +245,10 @@ pub fn nice_map_name(name: &MapName) -> &str {
("wynyard", "center") => "Wynyard",
_ => &name.map,
},
+ "hk" => match (name.city.city.as_ref(), name.map.as_ref()) {
+ ("kowloon", "tsim_sha_tsui") => "Tsim Sha Tsui",
+ _ => &name.map,
+ },
"il" => match (name.city.city.as_ref(), name.map.as_ref()) {
("tel_aviv", "center") => "Tel Aviv (city center)",
_ => &name.map,
@@ -259,6 +263,11 @@ pub fn nice_map_name(name: &MapName) -> &str {
},
"jp" => match (name.city.city.as_ref(), name.map.as_ref()) {
("hiroshima", "uni") => "Hiroshima University",
+ ("tokyo", "shibuya") => "Shibuya",
+ _ => &name.map,
+ },
+ "kr" => match (name.city.city.as_ref(), name.map.as_ref()) {
+ ("seoul", "itaewon_dong") => "Itaewon Dong",
_ => &name.map,
},
"ly" => match (name.city.city.as_ref(), name.map.as_ref()) {
@@ -350,7 +359,9 @@ pub fn nice_country_name(code: &str) -> &str {
"il" => "Israel",
"in" => "India",
"ir" => "Iran",
+ "hk" => "Hong Kong",
"jp" => "Japan",
+ "kr" => "South Korea",
"ly" => "Libya",
"nl" => "Netherlands",
"nz" => "New Zealand",