diff --git a/index.html b/index.html index 84dad04..f3e7f46 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - + =12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "peer": true, + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "peer": true, + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo-voronoi": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-geo-voronoi/-/d3-geo-voronoi-2.0.1.tgz", + "integrity": "sha512-KeBrhSLyN6fdcjGxpmil9I7JNsRQIbp58PybKFnebG1qpbwon5ia43epUpYgjgZZxfrhjb+3up0f6IwkQuPkwg==", + "peer": true, + "dependencies": { + "d3-array": "3", + "d3-delaunay": "6", + "d3-geo": "3", + "d3-tricontour": "1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "peer": true, + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "peer": true, + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "peer": true, + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "peer": true, + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-tricontour": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d3-tricontour/-/d3-tricontour-1.0.2.tgz", + "integrity": "sha512-HIRxHzHagPtUPNabjOlfcyismJYIsc+Xlq4mlsts4e8eAcwyq9Tgk/sYdyhlBpQ0MHwVquc/8j+e29YjXnmxeA==", + "peer": true, + "dependencies": { + "d3-delaunay": "6", + "d3-scale": "4" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1265,6 +1434,15 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "peer": true, + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1289,6 +1467,12 @@ "node": ">=6.0.0" } }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "peer": true + }, "node_modules/esbuild": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", @@ -1666,6 +1850,16 @@ "node": ">=10.13.0" } }, + "node_modules/glob3d": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/glob3d/-/glob3d-0.2.0.tgz", + "integrity": "sha512-6YmbYh4DFRSxs4Nh12DmlMdaRUgLLVyVB032P4eareqN49LEYiDm/65ymIzbCY85K2ZDjqEL49QQkUFR65yUrg==", + "peerDependencies": { + "h3-js": "^4.1.0", + "three": "^0.162.0", + "three-conic-polygon-geometry": "^1.6.3" + } + }, "node_modules/globals": { "version": "13.23.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", @@ -1707,6 +1901,17 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, + "node_modules/h3-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-4.1.0.tgz", + "integrity": "sha512-LQhmMl1dRQQjMXPzJc7MpZ/CqPOWWuAvVEoVJM9n/s7vHypj+c3Pd5rLQCkAsOgAoAYKbNCsYFE++LF7MvSfCQ==", + "peer": true, + "engines": { + "node": ">=4", + "npm": ">=3", + "yarn": ">=1.3.0" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1776,6 +1981,15 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "peer": true, + "engines": { + "node": ">=12" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -2322,6 +2536,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "peer": true + }, "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -2485,6 +2705,33 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/three": { + "version": "0.162.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.162.0.tgz", + "integrity": "sha512-xfCYj4RnlozReCmUd+XQzj6/5OjDNHBy5nT6rVwrOKGENAvpXe2z1jL+DZYaMu4/9pNsjH/4Os/VvS9IrH7IOQ==", + "peer": true + }, + "node_modules/three-conic-polygon-geometry": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/three-conic-polygon-geometry/-/three-conic-polygon-geometry-1.6.3.tgz", + "integrity": "sha512-uJhuUBHc5K4IFQ+31qVQboMIlEQ485WWX7+pN4qR2p4ctTO66nlJ2NWrXNn8x2A89Utyf09v+zyBIpWUVe1inQ==", + "peer": true, + "dependencies": { + "@turf/boolean-point-in-polygon": "^6.5", + "d3-array": "1 - 3", + "d3-geo": "1 - 3", + "d3-geo-voronoi": "^2.0", + "d3-scale": "1 - 4", + "delaunator": "5", + "earcut": "2" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "three": ">=0.72.0" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", diff --git a/package.json b/package.json index 705c680..c03626d 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "dependencies": { "@tanstack/react-query": "^5.17.19", "clsx": "^2.0.0", + "glob3d": "^0.2.0", "nuka-carousel": "^7.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/public/assets/favicon.svg b/public/assets/favicon.svg new file mode 100644 index 0000000..8d8f2a2 --- /dev/null +++ b/public/assets/favicon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/assets/icons/icon-128x128.png b/public/assets/icons/icon-128x128.png deleted file mode 100644 index ba44cbf..0000000 Binary files a/public/assets/icons/icon-128x128.png and /dev/null differ diff --git a/public/assets/icons/icon-144x144.png b/public/assets/icons/icon-144x144.png deleted file mode 100644 index d95ea86..0000000 Binary files a/public/assets/icons/icon-144x144.png and /dev/null differ diff --git a/public/assets/icons/icon-152x152.png b/public/assets/icons/icon-152x152.png deleted file mode 100644 index 3ef646b..0000000 Binary files a/public/assets/icons/icon-152x152.png and /dev/null differ diff --git a/public/assets/icons/icon-192x192.png b/public/assets/icons/icon-192x192.png deleted file mode 100644 index 91917b2..0000000 Binary files a/public/assets/icons/icon-192x192.png and /dev/null differ diff --git a/public/assets/icons/icon-384x384.png b/public/assets/icons/icon-384x384.png deleted file mode 100644 index 913a50f..0000000 Binary files a/public/assets/icons/icon-384x384.png and /dev/null differ diff --git a/public/assets/icons/icon-512x512.png b/public/assets/icons/icon-512x512.png deleted file mode 100644 index a06edfc..0000000 Binary files a/public/assets/icons/icon-512x512.png and /dev/null differ diff --git a/public/assets/icons/icon-72x72.png b/public/assets/icons/icon-72x72.png deleted file mode 100644 index 189e1df..0000000 Binary files a/public/assets/icons/icon-72x72.png and /dev/null differ diff --git a/public/assets/icons/icon-96x96.png b/public/assets/icons/icon-96x96.png deleted file mode 100644 index ce03848..0000000 Binary files a/public/assets/icons/icon-96x96.png and /dev/null differ diff --git a/public/vite.svg b/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/svg/menu.svg b/src/assets/svg/menu.svg index a48baad..edd9158 100644 --- a/src/assets/svg/menu.svg +++ b/src/assets/svg/menu.svg @@ -1,74 +1,86 @@ - - - + + + - - + + - - - - + + + - - + + - - - - + + + - - + + - - - - + + + - - + + - - - - + + + - - + + - - - - + + + - - + + - - - - + + + - - + + - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - \ No newline at end of file diff --git a/src/components/Accordion.module.scss b/src/components/Accordion.module.scss index 4401e64..67f6cfa 100644 --- a/src/components/Accordion.module.scss +++ b/src/components/Accordion.module.scss @@ -92,6 +92,9 @@ &.resume { @include accordionLabel(resume); } + &.glob3d { + @include accordionLabel(glob3d); + } &.tasktimer { @include accordionLabel(tasktimer); } diff --git a/src/components/BlockTitle.module.scss b/src/components/BlockTitle.module.scss index b75bfe0..5910c24 100644 --- a/src/components/BlockTitle.module.scss +++ b/src/components/BlockTitle.module.scss @@ -32,6 +32,9 @@ &.resume { @include blockTitle(resume); } + &.glob3d { + @include blockTitle(glob3d); + } &.tasktimer { @include blockTitle(tasktimer); } @@ -44,12 +47,6 @@ &.archviz { @include blockTitle(archviz); } - &.quotes { - @include blockTitle(quotes); - } - &.other { - @include blockTitle(other); - } @media only screen and (min-width: $media-m) { font-size: $tabHeading-size-lg; diff --git a/src/components/Burger.module.scss b/src/components/Burger.module.scss index c795669..515633f 100644 --- a/src/components/Burger.module.scss +++ b/src/components/Burger.module.scss @@ -27,6 +27,9 @@ &.resume { fill: $color-resume; } + &.glob3d { + fill: $color-glob3d; + } &.tasktimer { fill: $color-tasktimer; } @@ -39,12 +42,6 @@ &.archviz { fill: $color-archviz; } - &.quotes { - fill: $color-quotes; - } - &.other { - fill: $color-other; - } &.contact { fill: $color-contact; } diff --git a/src/components/Demo.module.scss b/src/components/Demo.module.scss index aa251b3..c0d3aa6 100644 --- a/src/components/Demo.module.scss +++ b/src/components/Demo.module.scss @@ -1,44 +1,17 @@ @use '../styles/variables.scss' as var; -@use '../styles/mixins.scss' as mix; $icon-size: 1.3rem; -@mixin projectLink($project) { - border-color: map-get(var.$colors, #{$project}-diff); - - .link { - background-color: map-get(var.$colors, #{$project}-diff); - color: map-get(var.$colors, #{$project}-white); - - &::before { - border-color: map-get(var.$colors, #{$project}-diff-dark); - } - &:active, - &:focus, - &:hover { - color: map-get(var.$colors, #{$project}-white); - background-color: rgba( - $color: map-get(var.$colors, #{$project}-diff-dark), - $alpha: var.$background-opacity - ); - } - } -} - .demo { align-items: center; display: flex; - flex-direction: column; - gap: 50px; - grid-area: demo; - margin: 20px -1.2 * var.$offset-right-s 0 -1.2 * var.$offset-left-s; + justify-content: flex-end; + max-width: 1200px; + overflow: hidden; + width: 100%; @media screen and (min-width: var.$media-m) { - margin: 0; - } - - :global(.slider-container) { - width: 99%; + height: 100vh; } .arrow { @@ -64,70 +37,12 @@ $icon-size: 1.3rem; } } - .links { - display: flex; - font-size: 1.6rem; - gap: 10px; - grid-area: links; - - .link { - @include mix.button; - @include mix.flex-center; + .globe { + height: 500px; + width: 100%; - min-width: 50px; - padding: 0.3em 1em; - position: relative; - text-decoration: none; - text-transform: uppercase; - transition: background-color var.$button-hover, color var.$button-hover; - - &::before { - border-style: solid; - border-width: 0; - bottom: 0; - content: ''; - left: 0; - opacity: 0.6; - position: absolute; - right: 0; - top: 0; - transition: border-width var.$button-hover; - } - - &:active::before, - &:focus::before, - &:hover::before { - border-left-width: 10px; - border-top-width: 10px; - } - } - - &.about { - border-color: var.$color-about-diff; - - .link { - border-color: inherit; - color: var.$color-about-diff; - &:hover { - border-color: var.$color-about-shadow; - color: var.$color-about-shadow; - } - } - } - &.tasktimer { - @include projectLink('tasktimer'); - } - &.portfolio { - @include projectLink('portfolio'); - } - &.hydrapp { - @include projectLink('hydrapp'); - } - &.archviz { - @include projectLink('archviz'); - } - &.quotes { - @include projectLink('quotes'); + @media screen and (min-width: var.$media-m) { + height: 100%; } } } diff --git a/src/components/Demo.tsx b/src/components/Demo.tsx index f6f06f8..677c921 100644 --- a/src/components/Demo.tsx +++ b/src/components/Demo.tsx @@ -1,53 +1,61 @@ import clsx from 'clsx'; - +// @ts-expect-error types not available +import { BarGlob3d } from 'glob3d'; import Carousel from 'nuka-carousel'; +import { useEffect, useRef, useState } from 'react'; + +import { getCitiesData } from '../utils/citiesData'; import classes from './Demo.module.scss'; type DemoProps = { projectName: string; - demoUrl: string; - repoUrl: string; snapshots: string[]; }; -const Demo = ({ projectName, demoUrl, repoUrl, snapshots }: DemoProps) => { - if (!snapshots.length) return null; +const Demo = ({ projectName, snapshots }: DemoProps) => { + const globeRef = useRef(null); + const data = getCitiesData(); + const [_globeInstance, setGlobeInstance] = useState(null); + + useEffect(() => { + if ( + projectName === 'glob3d' && + globeRef.current && + globeRef.current.children.length === 0 + ) { + setGlobeInstance( + new BarGlob3d(globeRef.current, data, { + tooltipValueSuffix: 'people', + globeColor: '#048279', + barColor: '#c2f3ef', + barActiveColor: '#d29a21', + tooltipActiveBackgroundColor: '#d29a21', + }) + ); + } + }, []); // eslint-disable-line react-hooks/exhaustive-deps + return (
-
- ), - nextButtonText: ( -
- ), - }} - > - {snapshots.map((img, index) => ( - - ))} - -
- - Code - - 0 && ( +
+ ), + nextButtonText: ( +
+ ), + }} > - Demo -
- + {snapshots.map((img, index) => ( + + ))} + + )} + {projectName === 'glob3d' && ( +
+ )} ); }; diff --git a/src/components/Graphic.module.scss b/src/components/Graphic.module.scss index ed22b1e..0bf9d2f 100644 --- a/src/components/Graphic.module.scss +++ b/src/components/Graphic.module.scss @@ -27,6 +27,9 @@ &.resume { @include graphic(resume); } + &.glob3d { + @include graphic(glob3d); + } &.tasktimer { @include graphic(tasktimer); // tasktimerBase, tasktimerLetter } @@ -39,12 +42,6 @@ &.archviz { @include graphic(archviz); } - &.quotes { - @include graphic(quotes); - } - &.other { - @include graphic(other); - } &.contact { @include graphic(contact); } diff --git a/src/components/Menu.module.scss b/src/components/Menu.module.scss index 8f909ec..414063a 100644 --- a/src/components/Menu.module.scss +++ b/src/components/Menu.module.scss @@ -90,6 +90,9 @@ &.intro.resume { background-color: $color-resume; } + &.intro.glob3d { + background-color: $color-glob3d; + } &.intro.tasktimer { background-color: $color-tasktimer; } diff --git a/src/components/MenuBackground.module.scss b/src/components/MenuBackground.module.scss index 7556ea9..b9ffa0b 100644 --- a/src/components/MenuBackground.module.scss +++ b/src/components/MenuBackground.module.scss @@ -48,6 +48,9 @@ &.resume { background-color: $color-resume-diff; } + &.glob3d { + background-color: $color-glob3d-diff; + } &.tasktimer { background-color: $color-tasktimer-diff; } @@ -60,12 +63,6 @@ &.archviz { background-color: $color-archviz-diff; } - &.quotes { - background-color: $color-quotes-diff; - } - &.other { - background-color: $color-other-diff; - } &.contact { background-color: $color-contact-diff; } diff --git a/src/components/MenuButton.module.scss b/src/components/MenuButton.module.scss index 2690da3..65036ea 100644 --- a/src/components/MenuButton.module.scss +++ b/src/components/MenuButton.module.scss @@ -28,6 +28,9 @@ &.resume.hovered { fill: $color-resume; } + &.glob3d.hovered { + fill: $color-glob3d; + } &.tasktimer.hovered { fill: $color-tasktimer; } @@ -40,12 +43,6 @@ &.archviz.hovered { fill: $color-archviz; } - &.quotes.hovered { - fill: $color-quotes; - } - &.other.hovered { - fill: $color-other; - } &.contact.hovered { fill: $color-contact; } @@ -60,6 +57,9 @@ &.tasktimer { @include menuButton(tasktimer); } + &.glob3d { + @include menuButton(glob3d); + } &.portfolio { @include menuButton(portfolio); } @@ -69,12 +69,6 @@ &.archviz { @include menuButton(archviz); } - &.quotes { - @include menuButton(quotes); - } - &.other { - @include menuButton(other); - } &.contact { @include menuButton(contact); } diff --git a/src/components/MobileMenu.module.scss b/src/components/MobileMenu.module.scss index e6b6453..2faa552 100644 --- a/src/components/MobileMenu.module.scss +++ b/src/components/MobileMenu.module.scss @@ -70,6 +70,9 @@ &.resume { background-color: $color-resume; } + &.glob3d { + background-color: $color-glob3d; + } &.tasktimer { background-color: $color-tasktimer; } diff --git a/src/components/MobileMenuButton.module.scss b/src/components/MobileMenuButton.module.scss index 0289a52..38856ed 100644 --- a/src/components/MobileMenuButton.module.scss +++ b/src/components/MobileMenuButton.module.scss @@ -43,6 +43,9 @@ &.tasktimer.active { fill: $color-tasktimer; } + &.glob3d.active { + fill: $color-glob3d; + } &.hydrapp.active { fill: $color-hydrapp; } diff --git a/src/components/Navigator.module.scss b/src/components/Navigator.module.scss index 7aa3d2f..7098acd 100644 --- a/src/components/Navigator.module.scss +++ b/src/components/Navigator.module.scss @@ -33,6 +33,9 @@ &.tasktimer .button { @include navigatorButton(tasktimer); } + &.glob3d .button { + @include navigatorButton(glob3d); + } &.portfolio .button { @include navigatorButton(portfolio); } @@ -42,12 +45,6 @@ &.archviz .button { @include navigatorButton(archviz); } - &.quotes .button { - @include navigatorButton(quotes); - } - &.other .button { - @include navigatorButton(other); - } &.contact .button { @include navigatorButton(contact); } diff --git a/src/components/ProjectFeatures.module.scss b/src/components/ProjectFeatures.module.scss index 83e21a0..5c399c3 100644 --- a/src/components/ProjectFeatures.module.scss +++ b/src/components/ProjectFeatures.module.scss @@ -50,6 +50,9 @@ &.tasktimer { @include projectFeature(tasktimer); } + &.glob3d { + @include projectFeature(glob3d); + } &.hydrapp { @include projectFeature(hydrapp); } @@ -59,10 +62,4 @@ &.archviz { @include projectFeature(archviz); } - &.quotes { - @include projectFeature(quotes); - } - &.other { - @include projectFeature(other); - } } diff --git a/src/components/ProjectLink.module.scss b/src/components/ProjectLink.module.scss new file mode 100644 index 0000000..0519f74 --- /dev/null +++ b/src/components/ProjectLink.module.scss @@ -0,0 +1,76 @@ +@use '../styles/variables.scss' as var; +@use '../styles/mixins.scss' as mix; + +@mixin projectLink($project) { + border-color: map-get(var.$colors, #{$project}-diff); + + &.link { + background-color: map-get(var.$colors, #{$project}-diff); + color: map-get(var.$colors, #{$project}-white); + + &::before { + border-color: map-get(var.$colors, #{$project}-diff-dark); + } + &:active, + &:focus, + &:hover { + color: map-get(var.$colors, #{$project}-white); + background-color: rgba( + $color: map-get(var.$colors, #{$project}-diff-dark), + $alpha: var.$background-opacity + ); + } + } +} + +.link { + @include mix.button; + @include mix.flex-center; + + font-size: 1.6rem; + min-width: 50px; + padding: 0.3em 1em; + position: relative; + text-decoration: none; + text-transform: uppercase; + transition: background-color var.$button-hover, color var.$button-hover; + + &::before { + border-style: solid; + border-width: 0; + bottom: 0; + content: ''; + left: 0; + opacity: 0.6; + position: absolute; + right: 0; + top: 0; + transition: border-width var.$button-hover; + } + + &:active::before, + &:focus::before, + &:hover::before { + border-left-width: 10px; + border-top-width: 10px; + } + + &.glob3d { + @include projectLink('glob3d'); + } + &.tasktimer { + @include projectLink('tasktimer'); + } + &.portfolio { + @include projectLink('portfolio'); + } + &.hydrapp { + @include projectLink('hydrapp'); + } + &.archviz { + @include projectLink('archviz'); + } + &.quotes { + @include projectLink('quotes'); + } +} diff --git a/src/components/ProjectLink.tsx b/src/components/ProjectLink.tsx new file mode 100644 index 0000000..73f333c --- /dev/null +++ b/src/components/ProjectLink.tsx @@ -0,0 +1,23 @@ +import clsx from 'clsx'; + +import classes from './ProjectLink.module.scss'; + +type ProjectLinkProps = { + projectName: string; + url: string; + label: string; +}; + +const ProjectLink = ({ projectName, url, label }: ProjectLinkProps) => ( + + {label} + +); + +export default ProjectLink; diff --git a/src/components/Tag.module.scss b/src/components/Tag.module.scss index 5e0c96a..84dc1b9 100644 --- a/src/components/Tag.module.scss +++ b/src/components/Tag.module.scss @@ -19,8 +19,12 @@ display: flex; flex-direction: column; font-size: 0.9rem; + height: 100%; padding: 5px 10px; + &.glob3d { + @include tag(glob3d); + } &.tasktimer { @include tag(tasktimer); } diff --git a/src/components/groups/TextGroup.module.scss b/src/components/groups/TextGroup.module.scss index dec77eb..113f231 100644 --- a/src/components/groups/TextGroup.module.scss +++ b/src/components/groups/TextGroup.module.scss @@ -9,6 +9,10 @@ padding-left: 0; margin: 0; + &.glob3d { + @include normalText(glob3d); + } + &.tasktimer { @include normalText(tasktimer); } diff --git a/src/components/icons/Icon.module.scss b/src/components/icons/Icon.module.scss index ea91951..6bf307f 100644 --- a/src/components/icons/Icon.module.scss +++ b/src/components/icons/Icon.module.scss @@ -6,10 +6,7 @@ $size-icon-m: 50px; @mixin icon($project) { .icon { - background-color: rgba( - $color: map-get($colors, #{$project}-dark), - $alpha: $background-opacity - ); + background-color: map-get($colors, #{$project}-dark); fill: map-get($colors, #{$project}-light); } .name { @@ -90,6 +87,9 @@ $size-icon-m: 50px; &.resume { @include icon(resume); } + &.glob3d { + @include icon(glob3d); + } &.tasktimer { @include icon(tasktimer); } @@ -102,12 +102,6 @@ $size-icon-m: 50px; &.archviz { @include icon(archviz); } - &.quotes { - @include icon(quotes); - } - &.other { - @include icon(other); - } &.contact { @include icon(contact); } diff --git a/src/content/menu.json b/src/content/menu.json index b3559d5..b3b15af 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -1,34 +1,34 @@ [ { "label": "about", - "width": 263 + "width": 255 }, { "label": "resume", - "width": 328 + "width": 317 + }, + { + "label": "glob3d", + "width": 303 }, { "label": "tasktimer", - "width": 450 + "width": 433 }, { "label": "hydrapp", - "width": 375 + "width": 372 }, { "label": "portfolio", - "width": 428 + "width": 416 }, { "label": "archviz", - "width": 352 - }, - { - "label": "quotes", - "width": 299 + "width": 338 }, { "label": "contact", - "width": 355 + "width": 343 } ] diff --git a/src/content/projects.json b/src/content/projects.json index a800d59..9c4ed3c 100644 --- a/src/content/projects.json +++ b/src/content/projects.json @@ -1,4 +1,39 @@ [ + { + "name": "glob3d", + "repoName": "glob3d", + "about": [ + "My first npm package built using vanilla JS, Three.js and TypeScript. It is a 3D globe with a customizable set of markers, each with a tooltip. The globe can be rotated and zoomed in and out. The package is published on npm and can be easily installed and used in any project." + ], + "features": [ + { + "label": "Functionality", + "items": [ + "the package allows to visualize bar markers on the globe or just bare globe", + "there is many options to customize the globe, markers and tooltips", + "highlighting markers on hover and click events" + ] + } + ], + "icons": [ + { + "name": "typescript", + "totalSVG": 1 + }, + { + "name": "javascript", + "totalSVG": 3 + }, + { + "name": "threejs", + "totalSVG": 1 + }, + { + "name": "sass", + "totalSVG": 1 + } + ] + }, { "name": "tasktimer", "repoName": "task-timer", @@ -172,43 +207,5 @@ "totalSVG": 1 } ] - }, - { - "name": "quotes", - "repoName": "homepage-gulp", - "about": [ - "This project is a Multi-Page Application (MPA) featuring a collection of quotes accompanied by visually appealing images. The design emphasizes continuity during navigation to mimic the feel of a simple app. All images were personally captured and post-processed during my year-long stay in Slovenia." - ], - "features": [ - { - "label": "Functionality", - "items": [ - "simple and basic PWA app", - "keyboard support for navigating between pages", - "animated SVG icons", - "local storage support for contact form's inputs", - "contact form's HTML validation", - "checkboxes validation and alerts" - ] - } - ], - "icons": [ - { - "name": "html", - "totalSVG": 3 - }, - { - "name": "css", - "totalSVG": 3 - }, - { - "name": "javascript", - "totalSVG": 3 - }, - { - "name": "sass", - "totalSVG": 1 - } - ] } ] diff --git a/src/data/cities100.json b/src/data/cities100.json new file mode 100644 index 0000000..c48877a --- /dev/null +++ b/src/data/cities100.json @@ -0,0 +1,8270 @@ +{ + "total_count": 508, + "results": [ + { + "geoname_id": "1796236", + "name": "Shanghai", + "ascii_name": "Shanghai", + "alternate_names": [ + "SHA", + "San'nkae", + "Sanchajus", + "Sangaj", + "Sangay", + "Sanghaj", + "Sanghay", + "Sanhaja", + "Sanhajo", + "Sanxay", + "Schanghai", + "Shang-hai", + "Shang-hai-shih", + "Shangai", + "Shangaj", + "Shanghai", + "Shanghai - shang hai", + "Shanghai - 上海", + "Shankhaj", + "Sjanghae", + "Sjanghai", + "Sjanghæ", + "Szanghaj", + "Thuong Hai", + "Thượng Hải", + "Xangai", + "cankay", + "sangha'i", + "sanghae", + "sanghai", + "seiynghi", + "shang hai", + "shang hai shi", + "shanghay", + "shanghhay", + "shanhai", + "zhong guo shang hai", + "Ŝanhajo", + "Şangay", + "Şanghay", + "Şanxay", + "Šanchajus", + "Šangaj", + "Šanghaj", + "Šanhaja", + "Σανγκάη", + "Шангај", + "Шанхай", + "שאנגחאי", + "شانغهاي", + "شانگهای", + "شاڭخەي", + "شاڭخەي شەھىرى", + "সাংঘাই", + "சாங்காய்", + "เซี่ยงไฮ้", + "შანჰაი", + "上海", + "上海市", + "中国上海", + "상하이", + "상해" + ], + "latitude": "31.22222", + "longitude": "121.45806", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "23", + "admin2_code": "12324204", + "admin3_code": null, + "admin4_code": null, + "population": 22315474, + "elevation": null, + "dem": 12, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 121.45806, + "lat": 31.22222 + } + }, + { + "geoname_id": "1816670", + "name": "Beijing", + "ascii_name": "Beijing", + "alternate_names": ["too many elements to preview"], + "latitude": "39.9075", + "longitude": "116.39723", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "22", + "admin2_code": "11876380", + "admin3_code": null, + "admin4_code": null, + "population": 18960744, + "elevation": null, + "dem": 49, + "timezone": "Asia/Shanghai", + "modification_date": "2022-03-07", + "country": "China", + "coordinates": { + "lon": 116.39723, + "lat": 39.9075 + } + }, + { + "geoname_id": "1795565", + "name": "Shenzhen", + "ascii_name": "Shenzhen", + "alternate_names": [ + "Bao'an", + "Chhum-chun-su", + "Chhṳ̂m-chun-sṳ", + "Pao-an", + "Pao-an-hsien", + "SZX", + "Sen-cen", + "Sencsen", + "Sendzenas", + "Senjeno", + "Senzden", + "Sham Chun Hu", + "Shehn'chzhehn'", + "Shen'chzhen'", + "Shen-ch'uan", + "Shen-ch'uan-chen", + "Shen-ch'uan-hsu", + "Shen-ch'üan", + "Shen-ch'üan-chen", + "Shen-ch'üan-hsü", + "Shen-chen", + "Shen-chun", + "Shendzen", + "Shenzhen", + "Shiem Chun", + "Shumchun", + "Shumchün", + "Shundzhun", + "Tham Quyen", + "Thâm Quyến", + "Tschhimtschun", + "cenccen", + "sainazaina", + "sein cein", + "senacena", + "sencena", + "senjhena", + "seonjeon si", + "shen zhen", + "shen zhen shi", + "shensen shi", + "shynzhyn", + "shynzyn", + "simcheon", + "sng'n", + "Ŝenĵeno", + "Šen-čen", + "Šendženas", + "Šenžden", + "Шеньчжень", + "Шенџен", + "Шънджън", + "Шэньчжэнь", + "שנג'ן", + "شن‌ژن", + "شينزين", + "شینژین", + "شېنجېن شەھىرى", + "शेन्झेन", + "षेंचेन", + "শেনচেন", + "ਸ਼ੈਨਜ਼ੈਨ", + "சென்ச்சென்", + "షెన్‌జెన్", + "เซินเจิ้น", + "深セン市", + "深圳", + "深圳市", + "선전 시", + "심천" + ], + "latitude": "22.54554", + "longitude": "114.0683", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "30", + "admin2_code": "4403", + "admin3_code": null, + "admin4_code": null, + "population": 17494398, + "elevation": null, + "dem": 4, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-25", + "country": "China", + "coordinates": { + "lon": 114.0683, + "lat": 22.54554 + } + }, + { + "geoname_id": "1809858", + "name": "Guangzhou", + "ascii_name": "Guangzhou", + "alternate_names": ["too many elements to preview"], + "latitude": "23.11667", + "longitude": "113.25", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "30", + "admin2_code": "4401", + "admin3_code": null, + "admin4_code": null, + "population": 16096724, + "elevation": null, + "dem": 15, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-25", + "country": "China", + "coordinates": { + "lon": 113.25, + "lat": 23.11667 + } + }, + { + "geoname_id": "2314302", + "name": "Kinshasa", + "ascii_name": "Kinshasa", + "alternate_names": [ + "FIH", + "Kincasa", + "Kinchasa", + "Kinchassa", + "Kinsas", + "Kinsasa", + "Kinsaso", + "Kinshasa", + "Kinshase", + "Kinsjasa", + "Kinszasa", + "Kinsásá", + "Kinxasa", + "Kinŝaso", + "Kinşasa", + "Kinšas", + "Kinšasa", + "Kînşasa", + "Leopoldstad", + "Leopoldville", + "Léopoldville", + "Quinxassa", + "jin sha sa", + "jin xia sha", + "kin cha sa", + "kinasasa", + "kinsaca", + "kinsasa", + "kinshasa", + "kinsyasa", + "knshasa", + "kynshasa", + "lei bao cheng", + "Κινσάσα", + "Киншаса", + "Киншасе", + "Кіншаса", + "Կինշասա", + "קינשאזע", + "קינשאסה", + "كينشاسا", + "کنشاسا", + "کنشاسہ", + "کینشاسا", + "किन्शासा", + "কিনশাসা", + "ਕਿਨਸ਼ਾਸਾ", + "கின்ஷாசா", + "കിൻഷസ", + "กินชาซา", + "ཀིན་ཤ་ས།", + "ကင်ရှာဆာမြို့", + "კინშასა", + "ኪንሻሳ", + "キンシャサ", + "金夏沙", + "金沙薩", + "雷堡城", + "킨샤사" + ], + "latitude": "-4.32758", + "longitude": "15.31357", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "CD", + "country_code_2": null, + "admin1_code": "06", + "admin2_code": "00", + "admin3_code": null, + "admin4_code": null, + "population": 16000000, + "elevation": null, + "dem": 281, + "timezone": "Africa/Kinshasa", + "modification_date": "2023-11-29", + "country": "Democratic Republic of the Congo", + "coordinates": { + "lon": 15.31357, + "lat": -4.32758 + } + }, + { + "geoname_id": "2332459", + "name": "Lagos", + "ascii_name": "Lagos", + "alternate_names": [ + "Eko", + "LOS", + "Lacupolis", + "Lagas", + "Lagos", + "Lagos shaary", + "Lagosa", + "Lagosas", + "Lagoso", + "Laguosos", + "Laqos", + "Logos", + "la ge si", + "lageas", + "laghws", + "lagos", + "lagosa", + "lagoseu", + "lagosi", + "laguseu", + "lagws", + "lajws", + "lakos", + "legosa", + "lek xs", + "ragosu", + "Èkó", + "Λάγος", + "Лагас", + "Лагос", + "Лагос шаары", + "Лаґос", + "Լագոս", + "לאגאס", + "לאגוס", + "لاجوس", + "لاغوس", + "لاگوس", + "لاگۆس", + "लागोस", + "লেগোস", + "ਲਾਗੋਸ", + "લાગોસ", + "லாகோஸ்", + "లాగోస్", + "ಲಾಗೊಸ್", + "ലാഗോസ്", + "เลกอส", + "လေးဂို့စ်မြို့", + "ლაგოსი", + "ሌጎስ", + "ラゴス", + "拉哥斯", + "라고스", + "라구스" + ], + "latitude": "6.45407", + "longitude": "3.39467", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "NG", + "country_code_2": null, + "admin1_code": "05", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 15388000, + "elevation": null, + "dem": 11, + "timezone": "Africa/Lagos", + "modification_date": "2023-10-25", + "country": "Nigeria", + "coordinates": { + "lon": 3.39467, + "lat": 6.45407 + } + }, + { + "geoname_id": "745044", + "name": "Istanbul", + "ascii_name": "Istanbul", + "alternate_names": [ + "Bizanc", + "Bizánc", + "Byzance", + "Byzantion", + "Byzantium", + "Byzanz", + "Carigrad", + "Constantinoble", + "Constantinopla", + "Constantinople", + "Constantinopolen", + "Constantinopoli", + "Constantinopolis", + "Costantinopoli", + "Estambul", + "IST", + "Istamboul", + "Istambul", + "Istambuł", + "Istampoul", + "Istanbul", + "Istanbúl", + "Isztambul", + "Konstantinapoly", + "Konstantinopel", + "Konstantinopol", + "Konstantinopolo", + "Konstantinoupoli", + "Konstantinoupolis", + "Konstantinápoly", + "Kustantiniyah", + "Micklagard", + "Micklagård", + "Mikligardur", + "Mikligarður", + "Stamboul", + "Stambul", + "Stambula", + "Stambuł", + "Tsarigrad", + "Vizantija (Vizantija)", + "Vyzantio", + "astnbwl", + "bijantium", + "byuzantion", + "byzntywn", + "iseutanbul", + "istambula", + "isutanburu", + "stin Poli [stimˈboli]", + "yi si tan bao", + "yi si tan bu er", + "İstanbul", + "Βυζάντιο", + "Βυζαντιο", + "Ισταμπουλ", + "Ισταμπούλ", + "Κωνσταντινουπολη", + "Κωνσταντινούπολη", + "Κωνσταντινούπολις", + "στην Πόλι [stimˈboli]", + "Византија (Vizantija)", + "Истанбул", + "Стамбул", + "ביזנטיון", + "اسطنبول", + "इस्तांबुल", + "ইস্তাম্বুল", + "イスタンブール", + "ビュザンティオン", + "伊斯坦堡", + "伊斯坦布尔", + "비잔티움", + "이스탄불" + ], + "latitude": "41.01384", + "longitude": "28.94966", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "TR", + "country_code_2": null, + "admin1_code": "34", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 14804116, + "elevation": null, + "dem": 39, + "timezone": "Europe/Istanbul", + "modification_date": "2023-10-25", + "country": "Turkey", + "coordinates": { + "lon": 28.94966, + "lat": 41.01384 + } + }, + { + "geoname_id": "1815286", + "name": "Chengdu", + "ascii_name": "Chengdu", + "alternate_names": [ + "CTU", + "Ccheng-tu", + "Cendu", + "Cengdu", + "Cengduo", + "Ch'eng-tu", + "Ch'eng-tu-hsien", + "Ch'eng-tu-shih", + "Chehndu", + "Chendu", + "Chengdu", + "Chengdu Shi", + "Chengdú", + "Chundu", + "Chөndү", + "Ch’eng-tu", + "Ch’eng-tu-hsien", + "Ch’eng-tu-shih", + "Csengtu", + "Cwngzduh", + "Hua-yang", + "Sang-tu-su", + "Seng-to-chhi", + "Sing-du", + "Sàng-tû-sṳ", + "Sêng-to͘-chhī", + "Sìng-dŭ", + "Thanh Do", + "Thành Đô", + "Tsen'nkntou", + "Txengdu", + "cengadu", + "centu", + "chantu", + "cheing tu", + "cheng dou", + "cheng dou shi", + "cheongdu si", + "chngdw", + "chyngdw", + "chېngdۇ shەھyr", + "tshnghdw", + "zngdw", + "Çengdu", + "Ĉengduo", + "Čcheng-tu", + "Čendu", + "Čengdu", + "Τσενγκντού", + "Ченгду", + "Ченду", + "Чънду", + "Чыңду", + "Чэнду", + "Чөндү", + "Չենդու", + "צנגדו", + "تشنغدو", + "چنگدو", + "چینگدو", + "چېڭدۇ شەھىر", + "चेंगदू", + "छंतू", + "ਚੇਂਗਦੂ", + "செங்டூ", + "เฉิงตู", + "ချင်းဒူမြို့", + "成都", + "成都市", + "청두 시" + ], + "latitude": "30.66667", + "longitude": "104.06667", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "32", + "admin2_code": "5101", + "admin3_code": null, + "admin4_code": null, + "population": 13568357, + "elevation": null, + "dem": 499, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-25", + "country": "China", + "coordinates": { + "lon": 104.06667, + "lat": 30.66667 + } + }, + { + "geoname_id": "1275339", + "name": "Mumbai", + "ascii_name": "Mumbai", + "alternate_names": [ + "Asumumbay", + "BOM", + "Bombai", + "Bombaim", + "Bombaj", + "Bombay", + "Bombaya", + "Bombej", + "Bombejus", + "Bombėjus", + "Bumbaj", + "Bůmbaj", + "Dakbayan sa Bombay", + "Lungsod ng Mumbai", + "Moembaai", + "Mumbai", + "Mumbai - मुम़बई", + "Mumbaj", + "Mumbaja", + "Mumbajo", + "Mumbajus", + "Mumbay", + "Mumbaî", + "Numbai", + "Vomvai", + "bamba'i", + "bmbyy", + "bwmbay", + "gretara mumba'i", + "meng mai", + "mmbay", + "mmbyy", + "mu0bai", + "muba'i", + "mum bi", + "mumba'i", + "mumbai", + "mumpai", + "munbai", + "mwmbay", + "mwmbyy", + "mymbais", + "pullapa mumba'i", + "Βομβάη", + "Бомбай", + "Бомбей", + "Мумбаи", + "Мумбай", + "Мумбаі", + "Мумбаї", + "Мумбај", + "Մումբայ", + "מומבאי", + "מומביי", + "بمبئی", + "بومباي", + "بَمبَے", + "ممبئي", + "ممبئی", + "ممبای", + "مومباى", + "مومباي", + "مومبای", + "މުންބާއީ", + "ग्रेटर मुम्बई", + "बम्बई", + "मुंबई", + "मुम्बई", + "পুল্লাপ মুম্বাই", + "মুম্বই", + "মুম্বাই", + "ਮੁੰਬਈ", + "મુંબઈ", + "ମୁମ୍ବାଇ", + "மும்பை", + "ముంబై", + "ಮುಂಬೈ", + "ಮು೦ಬೈ", + "മുംബൈ", + "มุมไบ", + "འབོམ་སྦེ", + "မွမ်ဘိုင်းမြို့", + "მუმბაი", + "ムンバイ", + "孟买", + "孟買", + "뭄바이" + ], + "latitude": "19.07283", + "longitude": "72.88261", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "IN", + "country_code_2": null, + "admin1_code": "16", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 12691836, + "elevation": null, + "dem": 8, + "timezone": "Asia/Kolkata", + "modification_date": "2024-01-29", + "country": "India", + "coordinates": { + "lon": 72.88261, + "lat": 19.07283 + } + }, + { + "geoname_id": "3448439", + "name": "São Paulo", + "ascii_name": "Sao Paulo", + "alternate_names": [ + "SAO", + "Sampa", + "San Paolo", + "San Paul ed Brasil", + "San Paulas", + "San Paulo", + "San Paulu", + "San Paulu du Brasili", + "San Paulu dû Brasili", + "San Pauluw", + "San Pawlo", + "San Polo del Braxil", + "San Poulo", + "San Poło del Braxil", + "San Pàul ëd Brasil", + "San-Paulo", + "San-Paulu", + "San-Paŭlo", + "Sanpaulu", + "Sao Paolo", + "Sao Paulo", + "Sao Paulo capital", + "Saun Paulu", + "Sawo Palo", + "Sawo Pålo", + "São Paolo", + "São Paulo", + "São Paulo capital", + "Urbs Paulistana", + "cavo pavulo", + "sa'o pa'ulo", + "sa'o paulo", + "samu pa'ulu", + "sangpaollo", + "sangpaollu", + "sangpaullo", + "sangpaullu", + "sankt. paulos", + "sanpauro", + "savea pealea", + "savo palo", + "saw bawlw", + "saw palw", + "saw pwlw", + "saywpaywlw", + "sea pea lu", + "sheng bao luo", + "Σάο Πάολο", + "Сан Пауло", + "Сан Паулу", + "Сан-Паулу", + "Сан-Паўлу", + "Сао Паоло", + "Сао Пауло", + "Սան Պաուլու", + "סאו פאולא", + "סאו פאולו", + "ساؤ پالو", + "ساؤ پولو", + "سائوپائولو", + "ساو باولو", + "ܣܐܘ ܦܐܘܠܘ", + "ސައޮ ޕައުލޯ", + "साओ पाउलो", + "সাঁউ পাউলু", + "সাও পাউলো", + "சாவோ பாவுலோ", + "శఒ పౌలొ", + "ಸಾವೊ ಪಾಲೊ", + "സാവോ പോളോ", + "เซาเปาลู", + "ဆောပိုလိုမြို့", + "სან-პაულუ", + "ሳው ፓውሉ", + "サンパウロ", + "圣保罗", + "聖保羅", + "상파올로", + "상파올루", + "상파울로", + "상파울루" + ], + "latitude": "-23.5475", + "longitude": "-46.63611", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "BR", + "country_code_2": null, + "admin1_code": "27", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 12400232, + "elevation": null, + "dem": 769, + "timezone": "America/Sao_Paulo", + "modification_date": "2024-01-02", + "country": "Brazil", + "coordinates": { + "lon": -46.63611, + "lat": -23.5475 + } + }, + { + "geoname_id": "3530597", + "name": "Mexico City", + "ascii_name": "Mexico City", + "alternate_names": [ + "Cdmx", + "Cidade de Mexico", + "Cidade de México", + "Cidade do Mexico", + "Cidade do México", + "Cita du Messicu", + "Citta del Messico", + "Città del Messico", + "Cità dû Messicu", + "Cità dû Mèssicu", + "Ciudad Mexico", + "Ciudad de Mejico", + "Ciudad de Mexico", + "Ciudad de Méjico", + "Ciudad de México", + "Ciutat de Mexic", + "Ciutat de Mèxic", + "Grad Mexico", + "Lungsod ng Mexico", + "Lungsod ng México", + "MEX", + "Mehiko", + "Mekhiko", + "Meksikas", + "Meksiko", + "Meksiko Siti", + "Meksikurbo", + "Meksyk", + "Mexico", + "Mexico City", + "Mexico D.F.", + "Mexico DF", + "Mexico Distrito Federal", + "Mexico by", + "Mexico-stad", + "Mexicopolis", + "Mexiko", + "Mexiko Hiria", + "Mexiko-Stadt", + "Mexikoborg", + "Mexíkóborg", + "México", + "México Distrito Federal", + "Nkoyo", + "Pole tou Mexikou", + "Valle de Mexico", + "Valle de México", + "mdynt mksykw", + "megsiko si", + "megsikositi", + "mekishikoshiti", + "meksiko", + "meksiko siti", + "meksikositi", + "mkzykw", + "mkzykwsyty", + "mo xi ge cheng", + "mqsyqw syty", + "Πόλη του Μεξικού", + "Мексико", + "Мексико Сити", + "Мехико", + "Мехіко", + "מקסיקו סיטי", + "مدينة مكسيكو", + "مکزیکو", + "مکزیکوسیتی", + "مېكسىكا شەھىرى", + "मेक्सिको सिटी", + "মেক্সিকো", + "เม็กซิโกซิตี", + "მეხიკო", + "メキシコシティ", + "墨西哥城", + "멕시코 시", + "멕시코시티" + ], + "latitude": "19.42847", + "longitude": "-99.12766", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "MX", + "country_code_2": null, + "admin1_code": "09", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 12294193, + "elevation": null, + "dem": 2240, + "timezone": "America/Mexico_City", + "modification_date": "2023-10-15", + "country": "Mexico", + "coordinates": { + "lon": -99.12766, + "lat": 19.42847 + } + }, + { + "geoname_id": "1174872", + "name": "Karachi", + "ascii_name": "Karachi", + "alternate_names": [ + "Carachi", + "KHI", + "Karaaji", + "Karaces", + "Karachi", + "Karachi - krachy", + "Karachi - كراچى", + "Karachy", + "Karaci", + "Karacio", + "Karacis", + "Karacsi", + "Karaczi", + "Karanchi", + "Karasi", + "Karatschi", + "Karatsi", + "Karatsji", + "Karatxi", + "Karaçi", + "Karaĉio", + "Karači", + "Karačis", + "Karačės", + "Karochi", + "Karáči", + "Karáčí", + "Karâchi", + "Karāchi", + "Karāči", + "Keraci", + "Keraçî", + "Kurrachee", + "Kurrachi", + "Kəraçi", + "ka la qi", + "ka ra ci", + "kalachi", + "karaaci", + "karacci", + "karachi", + "karachy", + "karaci", + "karatshy", + "ke la chi", + "krachy", + "kratshy", + "pechs", + "qrʼzy", + "Καράτσι", + "Карачи", + "Карачы", + "Карачі", + "Կարաչի", + "קאראטשי", + "קראצי", + "كاراتشى", + "كاراچى", + "كراتشي", + "کراچی", + "کراچۍ", + "کَرٲچی", + "کەراچی", + "ڪراچي", + "ކަރާޗީ", + "कराची", + "করাচী", + "কৰাচী", + "ਕਰਾਚੀ", + "કરાચી", + "କରାଚୀ", + "கராச்சி", + "కరాచీ", + "ಕರಾಚಿ", + "കറാച്ചി", + "การาจี", + "ཀ་ར་ཆི", + "ကရာချိမြို့", + "კარაჩი", + "ከራቺ", + "カラチ", + "カラーチー", + "卡拉奇", + "喀拉蚩", + "카라치" + ], + "latitude": "24.8608", + "longitude": "67.0104", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "PK", + "country_code_2": null, + "admin1_code": "05", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 11624219, + "elevation": null, + "dem": 8, + "timezone": "Asia/Karachi", + "modification_date": "2023-10-25", + "country": "Pakistan", + "coordinates": { + "lon": 67.0104, + "lat": 24.8608 + } + }, + { + "geoname_id": "1792947", + "name": "Tianjin", + "ascii_name": "Tianjin", + "alternate_names": [ + "T'ien-chin", + "T'ien-ching", + "T'ien-ching-shih", + "TSN", + "Tchien-tin", + "Tchien-ťin", + "Tehnd'iin", + "Thien Tan", + "Thien-tsin", + "Thiên Tân", + "Thiên-tsîn", + "Tiandzinas", + "Tianjin", + "Tianjin Shi", + "Tianjing", + "Tianjín", + "Tiantzin", + "Tiencin", + "Tiencsin", + "Tiendzin", + "Tientsin", + "Tiençin", + "Tjan'czin'", + "Tjandzina", + "Tjangino", + "Tjanĝino", + "Tjaņdziņa", + "Tjencin", + "Tyantszin", + "T’ien-chin", + "T’ien-ching", + "T’ien-ching-shih", + "cheonjin", + "theiyn cin", + "ti'anjina", + "tian jin", + "tian jin shi", + "tiyanjin", + "tyanjina", + "tyanjn", + "tyanjyn", + "tyenjin si", + "tyyng'yn", + "Τιαντζίν", + "Тиендзин", + "Тэндьиин", + "Тяньцзинь", + "Тяньцзінь", + "Тјенцин", + "טיינג'ין", + "تيانجين", + "تيەنجىن شەھىرى", + "تیانجن", + "تیانجین", + "तिआंजिन", + "त्यांजिन", + "ਤਿਆਂਜਿਨ", + "தியான்ஜின்", + "ടിയാൻജിൻ", + "เทียนจิน", + "ཐན་ཅིན ་གྲོང་ཁྱེར།", + "ထျန်းကျင်းမြို့", + "ტიანძინი", + "天津", + "天津市", + "천진", + "톈진 시" + ], + "latitude": "39.14222", + "longitude": "117.17667", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "28", + "admin2_code": "12324202", + "admin3_code": null, + "admin4_code": null, + "population": 11090314, + "elevation": null, + "dem": 11, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 117.17667, + "lat": 39.14222 + } + }, + { + "geoname_id": "1273294", + "name": "Delhi", + "ascii_name": "Delhi", + "alternate_names": [ + "DEL", + "Daehli", + "Dehli", + "Dehlī", + "Delchi", + "Delhi", + "Delhio", + "Delhí", + "Delhî", + "Deli", + "Delis", + "Delkhi", + "Dellium", + "Delí", + "Dilhi", + "Dilli", + "Dillí", + "Dillī", + "Dähli", + "Déhli", + "Faritani Delhi", + "New Delhi", + "Old Delhi", + "Sahdzahanabad", + "Stare Deli", + "de li", + "dehali", + "deli", + "delli", + "deri", + "dhilli", + "dhly", + "dhly qdym", + "dil'hi", + "dili", + "dilli", + "dlhy", + "dly", + "dlھy", + "dylhy", + "na'i dilli", + "prany dہly", + "tilli", + "Šáhdžahanabád", + "Δελχί", + "Дели", + "Делхи", + "Делі", + "Деҳли", + "Дэлі", + "Старе Делі", + "Դելի", + "דלהי", + "דעלהי", + "دلهي", + "دلھی", + "دلی", + "دهلي", + "دهلی قدیم", + "ديلهى", + "دہلی", + "دێھلی", + "پرانی دہلی", + "ډېلي", + "ދިއްލީ", + "दिल्ली", + "देहली", + "नई दिल्ली", + "দিল্লি", + "দিল্লী", + "ਦਿੱਲੀ", + "દિલ્હી", + "ଦିଲ୍ଲୀ", + "தில்லி", + "ఢిల్లీ", + "ದೆಹಲಿ", + "ഡെൽഹി", + "เดลี", + "დელი", + "デリー", + "德里", + "델리" + ], + "latitude": "28.65195", + "longitude": "77.23149", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "IN", + "country_code_2": null, + "admin1_code": "07", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 10927986, + "elevation": null, + "dem": 227, + "timezone": "Asia/Kolkata", + "modification_date": "2024-01-29", + "country": "India", + "coordinates": { + "lon": 77.23149, + "lat": 28.65195 + } + }, + { + "geoname_id": "1791247", + "name": "Wuhan", + "ascii_name": "Wuhan", + "alternate_names": [ + "Bu-han-chhi", + "Bú-hàn-chhī", + "Gouchan", + "Owhan", + "U-hang", + "Uhan", + "Uhana", + "Uhanas", + "Uhaņa", + "Ukhan", + "Ukhan'", + "Uxan", + "Vu Han", + "Vu-hon-su", + "Vuhan", + "Vuhani", + "Vuhano", + "Vujhan", + "Vukhan", + "Vú-hon-sṳ", + "Vũ Hán", + "WUH", + "Wu-chan", + "Wu-han-shih", + "Wuhan", + "Wuhan Shi", + "uhan si", + "ukhani", + "uuxan", + "vuhana", + "vukan", + "vukhana", + "wu han", + "wu han shi", + "wwhan", + "xu han", + "Ū-háng", + "Γουχάν", + "Вухан", + "Вухан балһсн", + "Ухан", + "Ухань", + "Үkhan'", + "Үхань", + "Үһән", + "Ուհան", + "ווהאן", + "ووهان", + "ووھان", + "ووہان", + "ۋۇخەن شەھىرى", + "ܘܘܗܐܢ", + "वूहान", + "ਵੂਖ਼ਨ", + "வுகான்", + "വൂഹാൻ", + "อู่ฮั่น", + "ཝུའུ་ཧན་གྲོང་ཁྱེར།", + "ဝူဟန့်မြို့", + "უხანი", + "ዉሃን", + "武汉", + "武汉市", + "武漢", + "武漢市", + "우한 시", + "𐍅𐌿𐌷𐌰𐌽" + ], + "latitude": "30.58333", + "longitude": "114.26667", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "12", + "admin2_code": "4201", + "admin3_code": null, + "admin4_code": null, + "population": 10392693, + "elevation": null, + "dem": 20, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 114.26667, + "lat": 30.58333 + } + }, + { + "geoname_id": "524901", + "name": "Moscow", + "ascii_name": "Moscow", + "alternate_names": [ + "MOW", + "Maeskuy", + "Maskav", + "Maskava", + "Maskva", + "Mat-xco-va", + "Matxcova", + "Matxcơva", + "Mosca", + "Moscfa", + "Moscha", + "Mosco", + "Moscou", + "Moscova", + "Moscovo", + "Moscow", + "Moscoƿ", + "Moscu", + "Moscua", + "Moscòu", + "Moscó", + "Moscù", + "Moscú", + "Moskva", + "Moska", + "Moskau", + "Mosko", + "Moskokh", + "Moskou", + "Moskov", + "Moskova", + "Moskovu", + "Moskow", + "Moskowa", + "Mosku", + "Moskuas", + "Moskva", + "Moskve", + "Moskvo", + "Moskvy", + "Moskwa", + "Moszkva", + "Muskav", + "Musko", + "Mát-xcơ-va", + "Mòskwa", + "Məskeu", + "Məskəү", + "masko", + "maskw", + "mo si ke", + "moseukeuba", + "mosko", + "mosukuwa", + "mskw", + "mwskva", + "mwskw", + "mwsqbh", + "mx s ko", + "Μόσχα", + "Мæскуы", + "Маскав", + "Масква", + "Москва", + "Москве", + "Москвы", + "Москова", + "Москох", + "Москъва", + "Мускав", + "Муско", + "Мәскеу", + "Мәскәү", + "Մոսկվա", + "מאָסקװע", + "מאסקווע", + "מוסקבה", + "ماسکو", + "مسکو", + "موسكو", + "موسكۋا", + "ܡܘܣܩܒܐ", + "मास्को", + "मॉस्को", + "মস্কো", + "மாஸ்கோ", + "มอสโก", + "མོ་སི་ཁོ།", + "მოსკოვი", + "ሞስኮ", + "モスクワ", + "莫斯科", + "모스크바" + ], + "latitude": "55.75222", + "longitude": "37.61556", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "RU", + "country_code_2": null, + "admin1_code": "48", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 10381222, + "elevation": null, + "dem": 144, + "timezone": "Europe/Moscow", + "modification_date": "2022-12-10", + "country": "Russia", + "coordinates": { + "lon": 37.61556, + "lat": 55.75222 + } + }, + { + "geoname_id": "1185241", + "name": "Dhaka", + "ascii_name": "Dhaka", + "alternate_names": [ + "DAC", + "Daaka", + "Daca", + "Dacca", + "Dacca - dhaka", + "Dacca - ঢাকা", + "Daka", + "Dakah", + "Dakk", + "Dakka", + "Dakkae", + "Dakke", + "Dako", + "Deka", + "Dgaka", + "Dhaka", + "Dháka", + "Dhâkâ", + "Dəkkə", + "Mujib City", + "Ntaka", + "Ntakka", + "da ka", + "daka", + "dakka", + "dhaka", + "dhakka", + "dka", + "takka", + "thaka", + "Ντάκα", + "Ντάκκα", + "Даака", + "Дака", + "Даккæ", + "Дакка", + "Дакке", + "Дгака", + "Դաքքա", + "דאקא", + "דאקה", + "داكا", + "داکا", + "دكا", + "ڈھاکہ", + "ޑާކާ", + "ढाका", + "ঢাকা", + "ਢਾਕਾ", + "ઢાકા", + "ଢାକା", + "டாக்கா", + "ఢాకా", + "ಢಾಕಾ", + "ഢാക്ക", + "ඩකා", + "ธากา", + "དྷ་ཁ།", + "ဒါကာမြို့", + "დაკა", + "ዳካ", + "ダッカ", + "达卡", + "達卡", + "다카" + ], + "latitude": "23.7104", + "longitude": "90.40744", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "BD", + "country_code_2": null, + "admin1_code": "81", + "admin2_code": "3026", + "admin3_code": "302640", + "admin4_code": "30264072", + "population": 10356500, + "elevation": null, + "dem": 23, + "timezone": "Asia/Dhaka", + "modification_date": "2023-10-15", + "country": "Bangladesh", + "coordinates": { + "lon": 90.40744, + "lat": 23.7104 + } + }, + { + "geoname_id": "1835848", + "name": "Seoul", + "ascii_name": "Seoul", + "alternate_names": [ + "Hanyang", + "SEL", + "Seoel", + "Seol", + "Seoul", + "Seoul-si", + "Seuel", + "Seul", + "Seula", + "Seulas", + "Seulo", + "Seulum", + "Seúl", + "Seül", + "Siul", + "Soeul", + "Sol", + "Soul", + "Sye-ul", + "Syou-ouen", + "Szoeul", + "Szöul", + "Séoul", + "Sêûl", + "Söul", + "Sŏul", + "Wang-ching", + "Wo-jo", + "Wō-jō", + "ciyol", + "han-yang", + "saul", + "seoul", + "seoulsi", + "seoulteugbyeolsi", + "seuli", + "shou er", + "shou er te bie shi", + "si'ula", + "siyola", + "sol", + "sola", + "souru", + "souru te bie shi", + "sywl", + "Σεούλ", + "Сеул", + "Соул", + "Сөүл", + "Սեուլ", + "סאול", + "סיאול", + "סעאל", + "سئول", + "سيول", + "سیول", + "سێئول", + "سېئول", + "सियोल", + "सोल", + "সিউল", + "சியோல்", + "ಸೌಲ್", + "സോൾ", + "โซล", + "སེ་ཨུལ།", + "ဆိုးလ်မြို့", + "სეული", + "ሶል", + "សេអ៊ូល", + "ソウル", + "ソウル特別市", + "首尔", + "首尔特别市", + "首爾", + "서울", + "서울시", + "서울특별시", + "한양" + ], + "latitude": "37.566", + "longitude": "126.9784", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "KR", + "country_code_2": null, + "admin1_code": "11", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 10349312, + "elevation": null, + "dem": 38, + "timezone": "Asia/Seoul", + "modification_date": "2023-06-30", + "country": "South Korea", + "coordinates": { + "lon": 126.9784, + "lat": 37.566 + } + }, + { + "geoname_id": "1812545", + "name": "Dongguan", + "ascii_name": "Dongguan", + "alternate_names": [ + "Deng-uang", + "Dongguan", + "Dongguan City", + "Dongwen shehiri", + "Dunguan", + "Dunguan'", + "Dĕ̤ng-uāng", + "GJong Hoan", + "Ntonkouan", + "Tong-koan-chhi", + "Tong-kóan-chhī", + "Tung-kon-su", + "Tung-kuan", + "Tungkuan", + "Tungkun", + "Tûng-kón-sṳ", + "XHO", + "dong guan", + "dong guan shi", + "dong wan shi", + "donggu'ana", + "dung-gwan si", + "dwnghqwan", + "dwngwan", + "tonkuvan", + "Đông Hoản", + "Ντογκουάν", + "Донггуан", + "Дунгуан", + "Дунгуань", + "Дунґуань", + "דונגגוואן", + "دونغقوان", + "دونگوان", + "ڈwngwan", + "ڈونگ گوآن", + "ڈونگوان", + "डोंग्गूआन", + "டொங்குவான்", + "东莞", + "东莞市", + "東莞", + "東莞市", + "둥관 시" + ], + "latitude": "23.01797", + "longitude": "113.74866", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "30", + "admin2_code": "4419", + "admin3_code": null, + "admin4_code": null, + "population": 9644871, + "elevation": null, + "dem": 1, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 113.74866, + "lat": 23.01797 + } + }, + { + "geoname_id": "360630", + "name": "Cairo", + "ascii_name": "Cairo", + "alternate_names": [ + "Al Qahirah", + "Al Qāhirah", + "CAI", + "Caire", + "Cairo", + "Cairo - alqahrt", + "Cairo - القاهرة", + "Cairu", + "Cairus", + "Caïro", + "El Caire", + "El Cairo", + "El Kahira", + "El Kahirah", + "El-Qahira", + "El-Qâhira", + "Il Cairo", + "Kaherah", + "Kahira", + "Kahirae", + "Kahire", + "Kahirä", + "Kair", + "Kaira", + "Kairas", + "Kairo", + "Kairó", + "Kajro", + "Kayro", + "Kaíró", + "Kaïro", + "Káhira", + "Le Caire", + "Lo Cayiro", + "Lungsod ng Cairo", + "Masr", + "Misr", + "Qahirə", + "alqahrt", + "kai luo", + "kailo", + "kairo", + "kayaro", + "keyro", + "khiro", + "qahrh", + "qhyr", + "Ël Cairo", + "Ël Càiro", + "Κάιρο", + "Каир", + "Каиро", + "Кайро", + "Каїр", + "קהיר", + "القاهرة", + "قاهره", + "قاھىرە", + "قاہرہ", + "কায়রো", + "கெய்ரோ", + "ไคโร", + "ཁ་ཡི་རོ", + "ქაირო", + "ካይሮ", + "カイロ", + "开罗", + "開羅", + "카이로" + ], + "latitude": "30.06263", + "longitude": "31.24967", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "EG", + "country_code_2": null, + "admin1_code": "11", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 9606916, + "elevation": null, + "dem": 23, + "timezone": "Africa/Cairo", + "modification_date": "2022-04-18", + "country": "Egypt", + "coordinates": { + "lon": 31.24967, + "lat": 30.06263 + } + }, + { + "geoname_id": "1790630", + "name": "Xi’an", + "ascii_name": "Xi'an", + "alternate_names": [ + "Ch'ang-an", + "Ch'ang-an-hsien", + "Ch’ang-an", + "Ch’ang-an-hsien", + "Hsi Gnan Fu", + "Hsi-an", + "Hsi-an-shih", + "Hsi-ching", + "Hsi-ching-shih", + "Hsingan", + "SIA", + "Si-Gan-Fu", + "Sian", + "Sian'", + "Siana", + "Sianas", + "Sianfu", + "Siano", + "Siaņa", + "Siking", + "Singan", + "Singano", + "Tay An", + "Tây An", + "Xi'an", + "Xi'an - xi an", + "Xi'an - 西安", + "Xi'an Shi", + "Xian", + "Xi’an", + "Xi’an Shi", + "Xī'ān", + "si xan", + "sian si", + "xi an", + "xi an shi", + "Ŝiano", + "Ŝingano", + "Сиань", + "شىئەن شەھىرى", + "ซีอาน", + "西安", + "西安市", + "시안 시" + ], + "latitude": "34.25833", + "longitude": "108.92861", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "26", + "admin2_code": "6101", + "admin3_code": null, + "admin4_code": null, + "population": 9600000, + "elevation": null, + "dem": 416, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 108.92861, + "lat": 34.25833 + } + }, + { + "geoname_id": "1799962", + "name": "Nanjing", + "ascii_name": "Nanjing", + "alternate_names": [ + "Lâm-kiaⁿ-chhī", + "NKG", + "Nam Kinh", + "Nam-kin-su", + "Namkin", + "Nan'czin", + "Nan'zhin", + "Nan-ching", + "Nan-ching-shih", + "Nanchino", + "Nanchinum", + "Nandzing", + "Nandzjina", + "Nandžing", + "Nang-ging", + "Nanjing", + "Nanjing Shi", + "Nankijn", + "Nankin", + "Nankinas", + "Nanking", + "Nankingo", + "Nankín", + "Nanquim", + "Nanquin", + "Nanquín", + "Nantsin'nk", + "Nanzging", + "Naņdzjina", + "Nàm-kîn-sṳ", + "Nàng-gĭng", + "hnan cing", + "namgyeong", + "nan jing", + "nan jing shi", + "nanajiga", + "nanajinga", + "nancin", + "nanjina", + "nanjing", + "nanjing si", + "nanjinga", + "nanjng", + "nanjyng", + "nanjyngh", + "nʼngyng", + "Ναντσίνγκ", + "Нанкин", + "Нанкинг", + "Нанкін", + "Наньжин", + "Наньцзин", + "Нәнҗиң", + "Նանկին", + "נאנגינג", + "نانجنگ", + "نانجينغ", + "نانجینگ", + "نەنجىڭ شەھىرى", + "नांजिंग", + "नानजिंग", + "नान्जिङ", + "ਨਾਨਜਿੰਗ", + "நாஞ்சிங்", + "നാൻജിങ്", + "หนานจิง", + "နန်ကျင်းမြို့", + "ნანკინი", + "南京", + "南京市", + "난징", + "난징 시", + "남경" + ], + "latitude": "32.06167", + "longitude": "118.77778", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "04", + "admin2_code": "3201", + "admin3_code": null, + "admin4_code": null, + "population": 9314685, + "elevation": null, + "dem": 22, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 118.77778, + "lat": 32.06167 + } + }, + { + "geoname_id": "1808926", + "name": "Hangzhou", + "ascii_name": "Hangzhou", + "alternate_names": [ + "Chan'nktsoou", + "Chang-cou", + "Chang-čou", + "HGH", + "Hancheum", + "Hanchow-fu", + "Hanczou", + "Handzou", + "Handžou", + "Hang", + "Hang Chau", + "Hang-chiu-chhi", + "Hang-chou", + "Hang-chou-shih", + "Hang-hsien", + "Hangchow", + "Hangcsou", + "Hangdzou", + "Hangdžou", + "Hanggouo", + "Hangtsjou", + "Hangzcouh", + "Hangzhou", + "Hangzhou Shi", + "Hangĝoŭo", + "Hančžou", + "Hong-chu-su", + "Hong-ciu", + "Hàng Châu", + "Hâng-chiu-chhī", + "Hòng-chû-sṳ", + "Hòng-ciŭ", + "Khanchzhou", + "Khandzhou", + "Khangdzou", + "Khanzhou", + "Xanchjou", + "hang cow", + "hang zhou", + "hang zhou shi", + "hangacau", + "hangajho'u", + "hanghtshw", + "hangjeou", + "hangjeou si", + "hangju", + "hangzhw", + "hanjha", + "hannaco", + "hʼnggwʼw", + "kancu", + "Χανγκτσόου", + "Хангџоу", + "Ханджоу", + "Ханжоу", + "Ханчжоу", + "האנגגואו", + "خاڭجۇ شەھىر", + "هانغتشو", + "هانگژو", + "ہانگژو", + "हांगचौ", + "हांगझोऊ", + "ਹਾਂਙਚੋ", + "காங்சூ", + "ഹാങ്ഝൗ", + "หางโจว", + "ཧང་ཀྲོའུ།", + "杭州", + "杭州市", + "항저우", + "항저우 시", + "항주" + ], + "latitude": "30.29365", + "longitude": "120.16142", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "02", + "admin2_code": "3301", + "admin3_code": null, + "admin4_code": null, + "population": 9236032, + "elevation": null, + "dem": 12, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 120.16142, + "lat": 30.29365 + } + }, + { + "geoname_id": "1811103", + "name": "Foshan", + "ascii_name": "Foshan", + "alternate_names": [ + "FUO", + "Fachan", + "Fatshan", + "Fo-san", + "Fo-shan-chen", + "Fo-shan-shih", + "Fo-šan", + "Fosan", + "Fosanas", + "Foshan", + "Foshan'", + "Fosjan", + "Foŝan", + "Fošanas", + "Fu-shan-chen", + "Fut-san-su", + "Fu̍t-sân-sṳ", + "Huk-sang", + "Hut-san-chhi", + "Hu̍t-san-chhī", + "Hŭk-săng", + "Namhoi", + "Nan-hai", + "Nanhai-hsien", + "Nanhoi", + "Nom Hoy", + "Phat Son", + "Phật Sơn", + "fo shan shi", + "fu shan", + "fu shan shi", + "fwshan", + "pocan", + "posan si", + "Φοσάν", + "Фошан", + "Фошань", + "فوشان", + "فۇشەن شەھىر", + "பொசன்", + "仏山市", + "佛山", + "佛山市", + "포산 시" + ], + "latitude": "23.02677", + "longitude": "113.13148", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "30", + "admin2_code": "4406", + "admin3_code": null, + "admin4_code": null, + "population": 9042509, + "elevation": null, + "dem": 5, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 113.13148, + "lat": 23.02677 + } + }, + { + "geoname_id": "1566083", + "name": "Ho Chi Minh City", + "ascii_name": "Ho Chi Minh City", + "alternate_names": [ + "Cathair Ho Chi Minh", + "Cidade de Ho Chi Minh", + "Ciudad Ho Chi Minh", + "Gia GJinh", + "Gia Định", + "Grad Ho Chi Minh", + "HCMC", + "HCMV", + "Ho Chi Minh", + "Ho Chi Minh City", + "Ho Chi Minh Ville", + "Ho Chi Minh-borg", + "Ho Chi Minh-byen", + "Ho Chi Minh-staden", + "Ho Chi Minhin kaupunki", + "Ho Chi Minhstad", + "Ho Ci Minovo Mesto", + "Ho Si Min", + "Ho Si Minh-varos", + "Ho Si Minh-város", + "Ho Či Minovo Město", + "Ho Ši Min", + "Ho-Chi-Minh-Stadt", + "Ho-Chi-Minh-Ville", + "Ho-Ci-Min-urbo", + "Ho-Ĉi-Min-urbo", + "Hociminovo Mesto", + "Hosimina", + "Hosiminh", + "Hočiminovo Mesto", + "Hošimina", + "Hošiminh", + "Hô Chi Minh Ville", + "Hô-Chi-Minh-Ville", + "Hồ Chí Minhin kaupunki", + "Khoshimin", + "Kota Ho Chi Minh", + "Kota Hồ Chí Minh", + "SGN", + "Sai Gon", + "Saigon", + "Saïgon", + "Sài Gòn", + "TPHCM", + "Thanh pho Ho Chi Minh", + "Thành phố Hồ Chí Minh", + "hochimin", + "hochimin shi", + "hojjimin", + "hu zhi ming shi", + "hw z'y myn syty", + "mdynt hw tshy mynh", + "saigon", + "saygwn", + "Хошимин", + "הו צ'י מין סיטי", + "سايگون", + "مدينة هو تشي مينه", + "サイゴン", + "ホーチミン", + "ホーチミン市", + "胡志明市", + "호찌민", + "호치민" + ], + "latitude": "10.82302", + "longitude": "106.62965", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "VN", + "country_code_2": null, + "admin1_code": "20", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 8993082, + "elevation": null, + "dem": 7, + "timezone": "Asia/Ho_Chi_Minh", + "modification_date": "2023-10-25", + "country": "Vietnam", + "coordinates": { + "lon": 106.62965, + "lat": 10.82302 + } + }, + { + "geoname_id": "2643743", + "name": "London", + "ascii_name": "London", + "alternate_names": ["too many elements to preview"], + "latitude": "51.50853", + "longitude": "-0.12574", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "GB", + "country_code_2": null, + "admin1_code": "ENG", + "admin2_code": "GLA", + "admin3_code": null, + "admin4_code": null, + "population": 8961989, + "elevation": null, + "dem": 25, + "timezone": "Europe/London", + "modification_date": "2022-03-09", + "country": "United Kingdom", + "coordinates": { + "lon": -0.12574, + "lat": 51.50853 + } + }, + { + "geoname_id": "5128581", + "name": "New York City", + "ascii_name": "New York City", + "alternate_names": [ + "Aebura", + "Bandar Raya New York", + "Big Apple", + "Cathair Nua-Eabhrac", + "City of New York", + "Eabhraig Nuadh", + "Efrog Newydd", + "Evrek Nowydh", + "Ga-no-no", + "Kanon:no", + "Kanono", + "Kanón:no", + "Kota New York", + "Lungsod ng New York", + "N'ju-Jork", + "NY", + "NYC", + "Nea Yorke", + "Nei Yarrick Schtadt", + "Neu Amsterdam", + "Neu Jorck", + "New Amsterdam", + "New Orange", + "New Yorc", + "New York", + "New York City", + "New York Stad", + "New York borg", + "New York kenti", + "New York-borg", + "New Yorke", + "New Yorku", + "Niujorkas", + "Nju Jork", + "Njujork", + "Nouvelle Yorck", + "Nouvieau York", + "Nov-Jorko", + "Nova Amsterda", + "Nova Iorque", + "Nova York", + "Nova-York", + "Novjorko", + "Novum Eboracum", + "Nowy Jork", + "Nua-Eabhrac", + "Nueva York", + "Nujorka", + "Nyja Jorvik", + "Nyu York Shehiri", + "Nòva York", + "Nýja Jórvík", + "Thanh pho New York", + "The Big Apple", + "Thành phố New York", + "York Berri", + "manhattan", + "n'yuyorka", + "ni'u iyarka siti", + "niu yue", + "niu yue shi", + "niyuyark nakaram", + "nkhr niwyxrk", + "nyuyog", + "nyuyog si", + "nyuyoku", + "nyw ywrq", + "nywywrk", + "Ņujorka", + "Νέα Υόρκη", + "Њу Јорк", + "Њујорк", + "Нью-Ёрк", + "Нью-Йорк", + "Ню Йорк", + "ניו יארק", + "ניו יורק", + "ניו־יאָרק", + "نيويورك", + "نیویارک شہر", + "نیویورک", + "न्यूयॉर्क", + "নিউ ইয়র্ক সিটি", + "நியூயார்க் நகரம்", + "นครนิวยอร์ก", + "ნიუ-იორკი", + "ニューヨーク", + "マンハッタン", + "紐約", + "紐約市", + "뉴욕", + "뉴욕 시" + ], + "latitude": "40.71427", + "longitude": "-74.00597", + "feature_class": "P", + "feature_code": "PPL", + "country_code": "US", + "country_code_2": null, + "admin1_code": "NY", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 8804190, + "elevation": "10", + "dem": 57, + "timezone": "America/New_York", + "modification_date": "2022-03-09", + "country": "United States", + "coordinates": { + "lon": -74.00597, + "lat": 40.71427 + } + }, + { + "geoname_id": "1642911", + "name": "Jakarta", + "ascii_name": "Jakarta", + "alternate_names": [ + "Batavia", + "Big Durian", + "Cakarta", + "D'akarta", + "Daerah Khusus Ibukota Jakarta", + "Djakarta", + "Djogkarta", + "Dki Jakarta", + "Dzakarta", + "Dzhakarta", + "Dzhakartae", + "Dżakarta", + "Džakarta", + "Gakarto", + "Giacarta", + "Iacarta", + "Iacárta", + "JKT", + "Jacarta", + "Jakarta", + "Jayakarta", + "Jogkarta", + "Nga-ka-that Su-tu Thit-khi", + "Ngâ-kâ-tha̍t Sú-tû Thi̍t-khî", + "Sakata", + "Sunda Kelapa", + "Tzakarta", + "Xacarta", + "Xhakarta", + "Yajgyadaz", + "Yakarta", + "Zhakarta", + "cakarta", + "g'qrth", + "jakaleuta", + "jakarata", + "jakarta", + "jakartta", + "jakaruta", + "jkarta", + "ya jia da", + "ye jia da", + "Ĝakarto", + "Τζακάρτα", + "Џакарта", + "Джакартæ", + "Джакарта", + "Дьакарта", + "Жакарта", + "Ջակարտա", + "ג'קרטה", + "דזשאקארטא", + "جاكارتا", + "جاکارتا", + "جکارتا", + "جکارتہ", + "जकार्ता", + "জাকার্তা", + "ਜਕਾਰਤਾ", + "જાકાર્તા", + "ଜାକର୍ତା", + "ஜகார்த்தா", + "జకార్తా", + "ಜಕಾರ್ತ", + "ജക്കാർത്ത", + "จาการ์ตา", + "ཊ་ཁར་ཏ།", + "ဂျကာတာမြို့", + "ჯაკარტა", + "ጃካርታ", + "ចាការតា", + "ジャカルタ", + "耶加達", + "雅加达", + "雅加達", + "자카르타" + ], + "latitude": "-6.21462", + "longitude": "106.84513", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "ID", + "country_code_2": null, + "admin1_code": "04", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 8540121, + "elevation": null, + "dem": 16, + "timezone": "Asia/Jakarta", + "modification_date": "2023-01-01", + "country": "Indonesia", + "coordinates": { + "lon": 106.84513, + "lat": -6.21462 + } + }, + { + "geoname_id": "1277333", + "name": "Bengaluru", + "ascii_name": "Bengaluru", + "alternate_names": [ + "BLR", + "Ban'nkalor", + "Bangalor", + "Bangalora", + "Bangalore", + "Bangalore - bengaluru", + "Bangalore - ಬೆಂಗಳೂರು", + "Bangalore City", + "Bangalur", + "Bangaluri", + "Bangalúr", + "Bengalour", + "Bengaluras", + "Bengaluro", + "Bengaluru", + "Bengalurus", + "Bengalúru", + "Bengalūras", + "Bengalūru", + "baeng-geollo", + "bagalaura", + "ban jia luo er", + "bang kha l xr", + "bang-galloleu", + "bangalaura", + "bangalora", + "bangalura", + "bangaroru", + "beng-gallulu", + "bengalora", + "bengaluru", + "benguluru", + "bnghalwr", + "bnglwr", + "bynglwr", + "penkalur", + "Μπανγκαλόρ", + "Бангалор", + "Бенгалуру", + "Бенґалуру", + "בנגלור", + "بنغالور", + "بنگلور", + "بینگلور", + "बंगलौर", + "बंगळूर", + "बेङ्गलूरु", + "बेङ्गलोर", + "बेङ्गळूरु", + "বাঙ্গালোর", + "বেঙ্গালুরু", + "ਬੰਗਲੌਰ", + "બેંગલોર", + "ବେଙ୍ଗାଳୁରୁ", + "பெங்களூர்", + "బెంగుళూరు", + "ಬೆಂಗಳೂರು", + "ബെംഗളൂരു", + "බැංගලෝර්", + "บังคาลอร์", + "ဘန်ဂလိုမြို့", + "ბენგალურუ", + "バンガロール", + "班加罗尔", + "班加羅爾", + "방갈로르", + "뱅걸로", + "벵갈루루" + ], + "latitude": "12.97194", + "longitude": "77.59369", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "IN", + "country_code_2": null, + "admin1_code": "19", + "admin2_code": "572", + "admin3_code": null, + "admin4_code": null, + "population": 8443675, + "elevation": "920", + "dem": 914, + "timezone": "Asia/Kolkata", + "modification_date": "2024-02-01", + "country": "India", + "coordinates": { + "lon": 77.59369, + "lat": 12.97194 + } + }, + { + "geoname_id": "1850147", + "name": "Tokyo", + "ascii_name": "Tokyo", + "alternate_names": [ + "Edo", + "TYO", + "Tochiu", + "Tocio", + "Tokija", + "Tokijas", + "Tokio", + "Tokió", + "Tokjo", + "Tokyo", + "Toquio", + "Toquio - dong jing", + "Toquio - 東京", + "Tòquio", + "Tókýó", + "Tóquio", + "Tōkyō", + "dokyo", + "dong jing", + "dong jing dou", + "dong-gyeong", + "tokeiyw", + "toki'o", + "tokkiyo", + "tokyo", + "twkyw", + "twqyw", + "Τόκιο", + "Токио", + "Токё", + "Токіо", + "Տոկիո", + "טוקיו", + "توكيو", + "توکیو", + "طوكيو", + "ܛܘܟܝܘ", + "ܜܘܟܝܘ", + "टोक्यो", + "টোকিও", + "டோக்கியோ", + "โตเกียว", + "ტოკიო", + "东京", + "東京", + "東京都", + "도쿄", + "동경" + ], + "latitude": "35.6895", + "longitude": "139.69171", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "JP", + "country_code_2": null, + "admin1_code": "40", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 8336599, + "elevation": null, + "dem": 44, + "timezone": "Asia/Tokyo", + "modification_date": "2022-11-25", + "country": "Japan", + "coordinates": { + "lon": 139.69171, + "lat": 35.6895 + } + }, + { + "geoname_id": "1581130", + "name": "Hanoi", + "ascii_name": "Hanoi", + "alternate_names": [ + "Anoi", + "Anoy", + "Anòy", + "HAN", + "Ha Noi", + "Ha Nui", + "Hanoi", + "Hanoj", + "Hanoja", + "Hanojo", + "Hanojus", + "Hanoy", + "Hanoí", + "Hanoï", + "Hanòi", + "Hanói", + "Ho-nui-su", + "Hà Nội", + "Hò-nui-sṳ", + "Keicho", + "Khanoj", + "hano'i", + "hanoi", + "hanoy", + "hanwy", + "hanxy", + "he nei", + "he nei shi", + "hyanaya", + "khanwy", + "Ανόι", + "Ханой", + "Ханој", + "Հանոյ", + "האנוי", + "خانوي", + "هانوى", + "هانوي", + "هانوی", + "ھانۆی", + "ہنوئی", + "हनोई", + "হ্যানয়", + "ਹਨੋਈ", + "ହାନୋଇ", + "ஹனோய்", + "ಹಾನೊಯ್", + "හැනෝයි", + "ฮานอย", + "ཧེ་ནོ།", + "ဟနွိုင်းမြို့", + "ჰანოი", + "ሀኖይ", + "ទីក្រុងហានូយ", + "Ḥanoi", + "ハノイ", + "河內", + "河內市", + "하노이" + ], + "latitude": "21.0245", + "longitude": "105.84117", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "VN", + "country_code_2": null, + "admin1_code": "44", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 8053663, + "elevation": null, + "dem": 10, + "timezone": "Asia/Bangkok", + "modification_date": "2023-06-29", + "country": "Vietnam", + "coordinates": { + "lon": 105.84117, + "lat": 21.0245 + } + }, + { + "geoname_id": "1668341", + "name": "Taipei", + "ascii_name": "Taipei", + "alternate_names": [ + "GJai Bac", + "Kota Taipei", + "Pan Kiao", + "Pan-ch'iao", + "Pan-ch'iao-chen", + "Pan-ch'iao-chieh", + "Pan-ch’iao", + "Pan-ch’iao-chen", + "Pan-ch’iao-chieh", + "T'ai-pei", + "T'ai-pei Shih", + "T'ai-pei-hsien", + "TPE", + "Taibei Shi", + "Taibei Shih", + "Taibejus", + "Taibėjus", + "Taipe", + "Taipeh", + "Taipei", + "Taipeium", + "Taipejus", + "Taipé", + "Taipéi", + "Taipėjus", + "Tajbehj", + "Tajpej", + "Tajpeo", + "Tayipeh", + "Tayipèh", + "Tchaj-pej", + "T’ai-pei", + "T’ai-pei Shih", + "T’ai-pei-hsien", + "ta'ipe", + "ta'ipe'i", + "tai bei", + "tai bei shi", + "taibei", + "taibei si", + "taipei", + "taippei", + "thipe", + "Đài Bắc", + "Ταϊπέι", + "Тайбэй", + "Тайпей", + "Тајпеј", + "טאיפי", + "טאיפיי", + "تەيبېي", + "ताइपे", + "টাইপেই", + "ไทเป", + "ཐའེ་པེ", + "ታይፔ", + "台北", + "台北市", + "臺北市", + "타이베이", + "타이베이 시", + "타이뻬이", + "타이페이" + ], + "latitude": "25.04776", + "longitude": "121.53185", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "TW", + "country_code_2": null, + "admin1_code": "04", + "admin2_code": "TPE", + "admin3_code": null, + "admin4_code": null, + "population": 7871900, + "elevation": null, + "dem": 10, + "timezone": "Asia/Taipei", + "modification_date": "2022-03-09", + "country": "Taiwan", + "coordinates": { + "lon": 121.53185, + "lat": 25.04776 + } + }, + { + "geoname_id": "3936456", + "name": "Lima", + "ascii_name": "Lima", + "alternate_names": [ + "LIM", + "Lim", + "Lima", + "Limae", + "Limaq", + "Lime", + "Limma", + "Limo", + "Lioma", + "Lungsod ng Lima", + "Lìmma", + "Líma", + "Líoma", + "Lîma", + "li ma", + "lima", + "lyma", + "lymh", + "rima", + "Λίμα", + "Лимæ", + "Лима", + "Лиме", + "Ліма", + "Լիմա", + "לימא", + "לימה", + "لىما", + "ليما", + "لیما", + "लिमा", + "लीमा", + "লিমা", + "ਲੀਮਾ", + "ଲିମା", + "லிமா", + "ലിമ", + "ลิมา", + "ལི་མ།", + "ლიმა", + "ሊማ", + "リマ", + "利馬", + "리마" + ], + "latitude": "-12.04318", + "longitude": "-77.02824", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "PE", + "country_code_2": null, + "admin1_code": "LMA", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 7737002, + "elevation": null, + "dem": 152, + "timezone": "America/Lima", + "modification_date": "2023-10-25", + "country": "Peru", + "coordinates": { + "lon": -77.02824, + "lat": -12.04318 + } + }, + { + "geoname_id": "3688689", + "name": "Bogotá", + "ascii_name": "Bogota", + "alternate_names": [ + "BOG", + "Bagata", + "Bogot", + "Bogota", + "Bogoto", + "Bogotà", + "Bogotá", + "Boqota", + "Buoguota", + "Bógóta", + "Mponkota", + "Santa-Fe-de-Bogota", + "Santafe de Bogota", + "Santafe de Bogotá", + "Santafé de Bogotá", + "Wukuta", + "beageatta", + "bo ge da", + "bogota", + "bokota", + "bwghwta", + "bwgwta", + "bwgwth", + "bwjwta", + "pokotta", + "Μπογκοτά", + "Багата", + "Богота", + "Боґота", + "Санта-Фе-де-Богота", + "Բոգոտա", + "באגאטא", + "בוגוטה", + "بوجوتا", + "بوغوتا", + "بوگوتا", + "بگوٹا", + "بۆگۆتا", + "बोगोटा", + "बोगोता", + "বোগোতা", + "ਬੋਗੋਤਾ", + "ବୋଗୋଟା", + "பொகோட்டா", + "ಬೊಗೋಟ", + "ബൊഗോട്ട", + "โบโกตา", + "པོ་གོ་ཏ", + "ဘိုဂိုတာမြို့", + "ბოგოტა", + "ቦጎታ", + "ទីក្រុងបូកូតា", + "ボゴタ", + "波哥大", + "보고타" + ], + "latitude": "4.60971", + "longitude": "-74.08175", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "CO", + "country_code_2": null, + "admin1_code": "34", + "admin2_code": "11001", + "admin3_code": null, + "admin4_code": null, + "population": 7674366, + "elevation": null, + "dem": 2582, + "timezone": "America/Bogota", + "modification_date": "2023-10-25", + "country": "Colombia", + "coordinates": { + "lon": -74.08175, + "lat": 4.60971 + } + }, + { + "geoname_id": "1819729", + "name": "Hong Kong", + "ascii_name": "Hong Kong", + "alternate_names": [ + "Chon'nk Kon'nk", + "Gankong", + "Gon Kong", + "Gonkong", + "HKG", + "Hiong-geng", + "Hiŏng-gē̤ng", + "Hong Kong", + "Hongkong", + "Honkong", + "Honkongo", + "Hồng Kông", + "Khongkong", + "Khonkong", + "Victoria", + "Xianggang", + "ankan", + "hamga kamga", + "hanakana", + "hang kang", + "hang kang nagaram", + "hangakanga", + "hang‌kang", + "hankam", + "heankean", + "hng kng", + "hon'ga kon'ga", + "hong-kʼongi", + "hongakonga", + "hongkong", + "honkongu", + "hwng kwng", + "hwng qwng", + "hwngh kwngh", + "hwnj kwnj", + "hxngkng", + "hʼng qʼng", + "shyanggang", + "xiang gang", + "Χονγκ Κονγκ", + "Ганконг", + "Гонконг", + "Хонгконг", + "Хонконг", + "Һoң Koң", + "Һоң Коң", + "Հոնկոնգ", + "האנג קאנג", + "הונג קונג", + "شياڭگاڭ", + "هانگ کانگ", + "هنگ کنگ", + "هونج كونج", + "هونغ كونغ", + "هونگ کونگ", + "ھwng kwng", + "ھونگ کونگ", + "ھۆng kۆng", + "ھۆنگ کۆنگ", + "ہang kang", + "ہانگ کانگ", + "ހޮންކޮންގު", + "हङकङ", + "हाँग काँग", + "हांगकांग", + "हांग् कांग् नगरम्", + "हॉन्ग कॉन्ग", + "হংকং", + "ਹਾਂਗਕਾਂਗ", + "હોંગકોંગ", + "ହଂକଂ", + "ஆங்காங்", + "హాంగ్‌కాంగ్", + "ಹಾಂಗ್ ಕಾಂಗ್", + "ഹോങ്കോങ്", + "හොංකොං", + "ฮ่องกง", + "ཧང་ཀང་།", + "ཧོང་ཀོང་།", + "ဟောငကောင", + "ဟောင်ကောင်", + "ჰონგ-კონგი", + "ሆንግ ኮንግ", + "ហងកង", + "ហុងកុង", + "香港", + "홍콩" + ], + "latitude": "22.27832", + "longitude": "114.17469", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "HK", + "country_code_2": null, + "admin1_code": null, + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 7491609, + "elevation": null, + "dem": 60, + "timezone": "Asia/Hong_Kong", + "modification_date": "2024-01-02", + "country": "Hong Kong", + "coordinates": { + "lon": 114.17469, + "lat": 22.27832 + } + }, + { + "geoname_id": "1814906", + "name": "Chongqing", + "ascii_name": "Chongqing", + "alternate_names": [ + "CKG", + "Cchung-cching", + "Ch'ung-ch'ing", + "Ch'ung-ch'ing-shih", + "Chongqing", + "Chongqing (Chongqing Shi)", + "Chongqing - zhong qing", + "Chongqing - 重庆", + "Chongqing Shi", + "Chuncin", + "Chungking", + "Ch’ung-ch’ing", + "Ch’ung-ch’ing-shih", + "Congcing", + "Congcingas", + "Congcingo", + "Csungking", + "Cuncjina", + "Pa", + "Pa-hsien", + "Trung Khanh", + "Trùng Khánh", + "Tshung-khin", + "Tshùng-khin", + "Tsjoengking", + "Yu-chou", + "Yuzhou", + "Yü-chou", + "caungakiga", + "ceancin", + "chng ching", + "chungching si", + "chwng kyng", + "chwngchng", + "congachinga", + "congkinga", + "conkin", + "tshwnghtshyngh", + "z'wngz'yng", + "zhong qing", + "zhong qing shi", + "Çongçing", + "Ĉongĉingo", + "Čchung-čching", + "Čongčingas", + "Čuncjina", + "Чунгкинг", + "Чунцин", + "Чунцін", + "צ'ונגצ'ינג", + "تشونغتشينغ", + "چونگ کینگ", + "چونگچنگ", + "چونگ‌کینگ", + "چۇڭچىڭ شەھىرى", + "चोंगछिंग", + "चोंग्किंग", + "ਚੌਂਗਕਿੰਗ", + "சோங்கிங்", + "ചോങ്ചിങ്", + "ฉงชิ่ง", + "ཁྲུང་ཆིན་གྲོང་ཁྱེར།", + "重庆", + "重庆市", + "重慶", + "重慶市", + "충칭 시" + ], + "latitude": "29.56026", + "longitude": "106.55771", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "33", + "admin2_code": "8739734", + "admin3_code": null, + "admin4_code": null, + "population": 7457599, + "elevation": null, + "dem": 289, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 106.55771, + "lat": 29.56026 + } + }, + { + "geoname_id": "98182", + "name": "Baghdad", + "ascii_name": "Baghdad", + "alternate_names": [ + "BGW", + "Bagda", + "Bagdad", + "Bagdadas", + "Bagdado", + "Bagdat", + "Bagdate", + "Bagdatum", + "Bagdod", + "Bagdá", + "Bagdád", + "Baghdad", + "Baghdād", + "Bağdad", + "Bağdat", + "Beghdad", + "Bexda", + "Lungsod ng Baghdad", + "ba ge da", + "bagadada", + "bageudadeu", + "bagudado", + "bghdad", + "bەghdad", + "paktat", + "Βαγδάτη", + "Багдад", + "Бағдод", + "Բաղդադ", + "בגדאד", + "بغداد", + "بەغداد", + "ܒܓܕܐܕ", + "बगदाद", + "বাগদাদ", + "பக்தாத்", + "པ་ག་ཏ", + "ባግዳድ", + "バグダード", + "巴格达", + "巴格達", + "바그다드" + ], + "latitude": "33.34058", + "longitude": "44.40088", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "IQ", + "country_code_2": null, + "admin1_code": "07", + "admin2_code": "9166668", + "admin3_code": null, + "admin4_code": null, + "population": 7216000, + "elevation": null, + "dem": 41, + "timezone": "Asia/Baghdad", + "modification_date": "2024-02-14", + "country": "Iraq", + "coordinates": { + "lon": 44.40088, + "lat": 33.34058 + } + }, + { + "geoname_id": "1797929", + "name": "Qingdao", + "ascii_name": "Qingdao", + "alternate_names": [ + "Cching-tao", + "Ch'ing-tao", + "Ch'ing-tao-shih", + "Chheng-to-chhi", + "Chheng-tó-chhī", + "Chindao", + "Ching-do", + "Chĭng-dō̤", + "Ch’ing-tao", + "Ch’ing-tao-shih", + "Cindao", + "Cingdao", + "Cjindao", + "Csingtao", + "Qingdao", + "Qingdao Shi", + "Sindao", + "TAO", + "Thanh GJao", + "Thanh Đảo", + "Tsin'nktao", + "Tsingtao", + "Tsingtau", + "ching tea", + "chingdao si", + "chngڈaw", + "chyngdaw", + "chyng‌dayw", + "cingada'o", + "kigada'o", + "kuyintavo", + "qing dao", + "qing dao shi", + "tshynghdaw", + "zyngdʼw", + "Čching-tao", + "Čingdao", + "Τσινγκτάο", + "Ћингдао", + "Циндао", + "Ціндао", + "Чиндао", + "Чиңдау", + "Ցինդաո", + "צינגדאו", + "تشينغداو", + "چنگڈاؤ", + "چىڭداۋ شەھىرى", + "چینگداؤ", + "چینگ‌دائو", + "चिंगदाओ", + "ਕਿੰਗਦਾਓ", + "குயிங்தவோ", + "ชิงเต่า", + "ချင်းတောင်မြို့", + "青岛", + "青岛市", + "青島", + "青島市", + "칭다오 시" + ], + "latitude": "36.06488", + "longitude": "120.38042", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "25", + "admin2_code": "3702", + "admin3_code": null, + "admin4_code": null, + "population": 7172451, + "elevation": null, + "dem": 16, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 120.38042, + "lat": 36.06488 + } + }, + { + "geoname_id": "112931", + "name": "Tehran", + "ascii_name": "Tehran", + "alternate_names": [ + "THR", + "Taekhran", + "Tahran", + "Techerane", + "Teera", + "Teerao", + "Teerã", + "Teerão", + "Tegeran", + "Teheran", + "Teherana", + "Teheranas", + "Teherano", + "Teherán", + "Teherāna", + "Tehran", + "Tehrano", + "Tekheran", + "Téhéran", + "de hei lan", + "teharan", + "teharana", + "tehelan", + "teheran", + "tehran", + "teirani", + "thran", + "thrn", + "thrwn", + "tihran", + "Τεχεράνη", + "Тæхран", + "Тегеран", + "Техеран", + "Теҳрон", + "Թեհրան", + "טהראן", + "טהרן", + "تهران", + "تهرون", + "تِهران", + "تہران", + "طهران", + "ܛܗܪܐܢ", + "तेहरान", + "তেহরান", + "தெஹ்ரான்", + "เตหะราน", + "ཏེ་ཧི་རན​།", + "თეირანი", + "ቴህራን", + "テヘラン", + "德黑兰", + "德黑蘭", + "테헤란" + ], + "latitude": "35.69439", + "longitude": "51.42151", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "IR", + "country_code_2": null, + "admin1_code": "26", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 7153309, + "elevation": null, + "dem": 1178, + "timezone": "Asia/Tehran", + "modification_date": "2023-11-29", + "country": "Iran", + "coordinates": { + "lon": 51.42151, + "lat": 35.69439 + } + }, + { + "geoname_id": "2034937", + "name": "Shenyang", + "ascii_name": "Shenyang", + "alternate_names": [ + "Feng-t'ien", + "Feng-t’ien", + "Moukden", + "Mukden", + "SHE", + "Sen'gian'nk", + "Sen-jang", + "Senjana", + "Senjang", + "Senjangas", + "Senjango", + "Shehn'jan", + "Shehn'jan khot", + "Shen'jan", + "Shen-yang-hsien", + "Shen-yang-shih", + "Shengking", + "Shenjang", + "Shenyan", + "Shenyang", + "Shenyang Shi", + "Shunjan", + "Sim-iong-chhi", + "Sing-iong", + "Sjenyang", + "Swnjyangh", + "Sím-iông-chhī", + "Sīng-iòng", + "Tham Duong", + "Thẩm Dương", + "cenyan", + "chen yang", + "chen yang shi", + "san'yanga", + "sein hyang", + "sen'yan", + "senayanga", + "seon-yang", + "seon-yang si", + "shen yang", + "shen yang shi", + "shnyang", + "shnyangh", + "shynyang", + "sim-yang", + "Ŝenjango", + "Šen-jang", + "Šenjangas", + "Šeņjana", + "Σενγιάνγκ", + "Шеньян", + "Шеньяң", + "Шенјанг", + "Шънян", + "Шэньян", + "Шэньян хот", + "שן-יאנג", + "شنيانغ", + "شنیانگ", + "شن‌یانگ", + "شینیانگ", + "شېنياڭ شەھىرى", + "शेनयांग", + "षन्यांग", + "ਸ਼ੇਨਯਾਂਗ", + "சென்யாங்", + "ഷെന്യാങ്", + "เสิ่นหยาง", + "沈阳", + "沈阳市", + "瀋陽", + "瀋陽市", + "선양", + "선양 시", + "심양" + ], + "latitude": "41.79222", + "longitude": "123.43278", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "19", + "admin2_code": "2101", + "admin3_code": null, + "admin4_code": null, + "population": 7050000, + "elevation": null, + "dem": 53, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 123.43278, + "lat": 41.79222 + } + }, + { + "geoname_id": "1269843", + "name": "Hyderābād", + "ascii_name": "Hyderabad", + "alternate_names": [ + "Bhaganagar", + "HYD", + "Haidarabadas", + "Haiderabad", + "Hajdarabad", + "Hajdarábád", + "Hyderabad", + "Hyderābād", + "Khajdarabad", + "Khajderabad", + "hai de la ba", + "haidarabada", + "haidarabadu", + "haiderabado", + "haitarapat", + "hayadarabada ema. karporesana", + "hayadrabada", + "hydr abad", + "hydr abad dkn", + "hydrabad", + "Хайдарабад", + "Хајдерабад", + "حیدر آباد", + "حیدر آباد دکن", + "حیدرآباد", + "हैदराबाद", + "হায়দরাবাদ এম. কর্পোরেশন", + "হায়দ্রাবাদ", + "ஹைதராபாத்", + "హైదరాబాదు", + "ハイデラバード", + "海得拉巴" + ], + "latitude": "17.38405", + "longitude": "78.45636", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "IN", + "country_code_2": null, + "admin1_code": "40", + "admin2_code": "536", + "admin3_code": null, + "admin4_code": null, + "population": 6809970, + "elevation": null, + "dem": 515, + "timezone": "Asia/Kolkata", + "modification_date": "2024-02-01", + "country": "India", + "coordinates": { + "lon": 78.45636, + "lat": 17.38405 + } + }, + { + "geoname_id": "3451190", + "name": "Rio de Janeiro", + "ascii_name": "Rio de Janeiro", + "alternate_names": [ + "Ciutat de Rio de Janeiro", + "RIO", + "Rio", + "Rio De Janeiro", + "Rio d Janeiro", + "Rio de Janeiro", + "Rio de Janeiru", + "Rio de Janero", + "Rio de Janeyro", + "Rio de Janèro", + "Rio de Janêro", + "Rio de Zaneiras", + "Rio de Zaneiros", + "Rio de Zaneyro", + "Rio de Zhaneiro", + "Rio de Zhanejro", + "Rio de Žaneiras", + "Rio dé Janéyro", + "Rio dė Žaneiros", + "Rio nte Tzaneiro", + "Rio-de-Janejro", + "Rio-de-Janeyro", + "Rio-de-Zaneiro", + "Rio-de-Zanejro", + "Rio-de-Zaneyro", + "Rio-de-Zhanejro", + "Rio-de-janeiro", + "Rio-de-Ĵanejro", + "Rio-de-Žaneiro", + "Rio-de-Žaneýro", + "Riodezaneiro", + "Riodežaneiro", + "Riu de Janeiro", + "Riu de Janeiru", + "Riviethe de Janvyi", + "Riviéthe dé Janvyi", + "Rya-deh-Zhanehjra", + "Río de Janeiro", + "Sao Sebastiao do Rio de Janeiro", + "São Sebastião do Rio de Janeiro", + "Urbs Fluminensis", + "iriyo ti ceniro", + "li yue re nei lu", + "liudejaneilu", + "rath ri xode ca ne ro", + "ri xode ca ne ro", + "ri'o di janero", + "ri'o di jeneri'o", + "ri'o di jeniro", + "rio-de-zhaneiro", + "riodejaneiro", + "rios. dis. djaneiros", + "riyea di janirea", + "riyo di janairo", + "riyo di janero", + "riyo di jeneriyo", + "riyo di jenero", + "riyo di jyaneriyo", + "ryw dh znyyrw", + "ryw dw zhanyrw", + "ryw dwzhanyrw", + "ryw dy janyrw", + "Ρίο ντε Τζανέιρο", + "Рио де Жанеиро", + "Рио де Жанейро", + "Рио-де-Жанейро", + "Рыа-дэ-Жанэйра", + "Ріо де Жанейро", + "Ріо-де-Жанейро", + "Ռիո դե Ժանեյրո", + "ריא דע זשאנערא", + "ריו דה זניירו", + "ريو دى جانيرو", + "ريو دي جانيرو", + "ریو دو ژانیرو", + "ریو دوژانیرو", + "ریو دے جینیرو", + "ریو ڈی جینرو", + "ڕیۆ دێ ژانێرۆ", + "रियो डि जेनेरो", + "रियो दि जानेरो", + "रियो दि ज्यानेरियो", + "रियो दी जेनेरियो", + "রিও ডি জেনিরো", + "রিও দি জেনেরিও", + "ਰਿਓ ਡੀ ਜਨੇਰੋ", + "இரியோ டி செனீரோ", + "ರಿಯೋ ಡಿ ಜನೈರೊ", + "റിയോ ഡി ജനീറോ", + "รัฐรีโอเดจาเนโร", + "รีโอเดจาเนโร", + "རིའོ་ཌེ་ཇ་ནེའུ་རའོ།", + "ရီယို ဒီ ဂျီးနေးရိုးမြို့", + "რიო-დე-ჟანეირო", + "ሪዮ ዴ ጃኔይሮ", + "リオデジャネイロ", + "里約熱內盧", + "里约热内卢", + "리우데자네이루" + ], + "latitude": "-22.90642", + "longitude": "-43.18223", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "BR", + "country_code_2": null, + "admin1_code": "21", + "admin2_code": "3304557", + "admin3_code": null, + "admin4_code": null, + "population": 6747815, + "elevation": null, + "dem": 12, + "timezone": "America/Sao_Paulo", + "modification_date": "2023-02-21", + "country": "Brazil", + "coordinates": { + "lon": -43.18223, + "lat": -22.90642 + } + }, + { + "geoname_id": "1886760", + "name": "Suzhou", + "ascii_name": "Suzhou", + "alternate_names": [ + "SZV", + "So-chiu-chhi", + "Soochow", + "Soutsoou", + "So͘-chiu-chhī", + "Su-chou", + "Su-chu-su", + "Su-ciu", + "Su-cou", + "Su-čou", + "Suchjou", + "Suchzhou", + "Sudzhou", + "Sudzou", + "Sudžou", + "Sugouo", + "Sutsjou", + "Suzhou", + "Suzhou Shi", + "Suzhou i Jiangsu", + "Suĝoŭo", + "Szucsou", + "Sû-chû-sṳ", + "Sŭ-ciŭ", + "To Chau", + "Tô Châu", + "Wu-hsien", + "cuco", + "ssujeou si", + "su cow", + "su zhou", + "su zhou shi", + "sujho'u", + "suzu", + "swgwʼw", + "swjw", + "swzhw", + "swzhww", + "Σουτσόου", + "Суджоу", + "Сучжоу", + "Сучжоў", + "Суџоу", + "Сүжоу", + "Սուչժոու", + "סוגואו", + "سوجو", + "سوژو", + "سوژوو", + "سۇجۇ شەھىرى", + "सूझोऊ", + "ਸੂਜ਼ੂ", + "சுசோ", + "ซูโจว", + "苏州", + "苏州市", + "蘇州", + "蘇州市", + "쑤저우 시" + ], + "latitude": "31.30408", + "longitude": "120.59538", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "04", + "admin2_code": "3205", + "admin3_code": null, + "admin4_code": null, + "population": 6715559, + "elevation": null, + "dem": 10, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 120.59538, + "lat": 31.30408 + } + }, + { + "geoname_id": "1279233", + "name": "Ahmedabad", + "ascii_name": "Ahmedabad", + "alternate_names": [ + "AMD", + "Achmentampant", + "Ahmadabad", + "Ahmadabadas", + "Ahmadabado", + "Ahmadobod", + "Ahmadábád", + "Ahmadābād", + "Ahmedabad", + "Akhmadabad", + "Akhmadabad shaary", + "Akhmedabad", + "Amadavad", + "Amdavada", + "Amdāvāda", + "Amedabato", + "Amedebatum", + "Exmetabad", + "a mei da ba de", + "a wa", + "afumadabado", + "aham'madabad", + "ahamadabad", + "ahamadabada", + "ahamedabada", + "ahimadabada", + "ahmadabad", + "ahmadabadi", + "ahmd abad", + "ahmdabad", + "ahmdabad - hyndystan", + "ai ha mai da ba de", + "ai ha mai de bao", + "akamatapat", + "amadabada", + "amadabadeu", + "amadaraada", + "amadavada", + "xah mda bad", + "ya mei da ba de", + "Əhmədabad", + "Αχμενταμπάντ", + "Ахмадабад", + "Ахмадабад шаары", + "Ахмедабад", + "Аҳмадобод", + "Әхмәдабад", + "Әхмәтабад", + "Ահմադաբադ", + "אחמדאבאד", + "אכמעדאבאד", + "أحمد آباد", + "احمد آباد", + "احمدآباد", + "احمدآباد - هیندیستان", + "احمداباد", + "अमदाबाद", + "अमदावाद", + "अहमदाबाद", + "अहमदाबाद्", + "অমদাৱাদ", + "আহমেদাবাদ", + "ਅਹਿਮਦਾਬਾਦ", + "અમદાવાદ", + "ଅହମଦାବାଦ", + "அகமதாபாத்", + "అహ్మదాబాద్", + "ಅಹ್ಮದಾಬಾದ್", + "അഹമ്മദാബാദ്", + "අහ්මදාබාද්", + "อัห์มดาบาด", + "အမယ်ဒါဘတ်မြို့", + "აჰმადაბადი", + "አሕምድባድ", + "ᱚᱦᱢᱚᱫᱟᱵᱟᱫᱽ", + "アフマダーバード", + "亞美達巴德", + "艾哈迈德堡", + "艾哈迈达巴德", + "阿哇", + "阿美達巴德", + "아마다바드" + ], + "latitude": "23.02579", + "longitude": "72.58727", + "feature_class": "P", + "feature_code": "PPL", + "country_code": "IN", + "country_code_2": null, + "admin1_code": "09", + "admin2_code": "474", + "admin3_code": "3781", + "admin4_code": null, + "population": 6357693, + "elevation": null, + "dem": 56, + "timezone": "Asia/Kolkata", + "modification_date": "2024-01-06", + "country": "India", + "coordinates": { + "lon": 72.58727, + "lat": 23.02579 + } + }, + { + "geoname_id": "2293538", + "name": "Abidjan", + "ascii_name": "Abidjan", + "alternate_names": [ + "ABJ", + "Abican", + "Abidjan", + "Abidzan", + "Abidzana", + "Abidzanas", + "Abidzans", + "Abidzhan", + "Abidzhan shaary", + "Abidżan", + "Abidžan", + "Abidžana", + "Abidžanas", + "Abidžans", + "Abigano", + "Abijan", + "Abiyan", + "Abiyán", + "Abizhan khot", + "Abiĝano", + "Ampitzan", + "a bi rang", + "a bi ren", + "abdjan", + "abijan", + "abijana", + "abijang", + "abijani", + "abydjan", + "abyjan", + "xabi can", + "ʼbydgʼn", + "Αμπιτζάν", + "Абиджан", + "Абиджан шаары", + "Абижан хот", + "Абиџан", + "Абіджан", + "Աբիջան", + "אבידגאן", + "אבידזשאן", + "آبدجان", + "آبیجان", + "أبيدجان", + "आबिजान", + "আবিজান", + "ਅਬੀਜਾਨ", + "അബിജാൻ", + "อาบีจาน", + "აბიჯანი", + "アビジャン", + "阿必仁", + "阿比让", + "아비장" + ], + "latitude": "5.35444", + "longitude": "-4.00167", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CI", + "country_code_2": null, + "admin1_code": "93", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 6321017, + "elevation": null, + "dem": 50, + "timezone": "Africa/Abidjan", + "modification_date": "2022-12-14", + "country": "Ivory Coast", + "coordinates": { + "lon": -4.00167, + "lat": 5.35444 + } + }, + { + "geoname_id": "1172451", + "name": "Lahore", + "ascii_name": "Lahore", + "alternate_names": [ + "LHE", + "Lachori", + "Lahaur", + "Lahor", + "Lahora", + "Lahoras", + "Lahore", + "Lahorium", + "Lahoro", + "Lakhor", + "Lohur", + "Láhaur", + "Lâhore", + "Lāhaur", + "la h xr", + "la he er", + "lahaura", + "laholeu", + "lahor", + "lahora", + "lahori", + "lahwr", + "lakur", + "lwہwr", + "rahoru", + "Λαχόρη", + "Лахор", + "Լահոր", + "לאהור", + "لاهور", + "لاھور", + "لاھۆر", + "لاہور", + "لوہوٗر", + "لہور", + "लाहोर", + "लाहौर", + "লাহোর", + "ਲਹੌਰ", + "લાહોર", + "லாகூர்", + "లాహోర్", + "ಲಾಹೋರ್", + "ലാഹോർ", + "ลาฮอร์", + "ლაჰორი", + "ラホール", + "ラーホール", + "拉合尔", + "拉合爾", + "라호르" + ], + "latitude": "31.558", + "longitude": "74.35071", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "PK", + "country_code_2": null, + "admin1_code": "04", + "admin2_code": "1172449", + "admin3_code": null, + "admin4_code": null, + "population": 6310888, + "elevation": null, + "dem": 216, + "timezone": "Asia/Karachi", + "modification_date": "2023-10-25", + "country": "Pakistan", + "coordinates": { + "lon": 74.35071, + "lat": 31.558 + } + }, + { + "geoname_id": "1880252", + "name": "Singapore", + "ascii_name": "Singapore", + "alternate_names": [ + "SIN", + "Sin-ka-po", + "Singapore", + "Singapore City", + "Singapour", + "Singapur", + "Singapura", + "Sinkapoure", + "Sîn-kâ-po", + "Tumasik", + "cinkappur", + "prathes singkhpor", + "shingaporu", + "sigapura", + "sing-gapol", + "sing-gapoleu", + "singapura", + "singkh por", + "sngapwr", + "snghafwrt", + "syngpwr", + "xin jia po", + "xing jia po", + "Σιγκαπούρη", + "Сингапур", + "Сінгапур", + "סינגפור", + "سنغافورة", + "سنگاپور", + "सिंगापुर", + "सिंगापूर", + "ਸਿੰਗਾਪੁਰ", + "சிங்கப்பூர்", + "ประเทศสิงคโปร์", + "สิงค์โปร", + "ປະເທດສງກະໂປ", + "ປະເທດສິງກະໂປ", + "စငကာပနငင", + "စင်ကာပူနိုင်ငံ", + "សងហបរ", + "សិង្ហបុរី", + "シンガポール", + "新加坡", + "星架坡", + "싱가포르", + "싱가폴" + ], + "latitude": "1.28967", + "longitude": "103.85007", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "SG", + "country_code_2": null, + "admin1_code": "01", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 5638700, + "elevation": null, + "dem": 23, + "timezone": "Asia/Singapore", + "modification_date": "2022-06-05", + "country": "Singapore", + "coordinates": { + "lon": 103.85007, + "lat": 1.28967 + } + }, + { + "geoname_id": "993800", + "name": "Johannesburg", + "ascii_name": "Johannesburg", + "alternate_names": [ + "EGoli", + "Giochanesmpournk", + "IGoli", + "IJohannesburg", + "Ioannesburgum", + "JNB", + "Jo'anna", + "Joanesburgo", + "Joburg", + "Jog'annesburg", + "Joganesburg", + "Jogannesburg", + "Johanesburgas", + "Johanesburgo", + "Johannesarborg", + "Johannesbourg", + "Johannesburg", + "Johannesburga", + "Johannesburgo", + "Johannesburgu", + "Jokhanesburg", + "Jokhanezburg", + "Jokhannesburg", + "J·ohanesbôrg", + "Jóhannesarborg", + "Xohanesburgo", + "Yohannesburg", + "Yohannesburq", + "Yohannésburg", + "Yok-hon-ni-su-pau", + "Yok-hon-nì-sṳ̂-páu", + "Yoxannesburg", + "cohannes beirk", + "iohanesburgi", + "johanisabaraga", + "johannesbarga", + "johansabarga", + "jokanasperk", + "jwhansbrgh", + "yohaneseubeogeu", + "yohanesuburugu", + "yue han nei si bao", + "yue han ni si bao", + "ywhnsbwrg", + "zhwhansbwrg", + "Γιοχάνεσμπουργκ", + "Ёганесбург", + "Јоханезбург", + "Јоханесбург", + "Йоганнесбург", + "Йогьаннесбург", + "Йоханесбург", + "Йоханнесбург", + "Յոհաննեսբուրգ", + "יאהאנעסבורג", + "יוהנסבורג", + "جوهانسبرغ", + "جوہانسبرگ", + "جۆھانسبێرگ", + "ژوهانسبورگ", + "یوہانس برگ", + "जोहन्नेस्बर्ग", + "जोहान्सबर्ग", + "ਜੋਹਾਨਿਸਬਰਗ", + "ஜோகானஸ்பேர்க்", + "ജൊഹാനസ്‌ബർഗ്", + "โจฮันเนสเบิร์ก", + "ဂျိုဟန္နက်စဗတ်မြို့", + "იოჰანესბურგი", + "ጆሃንስበርግ", + "ヨハネスブルグ", + "約翰尼斯堡", + "约翰内斯堡", + "요하네스버그" + ], + "latitude": "-26.20227", + "longitude": "28.04363", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "ZA", + "country_code_2": null, + "admin1_code": "06", + "admin2_code": "JHB", + "admin3_code": "JHB", + "admin4_code": null, + "population": 5635127, + "elevation": null, + "dem": 1767, + "timezone": "Africa/Johannesburg", + "modification_date": "2023-10-25", + "country": "South Africa", + "coordinates": { + "lon": 28.04363, + "lat": -26.20227 + } + }, + { + "geoname_id": "160263", + "name": "Dar es Salaam", + "ascii_name": "Dar es Salaam", + "alternate_names": [ + "DAR", + "Dar Es Salaam", + "Dar Es Salam", + "Dar es Salaam", + "Dar es Salam", + "Dar es Salamas", + "Dar es Salams", + "Dar es Salám", + "Dar es-Salaam", + "Dar es-Salam", + "Dar əs Salam", + "Dar-ehs-Salam", + "Dar-ehs-Salam shaary", + "Dar-es-Salaam", + "Dar-es-Salam", + "Darasalam", + "Daresalama", + "Daresalamo", + "Daressalaam", + "Daressalam", + "Daruesselam", + "Darüsselam", + "Dárasalám", + "Dār es Salām", + "Dāresalāma", + "Ntar es Salam", + "Ntontoma", + "da lei si sa la mu", + "daleueseusallam", + "dar alslam", + "dar-es-salami", + "dar-xes-salam", + "dara asa salama", + "dara esa salama", + "daralslam", + "daruesusaramu", + "san lan gang", + "tarus'salam", + "Νταρ ες Σαλάμ", + "Ντοντόμα", + "Дар ес Салам", + "Дар ес-Салаам", + "Дар-ес-Салам", + "Дар-эс-Салам", + "Дар-эс-Салам шаары", + "דאר א-סלאם", + "דאר עס סאלאאם", + "دار السلام", + "دارالسلام", + "دارېسسالام", + "दार अस सलाम", + "दार एस सलाम", + "ਦਾਰ ਅਸ ਸਲਾਮ", + "தாருஸ்ஸலாம்", + "ดาร์-เอส-ซาลาม", + "ཏ་རེ་སི་ས་ལམ།", + "ဒါအက်စ် ဆယ်လန်းမြို့", + "დარ-ეს-სალამი", + "ダルエスサラーム", + "三蘭港", + "达累斯萨拉姆", + "다르에스살람" + ], + "latitude": "-6.82349", + "longitude": "39.26951", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "TZ", + "country_code_2": null, + "admin1_code": "23", + "admin2_code": "0702", + "admin3_code": "0702132", + "admin4_code": null, + "population": 5383728, + "elevation": null, + "dem": 24, + "timezone": "Africa/Dar_es_Salaam", + "modification_date": "2023-10-25", + "country": "Tanzania", + "coordinates": { + "lon": 39.26951, + "lat": -6.82349 + } + }, + { + "geoname_id": "498817", + "name": "Saint Petersburg", + "ascii_name": "Saint Petersburg", + "alternate_names": [ + "Agia Petroupole", + "Betuyrbukh", + "Cankt-Peterburg", + "LED", + "Leningrad", + "Leningrado", + "Lungsod ng Sankt-Peterburg", + "Peterburg", + "Peterburgo", + "Peterburi", + "Petersburg", + "Petrapilis", + "Petrograd", + "Petrogrado", + "Petrohrad", + "Petropolis", + "Petursborg", + "Pietari", + "Piiteri", + "Piter", + "Pétursborg", + "SPb", + "Saint Petersbourg", + "Saint Petersburg", + "Saint Pétersbourg", + "Saint-Petersbourg", + "Saint-Pétersbourg", + "San Petersburgo", + "San Pietroburgo", + "San Pietruburgu", + "Sankt Peitersbuerg", + "Sankt Peterburg", + "Sankt Peterburgas", + "Sankt Petersborg", + "Sankt Petersburg", + "Sankt Peterzburg", + "Sankt Péitersbuerg", + "Sankt-Peterburg", + "Sankt-Peterburgo", + "Sankt-Peterburq", + "Sankt-Petersburg", + "Sankti Petursborg", + "Sankti Pétursborg", + "Sanktpeterburga", + "Sanktpēterburga", + "Sant Petersburg", + "Sant Petersburgo", + "Sant-Petersbourg", + "Santa Peterburg", + "Sao Petersburgo", + "Sint Petersbork", + "Sint-Petersburg", + "St Petersburg", + "St. Petersburg", + "St.-Petersburg", + "Szentpetervar", + "Szentpétervár", + "São Petersburgo", + "leningeuladeu", + "sangteupeteleubuleukeu", + "sankt. peterburg", + "sankutopeteruburuku", + "sant btrsbrgh", + "seinteupiteojeubeogeu", + "sent pi te xrs beirk", + "senta pitarsabarga", + "sheng bi de bao", + "sn ptrzbwrg", + "snqt ptrbwrg", + "Αγία Πετρούπολη", + "Бетъырбух", + "Ленинград", + "Петербург", + "Петроград", + "Питер", + "СПб", + "Санкт Петербург", + "Санкт Петерзбург", + "Санкт-Петербург", + "Սանկտ Պետերբուրգ", + "סנקט פטרבורג", + "سانت بطرسبرغ", + "سن پترزبورگ", + "সেন্ট পিটার্সবার্গ", + "เซนต์ปีเตอร์สเบิร์ก", + "სანკტ-პეტერბურგი", + "სანქტ-პეტერბურგი", + "サンクトペテルブルク", + "圣彼得堡", + "聖彼得堡", + "레닌그라드", + "상트페테르부르크", + "세인트피터즈버그" + ], + "latitude": "59.93863", + "longitude": "30.31413", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "RU", + "country_code_2": null, + "admin1_code": "66", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 5351935, + "elevation": null, + "dem": 11, + "timezone": "Europe/Moscow", + "modification_date": "2022-08-17", + "country": "Russia", + "coordinates": { + "lon": 30.31413, + "lat": 59.93863 + } + }, + { + "geoname_id": "361058", + "name": "Alexandria", + "ascii_name": "Alexandria", + "alternate_names": ["too many elements to preview"], + "latitude": "31.20176", + "longitude": "29.91582", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "EG", + "country_code_2": null, + "admin1_code": "06", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 5263542, + "elevation": null, + "dem": 9, + "timezone": "Africa/Cairo", + "modification_date": "2022-04-18", + "country": "Egypt", + "coordinates": { + "lon": 29.91582, + "lat": 31.20176 + } + }, + { + "geoname_id": "2037013", + "name": "Harbin", + "ascii_name": "Harbin", + "alternate_names": [ + "Cap Nhi Tan", + "Charbin", + "Charbinas", + "Charmpin", + "Cáp Nhĩ Tân", + "HRB", + "Ha'erbin", + "Ha-erh-pin", + "Ha-erh-pin-shih", + "Harbin", + "Harbin Shi", + "Harbin-chhi", + "Harbin-chhī", + "Harbina", + "Harbino", + "Ha’erbin", + "Kharbin", + "Lungsod ng Harbin", + "Pin-chiang", + "Pin-chiang-hsien", + "Pinkiang", + "Xarbin", + "ha er bin", + "ha er bin shi", + "ha-eolbin si", + "har bin", + "harabina", + "harbn", + "harbyn", + "harpina", + "harubin", + "harubin shi", + "hrbyn", + "kharbini", + "Χαρμπίν", + "Харбин", + "Харбін", + "Խարբին", + "חרבין", + "خاربىن شەھىرى", + "هاربن", + "هاربین", + "ہاربن", + "हारबिन", + "हार्पिन", + "ਹਾਰਬਿਨ", + "ฮาร์บิน", + "ဟာရ်ပင်းမြို့", + "ხარბინი", + "ハルビン", + "ハルビン市", + "哈尔滨", + "哈尔滨市", + "哈爾濱", + "하얼빈 시" + ], + "latitude": "45.75", + "longitude": "126.65", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "08", + "admin2_code": "2301", + "admin3_code": null, + "admin4_code": null, + "population": 5242897, + "elevation": null, + "dem": 140, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 126.65, + "lat": 45.75 + } + }, + { + "geoname_id": "2147714", + "name": "Sydney", + "ascii_name": "Sydney", + "alternate_names": [ + "SYD", + "Sanctus Dionysius", + "Sedniejos", + "Sek-na", + "Sidnef", + "Sidnei", + "Sidnej", + "Sidneja", + "Sidnejo", + "Sidnejus", + "Sidney", + "Sidneý", + "Sidni", + "Sidnéy", + "Sidnėjus", + "Sit-ni", + "Sit-nì", + "Syd", + "Sydneium", + "Sydney", + "Sydney City", + "Sék-nà̤", + "Sídney", + "Sîdney", + "Sėdniejos", + "citni", + "shidoni", + "sidani", + "sideuni", + "sidnei", + "sidni", + "sidniy", + "sydny", + "xi ni", + "xue li", + "Σίδνεϋ", + "Сиднеи", + "Сидней", + "Сиднеј", + "Сидни", + "Сідней", + "Сідні", + "Սիդնեյ", + "סידני", + "سيدنى", + "سيدني", + "سڈنی", + "سیدنی", + "ܣܝܕܢܝ", + "सिडनी", + "सिड्नी", + "सिद्नी", + "সিডনি", + "ਸਿਡਨੀ", + "સીડની", + "சிட்னி", + "సిడ్నీ", + "ಸಿಡ್ನಿ", + "സിഡ്നി", + "සිඩ්නි", + "ซิดนีย์", + "སིད་ནེ།", + "ဆစ်ဒနီမြို့", + "სიდნეი", + "ሲድኒ", + "ស៊ីដនីយ៏", + "シドニー", + "悉尼", + "雪梨", + "시드니" + ], + "latitude": "-33.86785", + "longitude": "151.20732", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "AU", + "country_code_2": null, + "admin1_code": "02", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 5231147, + "elevation": null, + "dem": 58, + "timezone": "Australia/Sydney", + "modification_date": "2023-02-16", + "country": "Australia", + "coordinates": { + "lon": 151.20732, + "lat": -33.86785 + } + }, + { + "geoname_id": "1609350", + "name": "Bangkok", + "ascii_name": "Bangkok", + "alternate_names": [ + "Amphoe Phra Nakhon", + "BKK", + "Ban'nkok", + "Bancac", + "Bancocum", + "Bancoque", + "Bancác", + "Banghok", + "Bangkok", + "Bangkok Metropolis", + "Bangkoka", + "Bangkòk", + "Banguecoque", + "Bankok", + "Bankokas", + "Bankoko", + "Banqkok", + "Changwat Phra Nakhon", + "Krung Thep", + "Krung Thep Maha Nakhon", + "Krung Thep Maha Nakhon Amon Rattanakosin Mahintarayutthaya Maha Dilok Phop Noppharat Ratchathani Buri Rom Udom Ratchaniwet Maha Sathan Amon Phiman Awatan Sathit Sakka Thattiya Witsanukam Prasit", + "Krungdeb", + "Man-kuk", + "Màn-kuk", + "Phra Nakhon", + "Siayuthia", + "The City of Angels", + "bainkaka", + "bainkoka", + "bamkoka", + "bangkog", + "bangkwk", + "bankeakk", + "bankoku", + "bankwk", + "bngqwq", + "bnkak", + "byankak", + "byankaka", + "camraata byankaka", + "krungtheph", + "krungthephmhankhr", + "krungtheph‡", + "man gu", + "penkak", + "Μπανγκόκ", + "Бангкок", + "Банкок", + "Баҥкок", + "Բանգկոկ", + "באנגקאק", + "בנגקוק", + "بانكوك", + "بانکوک", + "بانکۆک", + "بانګکوک", + "بانگكوك", + "بنکاک", + "बँकॉक", + "बैंकक", + "बैंकॉक", + "চাংৱাত ব্যাংকক", + "ব্যাংকক", + "ਬੈਂਕਾਕ", + "பேங்காக்", + "ಬ್ಯಾಂಕಾಕ್", + "ബാങ്കോക്ക്", + "බැංකොක්", + "กรุงเทพ", + "กรุงเทพมหานคร", + "กรุงเทพมหานคร อมรรัตนโกสินทร์ มหินทรายุธยา มหาดิลกภพ นพรัตนราชธานีบูรีรมย์ อุดมราชนิเวศน์มหาสถาน อมรพิมานอวตารสถิต สักกะทัตติยวิษณุกรรมประสิทธิ์", + "กรุงเทพฯ", + "ບາງກອກ", + "པན་ཀོག", + "ဘန်ကောက်မြို့", + "ბანგკოკი", + "ባንኮክ", + "バンコク", + "曼谷", + "방콕" + ], + "latitude": "13.75398", + "longitude": "100.50144", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "TH", + "country_code_2": null, + "admin1_code": "40", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 5104476, + "elevation": null, + "dem": 12, + "timezone": "Asia/Bangkok", + "modification_date": "2024-01-04", + "country": "Thailand", + "coordinates": { + "lon": 100.50144, + "lat": 13.75398 + } + }, + { + "geoname_id": "1808722", + "name": "Hefei", + "ascii_name": "Hefei", + "alternate_names": [ + "Che-fej", + "Chefei", + "HFE", + "Hak-bui", + "Hap-pui-chhi", + "Ha̍p-pûi-chhī", + "Hefei", + "Hefei Shi", + "Hefejo", + "Hefejus", + "Hefėjus", + "Heyfey", + "Ho-fei", + "Ho-fei-hsien", + "Ho-fei-shih", + "Hofej", + "Hop Phi", + "Hozfeiz", + "Hăk-bùi", + "Hợp Phì", + "Khefej", + "Khehfehj", + "Khufej", + "Lu-chou", + "Luchow", + "Luchowfu", + "Lunchow", + "haphai", + "he fei", + "he fei shi", + "hefe'i", + "heopei si", + "hexfey", + "hfyy", + "khfy", + "Χεφέι", + "Хефей", + "Хефеј", + "Хъфей", + "Хэфэй", + "Хөфэй", + "Հեյֆեյ", + "خفي", + "خېفېي شەھىر", + "هفئی", + "ہیفئی", + "ہیفیئی", + "हफै", + "हेफ़ेई", + "เหอเฝย์", + "合肥", + "合肥市", + "허페이 시" + ], + "latitude": "31.86389", + "longitude": "117.28083", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "01", + "admin2_code": "3401", + "admin3_code": null, + "admin4_code": null, + "population": 5050000, + "elevation": null, + "dem": 24, + "timezone": "Asia/Shanghai", + "modification_date": "2021-12-13", + "country": "China", + "coordinates": { + "lon": 117.28083, + "lat": 31.86389 + } + }, + { + "geoname_id": "2158177", + "name": "Melbourne", + "ascii_name": "Melbourne", + "alternate_names": [ + "Greater Melbourne", + "MEL", + "Mel'burn", + "Melben", + "Melborns", + "Melbourne", + "Melbourne City", + "Melbournum", + "Melburn", + "Melburna", + "Melburnas", + "Melburno", + "Melvourni", + "mel beirn", + "melaborna", + "melbeoleun", + "melbeon", + "melporn", + "meruborun", + "mlbwrn", + "mo er ben", + "Μελβούρνη", + "Мелбурн", + "Мелбърн", + "Мельбурн", + "מלבורן", + "ملبورن", + "مېلبۇرن", + "मेलबोर्न", + "மெல்போர்ன்", + "เมลเบิร์น", + "མེར་བུན", + "メルボルン", + "墨尔本", + "墨爾本", + "멜버른", + "멜번" + ], + "latitude": "-37.814", + "longitude": "144.96332", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "AU", + "country_code_2": null, + "admin1_code": "07", + "admin2_code": "24600", + "admin3_code": null, + "admin4_code": null, + "population": 4917750, + "elevation": null, + "dem": 25, + "timezone": "Australia/Melbourne", + "modification_date": "2023-11-16", + "country": "Australia", + "coordinates": { + "lon": 144.96332, + "lat": -37.814 + } + }, + { + "geoname_id": "1814087", + "name": "Dalian", + "ascii_name": "Dalian", + "alternate_names": [ + "DLC", + "Dairen", + "Dal'niy", + "Dalian", + "Dalian Shi", + "Daljan'", + "Dalny", + "Dal’niy", + "Lu-ta", + "Lu-ta-shih", + "Luda", + "Lü-ta", + "Lü-ta-shih", + "Lüda", + "Ntalian", + "Ta-lien", + "Ta-lien-shih", + "da lian", + "da lian shi", + "daelyeon", + "dalyan", + "dalyen si", + "dʼlyyn", + "ta heliyn", + "Νταλιάν", + "Далянь", + "דאליין", + "داليان", + "دالیان", + "ต้าเหลียน", + "大连", + "大连市", + "大連", + "大連市", + "다롄 시", + "대련" + ], + "latitude": "38.91222", + "longitude": "121.60222", + "feature_class": "P", + "feature_code": "PPL", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "19", + "admin2_code": "2102", + "admin3_code": null, + "admin4_code": null, + "population": 4913879, + "elevation": null, + "dem": 33, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 121.60222, + "lat": 38.91222 + } + }, + { + "geoname_id": "2335204", + "name": "Kano", + "ascii_name": "Kano", + "alternate_names": [ + "Byen Kano", + "Cano", + "KAN", + "Kanas", + "Kano", + "Kánò", + "ka nuo", + "kano", + "kanw", + "kanw nyjryh", + "qnw", + "Кано", + "קנו", + "كانو", + "کانو", + "کانو، نیجریه", + "कानो", + "ਕਾਨੋ", + "கனோ", + "カノ", + "卡諾", + "카노" + ], + "latitude": "12.00012", + "longitude": "8.51672", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "NG", + "country_code_2": null, + "admin1_code": "29", + "admin2_code": "20043", + "admin3_code": "KN2106", + "admin4_code": null, + "population": 4910000, + "elevation": null, + "dem": 484, + "timezone": "Africa/Lagos", + "modification_date": "2024-01-18", + "country": "Nigeria", + "coordinates": { + "lon": 8.51672, + "lat": 12.00012 + } + }, + { + "geoname_id": "3871336", + "name": "Santiago", + "ascii_name": "Santiago", + "alternate_names": [ + "Ciles Santjagas", + "CiudadSantiago", + "SCL", + "Sanctiacobi", + "Sant'jago", + "Santiago", + "Santiago de Chile", + "Santiago de Xile", + "Santiago del Cile", + "Santiago do Chile", + "Santiago du Chili", + "Santiago du Ch·ili", + "Santianko", + "Santjago", + "Santjago de Chile", + "Santjago de Chili", + "Stgo.", + "santiago", + "santixako", + "santiyago", + "santyaghw", + "santyagw", + "santyyagw", + "sheng de ya ge", + "Čilės Santjagas", + "Σαντιάγκο", + "Σαντιάγο", + "Сантьяго", + "Сантяго де Чиле", + "Сантяго де Чили", + "סנטיאגו דה צ'ילה", + "سانتىياگو", + "سانتياغو", + "سانتیاگو", + "সান্টিয়াগো", + "ซันติอาโก", + "სანტიაგო დე ჩილე", + "ሳንቲያጎ", + "サンティアゴ", + "圣地亚哥", + "聖地亞哥", + "산티아고" + ], + "latitude": "-33.45694", + "longitude": "-70.64827", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "CL", + "country_code_2": null, + "admin1_code": "12", + "admin2_code": "131", + "admin3_code": "13101", + "admin4_code": null, + "population": 4837295, + "elevation": null, + "dem": 556, + "timezone": "America/Santiago", + "modification_date": "2023-10-25", + "country": "Chile", + "coordinates": { + "lon": -70.64827, + "lat": -33.45694 + } + }, + { + "geoname_id": "2038180", + "name": "Changchun", + "ascii_name": "Changchun", + "alternate_names": [ + "CGQ", + "Cancuna", + "Cangcun", + "Cangcunas", + "Cangcuno", + "Cangzcenh", + "Cchang-cchun", + "Ch'ang-ch'un-hsien", + "Ch'ang-ch'un-shih", + "Chanchun", + "Chanchun'", + "Changchuen", + "Changchun", + "Changchun Shi", + "Chhong-chhun-su", + "Chhòng-chhûn-sṳ", + "Chángchūn", + "Ch’ang-ch’un-hsien", + "Ch’ang-ch’un-shih", + "Csangcsun", + "Diong-chung", + "Diòng-chŭng", + "Hsin-chin", + "Hsin-ching", + "Hsinking", + "K'ua-ch'eng-tzu", + "Kwan-cheng-tze", + "K’ua-ch’eng-tzu", + "Tiong-chhun-chhi", + "Tiông-chhun-chhī", + "Truong Xuan", + "Trường Xuân", + "cangacuna", + "changachuna", + "changchun si", + "changchwn", + "jangchun", + "tshanghtshwn", + "zhang chun", + "zhang chun shi", + "Çangçun", + "Ĉangĉuno", + "Čangčun", + "Čangčunas", + "Čančuņa", + "Čchang-čchun", + "Чангчуен", + "Чанчун", + "Чанчунь", + "Чанчүнь хот", + "Չանչուն", + "צאנגצון", + "تشانغتشون", + "چانگچون", + "چاڭچۈن شەھىرى", + "चांगचून", + "छांगछुन", + "ਚਾਂਗਚੁਨ", + "ചാങ്ചൻ", + "ချောင်ချွန်းမြို့", + "長春", + "長春市", + "长春", + "长春市", + "장춘", + "창춘 시" + ], + "latitude": "43.88", + "longitude": "125.32278", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "05", + "admin2_code": "2201", + "admin3_code": null, + "admin4_code": null, + "population": 4714996, + "elevation": null, + "dem": 206, + "timezone": "Asia/Shanghai", + "modification_date": "2022-06-14", + "country": "China", + "coordinates": { + "lon": 125.32278, + "lat": 43.88 + } + }, + { + "geoname_id": "3369157", + "name": "Cape Town", + "ascii_name": "Cape Town", + "alternate_names": ["too many elements to preview"], + "latitude": "-33.92584", + "longitude": "18.42322", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "ZA", + "country_code_2": null, + "admin1_code": "11", + "admin2_code": "CPT", + "admin3_code": "CPT", + "admin4_code": null, + "population": 4710000, + "elevation": null, + "dem": 25, + "timezone": "Africa/Johannesburg", + "modification_date": "2024-01-18", + "country": "South Africa", + "coordinates": { + "lon": 18.42322, + "lat": -33.92584 + } + }, + { + "geoname_id": "105343", + "name": "Jeddah", + "ascii_name": "Jeddah", + "alternate_names": [ + "Chidda", + "Cidda", + "Ciddae", + "Cidde", + "Ciddä", + "Ciddə", + "Djedda", + "Djeddah", + "Djidda", + "Dschidda", + "Dzeda", + "Dzedda", + "Dzhida", + "Dzhidda", + "Dzhiddae", + "Dzhiddat", + "Dzhidde", + "Dzhyda", + "Dzida", + "Dzidd", + "Dzidda", + "Dzsidda", + "Dzudda", + "Dżudda", + "Džeda", + "Džedda", + "Džida", + "Džidd", + "Džidda", + "Gedda", + "Gidda", + "Gido", + "Iedda", + "JED", + "Jaddah", + "Jedda", + "Jeddah", + "Jida", + "Jidda", + "Jiddah", + "Jidde", + "Jidá", + "Judah", + "Juddah", + "Tzenta", + "Yida", + "Yidda", + "Zhidda", + "gdh", + "jada", + "jdh", + "jdt", + "jeda", + "jedda", + "jeddaha", + "ji da", + "jida", + "jidda", + "jitta", + "yid dah", + "Ĝido", + "Ğidda", + "Τζέντα", + "Џеда", + "Джида", + "Джиддæ", + "Джидда", + "Джиддат", + "Джидде", + "Джыда", + "Жидда", + "Ջիդդա", + "גדה", + "جدة", + "جده", + "جدّة", + "جدہ", + "ޖިއްދާ", + "जेद्दाह", + "জেদ্দা", + "ਜੱਦਾ", + "ஜித்தா", + "ജിദ്ദ", + "ญิดดะฮ์", + "ჯიდა", + "ジッダ", + "吉达", + "吉達", + "제다", + "지다" + ], + "latitude": "21.49012", + "longitude": "39.18624", + "feature_class": "P", + "feature_code": "PPL", + "country_code": "SA", + "country_code_2": null, + "admin1_code": "14", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 4697000, + "elevation": null, + "dem": 7, + "timezone": "Asia/Riyadh", + "modification_date": "2022-10-23", + "country": "Saudi Arabia", + "coordinates": { + "lon": 39.18624, + "lat": 21.49012 + } + }, + { + "geoname_id": "1264527", + "name": "Chennai", + "ascii_name": "Chennai", + "alternate_names": [ + "Cenaj", + "Cenajo", + "Cenajus", + "Cenay", + "Cennai", + "Cennaj", + "Chehnai", + "Chenaj", + "Chennai", + "Chennai - cennai", + "Chennai - சென்னை", + "Chennaj", + "Csennai", + "MAA", + "Maderaspatanum", + "Madras", + "Madrás", + "Tamizhagam", + "Tamulinadu", + "Tsennai", + "cen ni", + "cena'i", + "cenna'i", + "cennai", + "chen'nai", + "chenai", + "chennai", + "chnay", + "chnayy", + "chynay", + "chynayy", + "jin nai", + "qing nai", + "tshynay", + "znʼy", + "Çenay", + "Çennai", + "Ćennaj", + "Ĉenajo", + "Čenaj", + "Čenajus", + "Čennai", + "Čennaí", + "Τσεννάι", + "Ченай", + "Ченај", + "Ченнаи", + "Ченнай", + "Ченнаї", + "Чэнаі", + "Չեննայ", + "צנאי", + "تشيناي", + "چنائی", + "چنای", + "چينای", + "چینائی", + "चेन्नई", + "चेन्नै", + "চেন্নাই", + "ਚੇਨਈ", + "ચેન્નઈ", + "ଚେନ୍ନାଇ", + "சென்னை", + "చెన్నై", + "ಚೆನ್ನೈ", + "ചെന്നൈ", + "චෙන්නායි", + "เจนไน", + "ချန်နိုင်းမြို့", + "ჩენაი", + "チェンナイ", + "清奈", + "金奈", + "첸나이" + ], + "latitude": "13.08784", + "longitude": "80.27847", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "IN", + "country_code_2": null, + "admin1_code": "25", + "admin2_code": "603", + "admin3_code": null, + "admin4_code": null, + "population": 4681087, + "elevation": null, + "dem": 14, + "timezone": "Asia/Kolkata", + "modification_date": "2024-02-01", + "country": "India", + "coordinates": { + "lon": 80.27847, + "lat": 13.08784 + } + }, + { + "geoname_id": "1275004", + "name": "Kolkata", + "ascii_name": "Kolkata", + "alternate_names": [ + "CCU", + "Calcuta", + "Calcutta", + "Calcutá", + "Calcúta", + "Caligardamana", + "Kaelkuettae", + "Kal'kuta", + "Kal'kutta", + "Kal'kuttae", + "Kalikata", + "Kalikātā", + "Kalkata", + "Kalkota", + "Kalkouta", + "Kalkueta", + "Kalkuta", + "Kalkutta", + "Kalkútta", + "Kalküta", + "Kolkat", + "Kolkata", + "Kolkate", + "Kolkato", + "Kolkāta", + "Kälküttä", + "Kəlkətə", + "Sealdah", + "jia er ge da", + "jia li ji da", + "kalakata", + "kalakatta", + "kalikata", + "kalkata", + "keaൽkkatta", + "klkta", + "klkth", + "klkwth", + "ko l ka ta", + "kolakata", + "kolkata", + "kolkatta", + "kol‌kata", + "korukata", + "kwlkata", + "kʼolkʼatʼa", + "qwlqth", + "Καλκούτα", + "Калькута", + "Калькуттæ", + "Калькутта", + "Колката", + "Колкате", + "Կալկաթա", + "כלכותה", + "קאלקאטא", + "קולקטה", + "كلكتا", + "كولكاتا", + "کلکته", + "کلکتہ", + "کولکاتہ", + "کَلٕکَتا", + "کەلکەتە", + "कलकत्ता", + "कोलकाता", + "কলকাতা", + "ਕੋਲਕਾਤਾ", + "કોલકાતા", + "କଲିକତା", + "கொல்கத்தா", + "కోల్‌కాతా", + "ಕೊಲ್ಕತ್ತ", + "കൊൽക്കത്ത", + "โกลกาตา", + "ཀ་ལི་ཀུ་ཏ", + "ကာလကတ္တားမြို့", + "კოლკატა", + "ኮልካታ", + "コルカタ", + "加尔各答", + "架利吉打", + "콜카타" + ], + "latitude": "22.56263", + "longitude": "88.36304", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "IN", + "country_code_2": null, + "admin1_code": "28", + "admin2_code": "342", + "admin3_code": "999", + "admin4_code": null, + "population": 4631392, + "elevation": null, + "dem": 11, + "timezone": "Asia/Kolkata", + "modification_date": "2024-01-06", + "country": "India", + "coordinates": { + "lon": 88.36304, + "lat": 22.56263 + } + }, + { + "geoname_id": "1790645", + "name": "Xiamen", + "ascii_name": "Xiamen", + "alternate_names": [ + "A-muong", + "Amoy", + "E-mng-chhi", + "Ha Mon", + "Ha-mun-su", + "Ha-mùn-sṳ", + "Hiyamin", + "Hsia-men", + "Hsia-men-shih", + "Hsziamen", + "Hạ Môn", + "Shamen", + "Sia-men", + "Siamen", + "Siamenas", + "Sjamehn'", + "Sjamen", + "Sjamen'", + "Sjamun", + "Sjamyn'", + "Ssu-ming", + "Ssu-ming-hsien", + "Szeming-hsien", + "XMN", + "Xiamen", + "Xiamen - sha men", + "Xiamen - 厦门", + "Xiamen Shi", + "seiy he min", + "sha men", + "sha men shi", + "shyamn", + "shyamyn", + "siamini", + "syameon si", + "Â-muòng", + "Ē-mn̂g-chhī", + "Σιαμέν", + "Сямень", + "Сямън", + "Сямынь", + "Сямэнь", + "Сјамен", + "שיאמן", + "شيامن", + "شيامېن شەھىرى", + "شیامن", + "شیامین", + "เซี่ยเหมิน", + "სიამინი", + "厦门", + "厦门市", + "廈門", + "廈門市", + "샤먼 시" + ], + "latitude": "24.47979", + "longitude": "118.08187", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "07", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 4617251, + "elevation": null, + "dem": 12, + "timezone": "Asia/Shanghai", + "modification_date": "2021-12-13", + "country": "China", + "coordinates": { + "lon": 118.08187, + "lat": 24.47979 + } + }, + { + "geoname_id": "1255364", + "name": "Surat", + "ascii_name": "Surat", + "alternate_names": [ + "STV", + "Surat", + "Suratas", + "Surate", + "Surato", + "Sūrat", + "su la te", + "surata", + "surato", + "Сурат", + "सुरत", + "সুরাত", + "સુરત", + "スーラト", + "苏拉特" + ], + "latitude": "21.19594", + "longitude": "72.83023", + "feature_class": "P", + "feature_code": "PPL", + "country_code": "IN", + "country_code_2": null, + "admin1_code": "09", + "admin2_code": "492", + "admin3_code": "3937", + "admin4_code": null, + "population": 4591246, + "elevation": null, + "dem": 20, + "timezone": "Asia/Kolkata", + "modification_date": "2024-01-06", + "country": "India", + "coordinates": { + "lon": 72.83023, + "lat": 21.19594 + } + }, + { + "geoname_id": "1298824", + "name": "Yangon", + "ascii_name": "Yangon", + "alternate_names": [ + "Dagon", + "Gian'nkon", + "Jangon", + "Jangon khot", + "Jangona", + "Jangono", + "Jangun", + "Jangún", + "Ngiong-kong", + "Ngióng-kông", + "RGN", + "Rangon", + "Rangoon", + "Rangoun", + "Rangum", + "Rangun", + "Rangunas", + "Rangún", + "Rangūnas", + "Yangjgvangh", + "Yangon", + "Yangôn", + "Yanqon", + "iangoni", + "iyanguna", + "raguna", + "ranguna", + "rngwn", + "yang guang", + "yang-gon", + "yanghwn", + "yangkung", + "yangon", + "yanguna", + "yangwn", + "yankon", + "Ýangon", + "Γιανγκόν", + "Јангон", + "Рангун", + "Янгон", + "Янгон хот", + "Յանգոն", + "יאנגון", + "رنگون", + "يانغون", + "یانگون", + "यांगून", + "रङ्गुन", + "रङ्गून", + "ইয়াংগুন", + "ਰੰਗੂਨ", + "யங்கோன்", + "యాంగోన్", + "യംഗോൺ", + "ย่างกุ้ง", + "ཡང་ཀོང་།", + "ရန်ကုန်မြို့", + "იანგონი", + "ያንጎን", + "យ៉ាំងហ្គូន", + "ヤンゴン", + "仰光", + "양곤" + ], + "latitude": "16.80528", + "longitude": "96.15611", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "MM", + "country_code_2": null, + "admin1_code": "17", + "admin2_code": "MMR013D004", + "admin3_code": "MMR013044", + "admin4_code": null, + "population": 4477638, + "elevation": null, + "dem": 30, + "timezone": "Asia/Yangon", + "modification_date": "2023-08-06", + "country": "Myanmar", + "coordinates": { + "lon": 96.15611, + "lat": 16.80528 + } + }, + { + "geoname_id": "1138958", + "name": "Kabul", + "ascii_name": "Kabul", + "alternate_names": [ + "Cabool", + "Caboul", + "Cabul", + "Cabul - kabl", + "Cabul - کابل", + "Cabura", + "Cabúl", + "Caubul", + "KBL", + "Kabil", + "Kaboel", + "Kabol", + "Kaboul", + "Kabul", + "Kabula", + "Kabulas", + "Kabuli", + "Kabulo", + "Kabura", + "Kabúl", + "Kabûl", + "Kampoul", + "Kobul", + "Kubha", + "Kábul", + "Kâbil", + "Kābol", + "ka bu er", + "kabl", + "kabul", + "kabula", + "kabuli", + "kaburu", + "kabwl", + "kapul", + "ke bu er", + "khabul", + "Καμπούλ", + "Кабул", + "Кобул", + "Քաբուլ", + "קאבול", + "كابل", + "كابۇل", + "کابل", + "کابول", + "काबुल", + "কাবুল", + "ਕਾਬੁਲ", + "କାବୁଲ", + "காபூல்", + "ಕಾಬುಲ್", + "കാബൂൾ", + "කාබුල්", + "คาบูล", + "ཁ་པལ།", + "ཁ་པུལ།", + "ქაბული", + "ካቡል", + "ទីក្រុងកាបូល", + "カブール", + "カーブル", + "喀布尔", + "喀布爾", + "카불" + ], + "latitude": "34.52813", + "longitude": "69.17233", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "AF", + "country_code_2": null, + "admin1_code": "13", + "admin2_code": "101", + "admin3_code": null, + "admin4_code": null, + "population": 4434550, + "elevation": null, + "dem": 1798, + "timezone": "Asia/Kabul", + "modification_date": "2022-06-18", + "country": "Afghanistan", + "coordinates": { + "lon": 69.17233, + "lat": 34.52813 + } + }, + { + "geoname_id": "184745", + "name": "Nairobi", + "ascii_name": "Nairobi", + "alternate_names": [ + "NBO", + "Nai-lok-pi", + "Nai-lo̍k-pí", + "Nairoba", + "Nairobi", + "Nairobia", + "Nairobis", + "Nairoby", + "Nairobî", + "Nairompi", + "Nairovi", + "Nairòbi", + "Nairóbi", + "Nairóvi", + "Najrobi", + "Najrobi osh", + "Najrobio", + "Najrobo", + "Nayiiroobii", + "Nayrobi", + "Nayroobi", + "Nayropi", + "Nayrubi", + "Naíróbí", + "Naýrobi", + "Tó Sikʼaz", + "lai luo bi", + "na'irobi", + "nai luo bi", + "nailobi", + "nairobi", + "nairopi", + "nayreabi", + "nayrwby", + "nei luo bi", + "nirobi", + "nyrwby", + "nyyrwby", + "Ναϊρόμπι", + "Найроби", + "Найроби ош", + "Найробі", + "Најроби", + "Նայրոբի", + "Նայրոպի", + "נייראבי", + "ניירובי", + "نايروبى", + "نايروبي", + "نایروبی", + "نایرۆبی", + "نيروبي", + "نیروبی", + "नैरोबी", + "নাইরোবি", + "ਨੈਰੋਬੀ", + "નૈરોબી", + "நைரோபி", + "నైరోబి", + "ನೈರೋಬಿ", + "നയ്റോബി", + "නයිරෝබි", + "ไนโรบี", + "ནའི་རོ་བི།", + "နိုင်ရိုဘီမြို့", + "ნაირობი", + "ናይሮቢ", + "ᱱᱟᱭᱨᱳᱵᱤ", + "ⵏⴰⵢⵔⵓⴱⵉ", + "ナイロビ", + "內羅比", + "内罗毕", + "奈洛比", + "賴羅比", + "ꯅꯥꯏꯔꯣꯕꯤ", + "나이로비" + ], + "latitude": "-1.28333", + "longitude": "36.81667", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "KE", + "country_code_2": null, + "admin1_code": "05", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 4397073, + "elevation": null, + "dem": 1684, + "timezone": "Africa/Nairobi", + "modification_date": "2023-12-21", + "country": "Kenya", + "coordinates": { + "lon": 36.81667, + "lat": -1.28333 + } + }, + { + "geoname_id": "1790923", + "name": "Wuxi", + "ascii_name": "Wuxi", + "alternate_names": [ + "Bu-sek-chhi", + "Bû-sek-chhī", + "U-sek", + "Usi", + "Usis", + "Vo Tich", + "Vuhszi", + "Vusi", + "Vusio", + "Vuzsiz", + "Vuŝio", + "Vô Tích", + "WUX", + "Wu-hsi", + "Wu-hsi-hsien", + "Wu-hsi-shih", + "Wu-si", + "Wusih", + "Wusih-hsien", + "Wusihsien", + "Wuxi", + "Wuxi Shi", + "usi si", + "vukasi", + "wu xi", + "wu xi shi", + "wwshy", + "wwsy", + "xu si", + "Ù-sék", + "Вуси", + "Уси", + "Усі", + "Үshi", + "Үши", + "וושי", + "ووشي", + "ووشی", + "ۋۇشى شەھىرى", + "ਵੁਕਸੀ", + "อู๋ซี", + "ཝུའུ་ཞི།", + "无锡", + "无锡市", + "無錫", + "無錫市", + "우시 시" + ], + "latitude": "31.56887", + "longitude": "120.28857", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "04", + "admin2_code": "3202", + "admin3_code": null, + "admin4_code": null, + "population": 4396835, + "elevation": null, + "dem": 10, + "timezone": "Asia/Shanghai", + "modification_date": "2022-04-01", + "country": "China", + "coordinates": { + "lon": 120.28857, + "lat": 31.56887 + } + }, + { + "geoname_id": "360995", + "name": "Giza", + "ascii_name": "Giza", + "alternate_names": [ + "Al Jizah", + "Al Jīzah", + "El Gizeh", + "El-Giza", + "El-Gîza", + "Ghizeh", + "Giza", + "Gizah", + "Gize", + "Gizeh", + "Gizo", + "Gizé", + "Guiza", + "Gíza", + "Gîza", + "SPX", + "aljyzt", + "giza", + "jyzh", + "Гиза", + "الجيزة", + "جیزه", + "ギーザ" + ], + "latitude": "30.00944", + "longitude": "31.20861", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "EG", + "country_code_2": null, + "admin1_code": "08", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 4367343, + "elevation": null, + "dem": 19, + "timezone": "Africa/Cairo", + "modification_date": "2022-04-18", + "country": "Egypt", + "coordinates": { + "lon": 31.20861, + "lat": 30.00944 + } + }, + { + "geoname_id": "1805753", + "name": "Jinan", + "ascii_name": "Jinan", + "alternate_names": [ + "Ca-nang", + "Che-lam-chhi", + "Chi-nam-su", + "Chi-nan", + "Chi-nan-shih", + "Chi-nàm-sṳ", + "Chè-lâm-chhī", + "Cijnanz", + "Cinanum", + "Csinan", + "Czinan'", + "Cá̤-nàng", + "Dzinan", + "Dzinanas", + "Dzjinana", + "Dzjinaņa", + "Ginano", + "Jinan", + "Jinan Shi", + "Li-ch'eng", + "Li-ch’eng", + "Szinan", + "TNA", + "Te Nam", + "Ti-nan", + "Tsi-nan-fu", + "Tsinah", + "Tsinan", + "Tzinan", + "Tế Nam", + "Zhinan'", + "ci hnan", + "cinana", + "gynʼn", + "ji nan", + "ji nan shi", + "jinan si", + "jinana", + "jynan", + "Ĝinano", + "Ťi-nan", + "Τζινάν", + "Ђинан", + "Дзинан", + "Жинань", + "Цзинань", + "Цзінань", + "Ցզինան", + "גינאן", + "جىنەن شەھىرى", + "جينان", + "جینان", + "जीनान", + "ਚੀਨਾਨ", + "จี่หนาน", + "ཅི་ནན།", + "ကျီနန်မြို့", + "济南", + "济南市", + "済南", + "済南市", + "濟南", + "濟南市", + "지난 시" + ], + "latitude": "36.66833", + "longitude": "116.99722", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "25", + "admin2_code": "3701", + "admin3_code": null, + "admin4_code": null, + "population": 4335989, + "elevation": null, + "dem": 32, + "timezone": "Asia/Shanghai", + "modification_date": "2023-10-15", + "country": "China", + "coordinates": { + "lon": 116.99722, + "lat": 36.66833 + } + }, + { + "geoname_id": "1793511", + "name": "Taiyuan", + "ascii_name": "Taiyuan", + "alternate_names": [ + "Daiyienz", + "T'ai-yuan-shih", + "TYN", + "Tai-nguong", + "Taigiouan", + "Taijuan", + "Taijuana", + "Taijuaņa", + "Taiyuan", + "Taiyuan Shi", + "Taiyuan-fu", + "Taiyuenum", + "Taiyüan-fu", + "Tajjuan'", + "Tajjuean", + "Tajjuen", + "Tajjüan", + "Tajuanas", + "Tajuano", + "Tayyuan", + "Tchaj-juean", + "Tchaj-jüan", + "Thai Nguyen", + "Thai-goan-chhi", + "Thài-goân-chhī", + "Thái Nguyên", + "Tái-nguòng", + "T’ai-yüan-shih", + "Yang-ch'u", + "Yang-ch’ü", + "Yangku", + "Yangkü", + "Yanka", + "ta'iyu'ana", + "tai yuan", + "tai yuan shi", + "taiwian si", + "tay ywan", + "tayy ywan", + "tayywan", + "thayyu'ana", + "thi hywn", + "Ταϊγιουάν", + "Таијуан", + "Тайюань", + "Тайюен", + "טאי-יואן", + "تائی یوآن", + "تائی‌یوان", + "تاي يوان", + "تاییوان", + "تەييۈەن شەھىرى", + "ताइयुआन", + "थाय्युआन", + "ਤਾਈਯੂਆਨ", + "ไท่หยวน", + "太原", + "太原市", + "타이위안 시" + ], + "latitude": "37.86944", + "longitude": "112.56028", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "24", + "admin2_code": "1401", + "admin3_code": null, + "admin4_code": null, + "population": 4303673, + "elevation": null, + "dem": 795, + "timezone": "Asia/Shanghai", + "modification_date": "2021-12-13", + "country": "China", + "coordinates": { + "lon": 112.56028, + "lat": 37.86944 + } + }, + { + "geoname_id": "1784658", + "name": "Zhengzhou", + "ascii_name": "Zhengzhou", + "alternate_names": [ + "CGO", + "Cencou", + "Ceng-cou", + "Cengcou", + "Cheng", + "Cheng-chou", + "Cheng-chou-shih", + "Cheng-hsien", + "Chengchow", + "Chhiang-chu-su", + "Chhiáng-chû-sṳ", + "Chzhehnchzhou", + "Chzhenchzhou", + "Cjencjou", + "Csengcsou", + "Cwngcouh", + "Czengczou", + "Dang-ciu", + "Dzendzou", + "Dzengdzou", + "Dzhundzhou", + "Dâng-ciŭ", + "Džendžou", + "Džengdžou", + "Genggouo", + "Trinh Chau", + "Trịnh Châu", + "Tsentsoou", + "Tēⁿ-chiu-chhī", + "Zengzou", + "Zhengtsjou", + "Zhengzhou", + "Zhengzhou Shi", + "canaco", + "cancau", + "ceing cow", + "cencavu", + "jeongjeou si", + "jhengajho'u", + "tshnghtshw", + "zheng zhou", + "zheng zhou shi", + "zhngzhw", + "zhyngzhw", + "Çengçou", + "Çjençjou", + "Čeng-čou", + "Ĝengĝoŭo", + "Žengžou", + "Τσεντσόου", + "Џенгџоу", + "Джънджоу", + "Жөнжоу", + "Чженчжоу", + "Чжэнчжоу", + "Чжэнчжоў", + "تشنغتشو", + "جېڭجۇ شەھىرى", + "ژنگژو", + "ژینگژو", + "चंचौ", + "झेंगझोऊ", + "ਚੰਙਚੋ", + "செங்சவு", + "เจิ้งโจว", + "ကျင့်ကျိုးမြို့", + "郑州", + "郑州市", + "鄭州", + "鄭州市", + "정저우 시" + ], + "latitude": "34.75778", + "longitude": "113.64861", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "09", + "admin2_code": "4101", + "admin3_code": null, + "admin4_code": null, + "population": 4253913, + "elevation": null, + "dem": 104, + "timezone": "Asia/Shanghai", + "modification_date": "2021-09-20", + "country": "China", + "coordinates": { + "lon": 113.64861, + "lat": 34.75778 + } + }, + { + "geoname_id": "2460596", + "name": "Bamako", + "ascii_name": "Bamako", + "alternate_names": [ + "BKO", + "Bamaco - Bamako", + "Bamakas", + "Bamako", + "Bamaku", + "Bamakó", + "Bamakɔ", + "Bammaco", + "Bammako", + "Bàmakɔ", + "Mpamako", + "ba ma ke", + "bamako", + "bamakw", + "bmqw", + "Μπαμάκο", + "Бамако", + "Բամակո", + "במקו", + "باماكو", + "باماکو", + "ባማኮ", + "バマコ", + "巴馬科", + "바마코" + ], + "latitude": "12.65", + "longitude": "-8", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "ML", + "country_code_2": null, + "admin1_code": "01", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 4227569, + "elevation": null, + "dem": 338, + "timezone": "Africa/Bamako", + "modification_date": "2024-01-18", + "country": "Mali", + "coordinates": { + "lon": -8, + "lat": 12.65 + } + }, + { + "geoname_id": "108410", + "name": "Riyadh", + "ascii_name": "Riyadh", + "alternate_names": [ + "Al-Riad", + "Al-Riyad", + "Ar Riyadh", + "Ar Riyādh", + "Ar-Riaad", + "Ar-Rijad", + "Ar-Riyad", + "Ar-Riyod", + "Ar-Riyāḑ", + "Ehr-Rijad", + "Ehr-Ryjad", + "Er-Rijad", + "Er-riyad", + "RUH", + "Riaad", + "Riad", + "Riade", + "Riadi", + "Riado", + "Riadum", + "Riant", + "Rihad", + "Rijad", + "Rijada", + "Rijadas", + "Rijád", + "Rijāda", + "Riyad", + "Riyadh", + "Riyaḍ", + "Ríad", + "alryad", + "er-riadi", + "li ya de", + "liyadeu", + "raiyadha", + "ri'ada", + "ri'adha", + "riyad", + "riyada", + "riyadh", + "riyadha", + "riyado", + "riyat", + "ryad", + "ryyad", + "Ər-Riyad", + "Ριάντ", + "Ар-Рияд", + "Ер-Ріяд", + "Рияд", + "Ријад", + "Эр-Рияд", + "Эр-Рыяд", + "Ալ-Ռիադ", + "ריאד", + "الرياض", + "رىياد", + "رياض", + "ریاض", + "ڕیاز", + "रियाद", + "रियाध", + "রিয়াদ", + "ৰিয়াধ", + "ਰਿਆਧ", + "ରିଆଦ", + "ரியாத்", + "ರಿಯಾಧ್", + "റിയാദ്", + "ริยาด", + "རིས་ཡག", + "ერ-რიადი", + "ሪያድ", + "リヤド", + "利雅得", + "利雅德", + "리야드" + ], + "latitude": "24.68773", + "longitude": "46.72185", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "SA", + "country_code_2": null, + "admin1_code": "10", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 4205961, + "elevation": null, + "dem": 612, + "timezone": "Asia/Riyadh", + "modification_date": "2019-09-05", + "country": "Saudi Arabia", + "coordinates": { + "lon": 46.72185, + "lat": 24.68773 + } + }, + { + "geoname_id": "1795270", + "name": "Shijiazhuang", + "ascii_name": "Shijiazhuang", + "alternate_names": [ + "Chen-t'ou", + "Chen-t’ou", + "Chentow", + "Chioh-ka-chng-chhi", + "Chio̍h-ka-chng-chhī", + "S'-tia-cuang", + "SJW", + "Shiczjachzhuan", + "Shih-chia-chuang", + "Shih-chia-chuang-shih", + "Shih-chuang-shih", + "Shih-men", + "Shih-men-shih", + "Shihjiazhuang", + "Shihkiachwan", + "Shihkiachwang", + "Shijiazhuang", + "Shijiazhuang Shi", + "Shitszyachzhuan", + "Shizhjazhuan", + "Shudzjadzhuan", + "Sicsiacsuang", + "Sidziadzuangas", + "Sidzjadzuana", + "Sigjaguango", + "Sioh-ga-cong", + "Sitziazouank", + "Siŏh-gă-cŏng", + "Swzgyahcuengh", + "Thach Gia Trang", + "Thạch Gia Trang", + "chux ceiy cwng", + "sa-cyacvanga", + "seujajwang si", + "sh-gyʼgwwʼng", + "shi jia zhuang", + "shi jia zhuang shi", + "shidziajuani", + "shyjyatshwangh", + "shyjyazhwang", + "sijiyajhu'anga", + "sizi'azu'anga", + "Ŝiĝjaĝŭango", + "Šidziadžuangas", + "Šidzjadžuana", + "Š’-ťia-čuang", + "Σιτζιαζουάγκ", + "Шижяжуан", + "Шицзячжуан", + "Шиђаџуанг", + "Шъдзяджуан", + "Շիցզյաչժուան", + "שה-גיאגוואנג", + "شىجياجۇاڭ شەھىرى", + "شيجياتشوانغ", + "شیجیاژوانگ", + "शिजियाझुआंग", + "ष-च्याच्वांग", + "ਸ਼ੀਜ਼ੀਆਜ਼ੂਆਂਗ", + "ฉือเจียจวง", + "შიძიაჯუანი", + "石家庄", + "石家庄市", + "石家荘", + "石家荘市", + "石家莊", + "石家莊市", + "스자좡 시" + ], + "latitude": "38.04139", + "longitude": "114.47861", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "10", + "admin2_code": "1301", + "admin3_code": null, + "admin4_code": null, + "population": 3938513, + "elevation": null, + "dem": 77, + "timezone": "Asia/Shanghai", + "modification_date": "2021-10-04", + "country": "China", + "coordinates": { + "lon": 114.47861, + "lat": 38.04139 + } + }, + { + "geoname_id": "1205733", + "name": "Chattogram", + "ascii_name": "Chattogram", + "alternate_names": [ + "CGP", + "Cattagram", + "Caṭṭagrām", + "Cetagons", + "Chattogram", + "Chitagong", + "Chittagong", + "Chittagong Ghat", + "Chottogram", + "Chôţţogram", + "Citagaon", + "Citagong", + "Citagonga", + "Citagongas", + "Citagongo", + "Cittaqonq", + "Cottogram", + "Csittagong", + "Islamabad", + "Tsitankon'nk", + "catagamva", + "cattagrama", + "chitagong", + "chittagon", + "chytagwng", + "cirragean", + "cit ta kxng", + "citagonga", + "cittagang", + "cittagonga", + "cittakon", + "ji da gang", + "ji da gang shi", + "shytaghwngh", + "shytajwnj", + "zytgwng", + "Çitagong", + "Çittaqonq", + "Ćottogram", + "Ĉitagongo", + "Čattagrám", + "Čitagonga", + "Čitagongas", + "Čitágáon", + "Čėtagons", + "Τσιταγκόνγκ", + "Читагонг", + "Читтагонг", + "Читтаґонґ", + "טשיטאגאנג", + "ציטגונג", + "شيتاجونج", + "شيتاغونغ", + "چٹاگانگ", + "چیتاگونگ", + "चटगाँव", + "चट्टग्राम", + "चिटागोंग", + "চট্টগ্রাম", + "ચિત્તાગોંગ", + "சிட்டகொங்", + "చిట్టగాంగ్", + "ಚಿತ್ತಗಾಂಗ್", + "ചിറ്റഗോങ്", + "จิตตะกอง", + "စစ်တကောင်းမြို့", + "ჩიტაგონგი", + "チッタゴン", + "吉大港", + "吉大港市", + "치타공" + ], + "latitude": "22.3384", + "longitude": "91.83168", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "BD", + "country_code_2": null, + "admin1_code": "84", + "admin2_code": "2015", + "admin3_code": "201541", + "admin4_code": "20154122", + "population": 3920222, + "elevation": null, + "dem": 15, + "timezone": "Asia/Dhaka", + "modification_date": "2020-08-12", + "country": "Bangladesh", + "coordinates": { + "lon": 91.83168, + "lat": 22.3384 + } + }, + { + "geoname_id": "5368361", + "name": "Los Angeles", + "ascii_name": "Los Angeles", + "alternate_names": ["too many elements to preview"], + "latitude": "34.05223", + "longitude": "-118.24368", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "US", + "country_code_2": null, + "admin1_code": "CA", + "admin2_code": "037", + "admin3_code": null, + "admin4_code": null, + "population": 3898747, + "elevation": "89", + "dem": 96, + "timezone": "America/Los_Angeles", + "modification_date": "2023-12-06", + "country": "United States", + "coordinates": { + "lon": -118.24368, + "lat": 34.05223 + } + }, + { + "geoname_id": "344979", + "name": "Addis Ababa", + "ascii_name": "Addis Ababa", + "alternate_names": [ + "ADD", + "Addis Ababa", + "Addis Abaeba", + "Addis Abbaba", + "Addis Abeba", + "Addis Abäba", + "Addis-Abeba", + "Addis-Abebae", + "Addisz-Abeba", + "Adis Ababa", + "Adis Abeba", + "Adis-Abebo", + "Adisabeba", + "Adís Abeba", + "Antis Ampempa", + "Finfinne", + "Neanthopolis", + "a di si a bei ba", + "addisa ababa", + "adisa ababa", + "adiseuababa", + "adisuabeba", + "adys ababa", + "Ādīs Ābeba", + "Αντίς Αμπέμπα", + "Аддис-Абебæ", + "Аддис-Абеба", + "Адис Абеба", + "Ադիս Աբեբա", + "אדיס אבבה", + "آدیس آبابا", + "أديس أبابا", + "ئەددىس -ئەبىبە", + "अदिस अबाबा", + "আদ্দিস আবাবা", + "አዲስ አበባ", + "アディスアベバ", + "阿迪斯阿貝巴", + "아디스아바바" + ], + "latitude": "9.02497", + "longitude": "38.74689", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "ET", + "country_code_2": null, + "admin1_code": "44", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 3860000, + "elevation": null, + "dem": 2405, + "timezone": "Africa/Addis_Ababa", + "modification_date": "2023-11-30", + "country": "Ethiopia", + "coordinates": { + "lon": 38.74689, + "lat": 9.02497 + } + }, + { + "geoname_id": "1804651", + "name": "Kunming", + "ascii_name": "Kunming", + "alternate_names": [ + "Con Minh", + "Côn Minh", + "Gvwnhmingz", + "K'un-ming-hsien", + "K'un-ming-shih", + "KMG", + "Kchun-ming", + "Khun-beng-chhi", + "Khun-bêng-chhī", + "Kong-ming", + "Kounmink", + "Kuenming", + "Kun'min", + "Kun'min shaary", + "Kun'min'", + "Kunmin", + "Kunmina", + "Kunming", + "Kunming Shi", + "Kunmingas", + "Kunmingo", + "Kuņmina", + "Kŏng-mìng", + "Kүn'min", + "K’un-ming-hsien", + "K’un-ming-shih", + "Yun-nan", + "Yunnanfu", + "Yün-nan", + "Yünnanfu", + "kanamiga", + "khunh ming", + "kun ming", + "kun ming shi", + "kunaminga", + "kunming si", + "kunminga", + "kwnmng", + "kwnmyng", + "kwnmyngh", + "qwnmyng", + "Κουνμίγκ", + "Куенминг", + "Кунмин", + "Куньмин", + "Куньмин шаары", + "Куньминь", + "Куньмін", + "Күньмин", + "Կունմին", + "קונמינג", + "كونمينغ", + "كۈنمىڭ شەھىرى", + "کونمنگ", + "کونمینگ", + "کون‌مینگ", + "कुनमिंग", + "कुन्मिंग", + "ਕਨਮਿੰਗ", + "คุนหมิง", + "ကူမင်းမြို့", + "კუნმინი", + "昆明", + "昆明市", + "쿤밍 시" + ], + "latitude": "25.03889", + "longitude": "102.71833", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "29", + "admin2_code": "5301", + "admin3_code": null, + "admin4_code": null, + "population": 3855346, + "elevation": null, + "dem": 1895, + "timezone": "Asia/Shanghai", + "modification_date": "2021-09-20", + "country": "China", + "coordinates": { + "lon": 102.71833, + "lat": 25.03889 + } + }, + { + "geoname_id": "6986104", + "name": "Zhongshan", + "ascii_name": "Zhongshan", + "alternate_names": [ + "Chung-san-su", + "Chzhunshan'", + "Chûng-sân-sṳ", + "Cung-san", + "Dzungshan", + "Jongshen shehiri", + "Trung Son", + "Trung Sơn", + "Xiangshan", + "ZGN", + "Zhongshan", + "Zhongshan Shi", + "jungsan si", + "zhong shan", + "zhong shan shi", + "Čung-šan", + "Џунгшан", + "Чжуншань", + "中山", + "中山市", + "중산 시" + ], + "latitude": "22.52306", + "longitude": "113.37912", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "30", + "admin2_code": "4420", + "admin3_code": null, + "admin4_code": null, + "population": 3841873, + "elevation": null, + "dem": 9, + "timezone": "Asia/Shanghai", + "modification_date": "2022-11-16", + "country": "China", + "coordinates": { + "lon": 113.37912, + "lat": 22.52306 + } + }, + { + "geoname_id": "1799869", + "name": "Nanning", + "ascii_name": "Nanning", + "alternate_names": [ + "Lam-leng-chhi", + "Lâm-lêng-chhī", + "NNG", + "Nam Ninh", + "Nam-nen-su", + "Namzningz", + "Nan'nin", + "Nan-ning", + "Nan-ning-shih", + "Nang-ning", + "Nanin", + "Naning", + "Naningas", + "Naningo", + "Nannin", + "Nannina", + "Nanning", + "Nanning Shi", + "Naņnina", + "Nàm-nèn-sṳ", + "Nàng-nìng", + "Yung-ning", + "Yung-ning-hsien", + "hnan hning", + "nan ning", + "nan ning shi", + "nananinga", + "nanning si", + "nannyng", + "nanyng", + "nanyngh", + "Нанин", + "Нанинг", + "Наньнин", + "Наньнін", + "ناننینگ", + "نانينغ", + "نانینگ", + "نان‌نینگ", + "نەننىڭ شەھىرى", + "नाननींग", + "หนานหนิง", + "ནན་ཉིང་གྲོང་ཁྱེར།", + "南宁", + "南宁市", + "南寧", + "南寧市", + "난닝 시" + ], + "latitude": "22.81667", + "longitude": "108.31667", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "16", + "admin2_code": "4501", + "admin3_code": null, + "admin4_code": null, + "population": 3839800, + "elevation": null, + "dem": 91, + "timezone": "Asia/Shanghai", + "modification_date": "2023-12-29", + "country": "China", + "coordinates": { + "lon": 108.31667, + "lat": 22.81667 + } + }, + { + "geoname_id": "1795940", + "name": "Shantou", + "ascii_name": "Shantou", + "alternate_names": [ + "SWA", + "San GJau", + "San-tchou", + "San-theu-su", + "Sang-tau", + "Santou", + "Santouo", + "Shan'tou", + "Shan-t'ou-shih", + "Shan-t’ou-shih", + "Shantou", + "Shantow", + "Sjantou", + "Swatow", + "Sán Đầu", + "Sáng-tàu", + "Sân-thèu-sṳ", + "Sòaⁿ-thâu-chhī", + "santeou si", + "saw thea", + "shan tou", + "shan tou shi", + "shantw", + "shantww", + "Ŝantoŭo", + "Šan-tchou", + "Šantou", + "Шантоу", + "Шаньтоу", + "שנטאו", + "شانتو", + "شانتوؤ", + "شەنتۇ شەھىرى", + "ซัวเถา", + "汕头", + "汕头市", + "汕頭", + "汕頭市", + "산터우 시" + ], + "latitude": "23.35489", + "longitude": "116.67876", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "30", + "admin2_code": "4405", + "admin3_code": null, + "admin4_code": null, + "population": 3838900, + "elevation": null, + "dem": 3, + "timezone": "Asia/Shanghai", + "modification_date": "2023-05-31", + "country": "China", + "coordinates": { + "lon": 116.67876, + "lat": 23.35489 + } + }, + { + "geoname_id": "1848354", + "name": "Yokohama", + "ascii_name": "Yokohama", + "alternate_names": [ + "Iokogama", + "Jokohama", + "Jokohamo", + "Jokokhama", + "YOK", + "Yokohama", + "Yokohama-shi", + "Yokohamashi", + "heng bang", + "heng bang shi", + "heng bin shi", + "yoa koa ha ma", + "yokohama", + "yokohama si", + "yokohamashi", + "ywkwhama", + "ywqwhmh", + "Јокохама", + "Иокогама", + "יוקוהמה", + "يوكوهاما", + "โยะโกะฮะมะ", + "იოკოჰამა", + "よこはま", + "よこはまし", + "ヨコハマ", + "ヨコハマシ", + "横浜", + "横浜市", + "横滨市", + "요코하마 시" + ], + "latitude": "35.43333", + "longitude": "139.65", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "JP", + "country_code_2": null, + "admin1_code": "19", + "admin2_code": "1848350", + "admin3_code": null, + "admin4_code": null, + "population": 3761630, + "elevation": null, + "dem": 21, + "timezone": "Asia/Tokyo", + "modification_date": "2022-08-15", + "country": "Japan", + "coordinates": { + "lon": 139.65, + "lat": 35.43333 + } + }, + { + "geoname_id": "1810821", + "name": "Fuzhou", + "ascii_name": "Fuzhou", + "alternate_names": [ + "FOC", + "Focheum", + "Foochow", + "Foutsoou", + "Fouzhou", + "Fu-chou", + "Fu-chou-shih", + "Fu-cou", + "Fu-čou", + "Fuchau", + "Fucheu", + "Fuchzhou", + "Fucsou", + "Fudzhou", + "Fudzou", + "Fudžou", + "Fugouo", + "Fuk-chu-su", + "Fuk-chû-sṳ", + "Futsjou", + "Fuzcouh", + "Fuzhou", + "Fuĝoŭo", + "Hok-chiu-chhi", + "Hok-chiu-chhī", + "Hok-ciu", + "Hók-ciŭ", + "Lin-sen", + "Lin-sen-hsien", + "Min Hsien", + "Min-hou", + "Min-hou-hsien", + "Min-hou-hsien-ch'eng", + "Min-hou-hsien-ch’eng", + "Minhow", + "Minhow-hsien", + "Phuc Chau", + "Phúc Châu", + "fu zhou", + "fu zhou shi", + "fuco", + "fujho'u", + "fwjw", + "fwzhw", + "phucau", + "pujeou si", + "Φουτσόου", + "Фуджоу", + "Фучжоу", + "Фуџоу", + "فوجو", + "فوزهو", + "فوژو", + "فۇجو شەھىرى", + "फ़ूझोउ", + "फूचौ", + "ਫ਼ੂਚੋ", + "ဖူကျိုးမြို့", + "福州", + "福州市", + "푸저우 시" + ], + "latitude": "26.06139", + "longitude": "119.30611", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "07", + "admin2_code": "3501", + "admin3_code": null, + "admin4_code": null, + "population": 3740000, + "elevation": null, + "dem": 14, + "timezone": "Asia/Shanghai", + "modification_date": "2021-12-13", + "country": "China", + "coordinates": { + "lon": 119.30611, + "lat": 26.06139 + } + }, + { + "geoname_id": "1799397", + "name": "Ningbo", + "ascii_name": "Ningbo", + "alternate_names": [ + "Chiang-pei-an", + "Leng-pho-chhi", + "Lêng-pho-chhī", + "NGB", + "Nen-po-su", + "Ninbo", + "Ning-hsien", + "Ning-po", + "Ning-po-shih", + "Ningbo", + "Ningbo Shi", + "Ningbó", + "Ningpo", + "Ninh Ba", + "Nèn-pô-sṳ", + "Nìng-pŏ̤", + "Yin-hsien", + "hning paw", + "nangbw", + "ning bo", + "ning bo shi", + "ningbo si", + "nngbw", + "nynghbw", + "Нинбо", + "Нингбо", + "Нінбо", + "نانگبو", + "ننگبو", + "نىڭبو شەھىرى", + "نينغبو", + "หนิงปัว", + "宁波", + "宁波市", + "寧波", + "寧波市", + "닝보 시" + ], + "latitude": "29.87819", + "longitude": "121.54945", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "02", + "admin2_code": "3302", + "admin3_code": null, + "admin4_code": null, + "population": 3731203, + "elevation": null, + "dem": 15, + "timezone": "Asia/Shanghai", + "modification_date": "2021-12-13", + "country": "China", + "coordinates": { + "lon": 121.54945, + "lat": 29.87819 + } + }, + { + "geoname_id": "1838524", + "name": "Busan", + "ascii_name": "Busan", + "alternate_names": [ + "Bousan", + "Busan", + "Busan-si", + "Busán", + "Fousan", + "Fusan", + "Fuzan", + "PUS", + "Phu San", + "Phủ San", + "Pusan", + "Pusana", + "Pusano", + "Tsau-liang-hai", + "busan", + "busangwang-yeogsi", + "busansi", + "fu shan", + "fu shan guang yu shi", + "fu shan shi", + "pu san", + "Μπούσαν", + "Пусан", + "ปูซาน", + "釜山", + "釜山市", + "釜山广域市", + "釜山広域市", + "부산", + "부산광역시", + "부산시" + ], + "latitude": "35.10168", + "longitude": "129.03004", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "KR", + "country_code_2": null, + "admin1_code": "10", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 3678555, + "elevation": null, + "dem": 15, + "timezone": "Asia/Seoul", + "modification_date": "2023-06-30", + "country": "South Korea", + "coordinates": { + "lon": 129.03004, + "lat": 35.10168 + } + }, + { + "geoname_id": "2553604", + "name": "Casablanca", + "ascii_name": "Casablanca", + "alternate_names": [ + "Ad Dar al Bayda", + "Ad Dar al Bayda'", + "Ad Dār al Bayḑā’", + "Anafi", + "Anfa", + "CMN", + "Casa Branca", + "Casablanca", + "Casabranca", + "Dar-el-Beida", + "Dar-uel-Beyda", + "Darul Baidha", + "Dâr-ül-Beydâ", + "Ed Dar el Baida", + "Ed Dār el Baida", + "Kasablank", + "Kasablanka", + "Kasablankae", + "Kazablanka", + "Kazablanko", + "Kazamplan'ka", + "Tigemmi Tamellalt", + "White House", + "ad-Dar al-Baydaʼ", + "ad-Dar al-baydaʾ", + "ad-Dār al-Bayḍāʼ", + "ad-Dār al-bayḍāʾ", + "aldar albydaʾ", + "anfa", + "dar albydaʾ", + "daralbyda", + "ka sa bu lan ka", + "ka sab l xng ka", + "kacapilanka", + "kasabalanka", + "kasabeullangka", + "kasablanka", + "kasaburanka", + "kazablanka", + "qzblnqh", + "Καζαμπλάνκα", + "Казабланка", + "Касабланкæ", + "Касабланка", + "Կասաբլանկա", + "קזבלנקה", + "أنفا", + "الدار البيضاء", + "دار البیضاء", + "دارالبیضا", + "كازابلانكا", + "کازابلانکا", + "کاسابلانکا", + "कासाब्लांका", + "কাসাব্লাংকা", + "ਕਾਸਾਬਲਾਂਕਾ", + "காசாபிளாங்கா", + "కాసాబ్లాంకా", + "ಕಾಸಾಬ್ಲಾಂಕಾ", + "കാസബ്ലങ്ക", + "กาซาบล็องกา", + "ກາຊາບັງກາ", + "ကာဆာဘလန်ကာမြို့", + "კასაბლანკა", + "ⴰⵏⴼⴰ", + "カサブランカ", + "卡萨布兰卡", + "카사블랑카" + ], + "latitude": "33.58831", + "longitude": "-7.61138", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "MA", + "country_code_2": null, + "admin1_code": "06", + "admin2_code": "141", + "admin3_code": null, + "admin4_code": null, + "population": 3665954, + "elevation": null, + "dem": 27, + "timezone": "Africa/Casablanca", + "modification_date": "2024-01-18", + "country": "Morocco", + "coordinates": { + "lon": -7.61138, + "lat": 33.58831 + } + }, + { + "geoname_id": "2339354", + "name": "Ibadan", + "ascii_name": "Ibadan", + "alternate_names": [ + "IBA", + "Ibadan", + "Ibadan shaary", + "Ibadana", + "Ibadanas", + "Ibadano", + "Ibadán", + "abadan", + "aybadan", + "ibadan", + "ibadana", + "yi ba dan", + "Ìbàdàn", + "İbadan", + "Ібадан", + "Ибадан", + "Ибадан шаары", + "איבדאן", + "إبادان", + "إيبادان", + "ابادان", + "ਇਬਾਦਾਨ", + "イバダン", + "伊巴丹", + "이바단" + ], + "latitude": "7.37756", + "longitude": "3.90591", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "NG", + "country_code_2": null, + "admin1_code": "32", + "admin2_code": "31008", + "admin3_code": null, + "admin4_code": null, + "population": 3649000, + "elevation": null, + "dem": 181, + "timezone": "Africa/Lagos", + "modification_date": "2022-08-22", + "country": "Nigeria", + "coordinates": { + "lon": 3.90591, + "lat": 7.37756 + } + }, + { + "geoname_id": "1798425", + "name": "Puyang", + "ascii_name": "Puyang", + "alternate_names": [ + "P'u-chiang", + "P'u-chiang-hsien-ch'eng", + "P'u-yang-chen", + "Pujiang", + "Pukiang", + "Pukianghsien", + "Puyang", + "Puyang Jiedao", + "P’u-chiang", + "P’u-chiang-hsien-ch’eng", + "P’u-yang-chen", + "pu yang", + "pu yang jie dao", + "浦阳", + "浦阳街道" + ], + "latitude": "29.45679", + "longitude": "119.88872", + "feature_class": "P", + "feature_code": "PPLA3", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "02", + "admin2_code": "3307", + "admin3_code": null, + "admin4_code": null, + "population": 3590000, + "elevation": null, + "dem": 76, + "timezone": "Asia/Shanghai", + "modification_date": "2021-09-19", + "country": "China", + "coordinates": { + "lon": 119.88872, + "lat": 29.45679 + } + }, + { + "geoname_id": "323786", + "name": "Ankara", + "ascii_name": "Ankara", + "alternate_names": [ + "ANK", + "Anakara", + "Ancara", + "Ancyra", + "Ang-ka-la", + "Angkara", + "Angora", + "Anguriyah", + "Ankar", + "Ankara", + "Ankara khot", + "Ankaro", + "Ankuara", + "Ankura", + "Ankyra", + "Ankyra (Ankyra)", + "Anqara", + "Enguri", + "Engüri", + "Enqere", + "akara", + "an ka la", + "angkala", + "ankara", + "anqrh", + "anqrt", + "xangkara", + "Ăng-kā-lá", + "Άγκυρα (Ankyra)", + "Анкара", + "Анкара хот", + "Анкъара", + "Әнкара", + "Անկարա", + "אנקארא", + "אנקרה", + "آنکارا", + "أنقرة", + "ئەنقەرە", + "انقره", + "انقرہ", + "انکرہ", + "ܐܢܩܪܐ", + "अंकारा", + "আঙ্কারা", + "ਅੰਕਾਰਾ", + "ଆଙ୍କାରା", + "அங்காரா", + "అంకారా", + "ಅಂಕಾರಾ", + "അങ്കാറ", + "อังการา", + "ཨན་ཁ་ར།", + "ანკარა", + "አንካራ", + "アンカラ", + "安卡拉", + "앙카라" + ], + "latitude": "39.91987", + "longitude": "32.85427", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "TR", + "country_code_2": null, + "admin1_code": "68", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 3517182, + "elevation": "850", + "dem": 874, + "timezone": "Europe/Istanbul", + "modification_date": "2021-07-25", + "country": "Turkey", + "coordinates": { + "lon": 32.85427, + "lat": 39.91987 + } + }, + { + "geoname_id": "292223", + "name": "Dubai", + "ascii_name": "Dubai", + "alternate_names": [ + "DXB", + "Dabei", + "Dibai", + "Dibay", + "Doubayi", + "Dubae", + "Dubai", + "Dubai City", + "Dubai emiraat", + "Dubaija", + "Dubaj", + "Dubajo", + "Dubajus", + "Dubay", + "Dubayy", + "Dubaï", + "Dubái", + "Dúbæ", + "Ehmirat Dubaj", + "Fort Dabei", + "Ntoumpai", + "dby", + "dbyy", + "di bai", + "dobai", + "du bai", + "duba'i", + "dubai", + "dubay", + "dubi", + "dwbyy", + "tupai", + "Ντουμπάι", + "Дубаи", + "Дубай", + "Эмірат Дубай", + "Դուբայի Էմիրություն", + "דובאי", + "דוביי", + "دبئی", + "دبى", + "دبي", + "دبی", + "دوبەی", + "دۇبائى", + "दुबई", + "দুবাই", + "துபை", + "దుబాయ్", + "ದುಬೈ", + "ദുബായ്", + "ดูไบ", + "დუბაი", + "ドバイ", + "杜拜", + "迪拜", + "두바이" + ], + "latitude": "25.07725", + "longitude": "55.30927", + "feature_class": "P", + "feature_code": "PPLA", + "country_code": "AE", + "country_code_2": null, + "admin1_code": "03", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 3478300, + "elevation": null, + "dem": 24, + "timezone": "Asia/Dubai", + "modification_date": "2023-12-06", + "country": "United Arab Emirates", + "coordinates": { + "lon": 55.30927, + "lat": 25.07725 + } + }, + { + "geoname_id": "1794903", + "name": "Shiyan", + "ascii_name": "Shiyan", + "alternate_names": [ + "Chap-ian-chhi", + "Cha̍p-ián-chhī", + "S-jen", + "Sek-ieng", + "Shih-yen", + "Shih-yen-chen", + "Shih-yen-shih", + "Shijan'", + "Shijen", + "Shiyan", + "Shiyan Shi", + "Shujen", + "Sĕk-iēng", + "Thap Yen", + "Thập Yển", + "WDS", + "seuyen si", + "shi yan", + "shi yan shi", + "shyyan", + "Š-jen", + "Шиянь", + "Шијен", + "Шъйен", + "شییان", + "十堰", + "十堰市", + "스옌 시" + ], + "latitude": "32.6475", + "longitude": "110.77806", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "12", + "admin2_code": "4203", + "admin3_code": null, + "admin4_code": null, + "population": 3460000, + "elevation": null, + "dem": 247, + "timezone": "Asia/Shanghai", + "modification_date": "2018-12-06", + "country": "China", + "coordinates": { + "lon": 110.77806, + "lat": 32.6475 + } + }, + { + "geoname_id": "2950159", + "name": "Berlin", + "ascii_name": "Berlin", + "alternate_names": [ + "BER", + "Beirlin", + "Beirlín", + "Belin", + "Berleno", + "Berlien", + "Berliin", + "Berliini", + "Berlijn", + "Berlim", + "Berlin", + "Berline", + "Berlini", + "Berlino", + "Berlyn", + "Berlynas", + "Berlëno", + "Berlín", + "Berlîn", + "Berlīne", + "Berolino", + "Berolinum", + "Birlinu", + "Bèrlîn", + "Estat de Berlin", + "Estat de Berlín", + "bai lin", + "barlina", + "beleullin", + "berlini", + "berurin", + "bexrlin", + "brlyn", + "perlin", + "Βερολίνο", + "Берлин", + "Берлін", + "Бэрлін", + "Բերլին", + "בערלין", + "ברלין", + "برلين", + "برلین", + "بېرلىن", + "ܒܪܠܝܢ", + "बर्लिन", + "বার্লিন", + "பெர்லின்", + "เบอร์ลิน", + "ბერლინი", + "ベルリン", + "柏林", + "베를린" + ], + "latitude": "52.52437", + "longitude": "13.41053", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "DE", + "country_code_2": null, + "admin1_code": "16", + "admin2_code": "00", + "admin3_code": "11000", + "admin4_code": "11000000", + "population": 3426354, + "elevation": "74", + "dem": 43, + "timezone": "Europe/Berlin", + "modification_date": "2022-03-09", + "country": "Germany", + "coordinates": { + "lon": 13.41053, + "lat": 52.52437 + } + }, + { + "geoname_id": "1793346", + "name": "Tangshan", + "ascii_name": "Tangshan", + "alternate_names": [ + "GJuong Son", + "T'ang-shan-chen", + "T'ang-shan-shih", + "TVS", + "Tangsanas", + "Tangsano", + "Tangshan", + "Tangŝano", + "Tangšanas", + "Tanshan", + "Tanshan'", + "Tchang-san", + "Tchang-šan", + "Tongshan", + "T’ang-shan-chen", + "T’ang-shan-shih", + "tang shan", + "tang shan shi", + "tangasana", + "tangsan si", + "tangsana", + "tangshan", + "Đường Sơn", + "Таншан", + "Таншань", + "تانگشان", + "تاڭشەن شەھىرى", + "तांग्शान", + "ਤਾਂਗਸ਼ਾਨ", + "ടാങ്ഷാൻ", + "唐山", + "唐山市", + "탕산 시" + ], + "latitude": "39.63333", + "longitude": "118.18333", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "10", + "admin2_code": "1302", + "admin3_code": null, + "admin4_code": null, + "population": 3372102, + "elevation": null, + "dem": 36, + "timezone": "Asia/Shanghai", + "modification_date": "2021-10-21", + "country": "China", + "coordinates": { + "lon": 118.18333, + "lat": 39.63333 + } + }, + { + "geoname_id": "1815456", + "name": "Changzhou", + "ascii_name": "Changzhou", + "alternate_names": [ + "CZX", + "Cangdzou", + "Canggouo", + "Cchang-cou", + "Ch'ang-chou", + "Ch'ang-chou-shih", + "Chanchzhou", + "Chandzhou", + "Chang-chow-fu", + "Changchow", + "Changdzou", + "Changtsjou", + "Changzhou", + "Chanzhou khot", + "Ch’ang-chou", + "Ch’ang-chou-shih", + "Csangcsou", + "Siong-chiu-chhi", + "Siong-ciu", + "Siòng-ciŭ", + "Siông-chiu-chhī", + "Thuong Chau", + "Thường Châu", + "Wu-chin", + "Wu-chin-hsien", + "Wujin", + "Wutsin", + "chang zhou", + "chang zhou shi", + "changjeou si", + "changzhw", + "Ĉangĝoŭo", + "Čangdžou", + "Čchang-čou", + "Чангџоу", + "Чанджоу", + "Чанжоу хот", + "Чанчжоу", + "چانگژو", + "چاڭجو شەھىر", + "常州", + "常州市", + "창저우 시" + ], + "latitude": "31.77359", + "longitude": "119.95401", + "feature_class": "P", + "feature_code": "PPLA2", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "04", + "admin2_code": "3204", + "admin3_code": null, + "admin4_code": null, + "population": 3290918, + "elevation": null, + "dem": 9, + "timezone": "Asia/Shanghai", + "modification_date": "2021-10-07", + "country": "China", + "coordinates": { + "lon": 119.95401, + "lat": 31.77359 + } + }, + { + "geoname_id": "3117735", + "name": "Madrid", + "ascii_name": "Madrid", + "alternate_names": [ + "La Villa y Corte de Madrid", + "Los Madriles", + "Lungsod ng Madrid", + "MAD", + "Ma-daik-li", + "Ma-tet-li", + "Madrid", + "Madrid osh", + "Madridas", + "Madride", + "Madridi", + "Madrido", + "Madrids", + "Madril", + "Madrit", + "Madrite", + "Madryd", + "Madryt", + "Madríd", + "Madrîd", + "Magerit", + "Maidrid", + "Mairil", + "Makelika", + "Matritum", + "Mâ-tet-lî", + "Mā-dáik-lī", + "ma de li", + "madarida", + "madeulideu", + "madorido", + "madorido shi", + "madri", + "madrid", + "madrida", + "madridi", + "madryd", + "matrit", + "mdryd", + "myadrida", + "mydrd", + "Μαδρίτη", + "Мaдрид", + "Мадрид", + "Мадрид ош", + "Мадрыд", + "Мадрід", + "Մադրիդ", + "מאדריד", + "מדריד", + "مادرىد", + "مادرید", + "مدريد", + "میدرد", + "مەدرید", + "ܡܕܪܝܕ", + "मद्रिद", + "मद्रिद्", + "माद्रिद", + "माद्री", + "म्याड्रिड", + "মাদ্রিদ", + "ਮਾਦਰੀਦ", + "ମାଡ୍ରିଦ", + "மத்ரித்", + "ಮಡ್ರಿಡ್", + "മാഡ്രിഡ്", + "มาดริด", + "མ་ད་རིད།", + "မဒရစ်မြို့", + "მადრიდი", + "ማድሪድ", + "マドリード", + "マドリード市", + "馬德里", + "马德里", + "마드리드" + ], + "latitude": "40.4165", + "longitude": "-3.70256", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "ES", + "country_code_2": null, + "admin1_code": "29", + "admin2_code": "M", + "admin3_code": "28079", + "admin4_code": null, + "population": 3255944, + "elevation": null, + "dem": 665, + "timezone": "Europe/Madrid", + "modification_date": "2022-03-09", + "country": "Spain", + "coordinates": { + "lon": -3.70256, + "lat": 40.4165 + } + }, + { + "geoname_id": "1871859", + "name": "Pyongyang", + "ascii_name": "Pyongyang", + "alternate_names": [ + "Binh Nhuong", + "Bình Nhưỡng", + "FNJ", + "Heijo", + "Heijo-fu", + "Heijō", + "Heijō-fu", + "Heizyo", + "Heizyo Hu", + "Heizyō", + "Heizyō Hu", + "Hpyeng-yang", + "P'yongyang", + "P'yongyang-si", + "P'yŏngyang", + "P'yŏngyang-si", + "P-hjong-jang", + "P-hjöng-jang", + "Pchenjanas", + "Pchjongjang", + "Phenian", + "Phenjan", + "Phenjana", + "Phyeng-yang", + "Phyong-yang", + "Pienyang", + "Pingyang", + "Pion'gian'nk", + "Pion'nkgian'nk", + "Piongiang", + "Pionguiangue", + "Pionyang", + "Pjoengjang", + "Pjongian", + "Pjongjang", + "Pjongjango", + "Pjöngjang", + "Pkhen'jan", + "Pkhenjan", + "Pxenyan", + "Pyeongyang", + "Pyoengyang", + "Pyongyang", + "Pyongyang-si", + "Pyöngyang", + "bywnghyangh", + "peiyngyang", + "pi'ongayanga", + "ping rang", + "ping rang shi", + "piyam iyam", + "piyonyan", + "pkheniani", + "pyamgayanga", + "pyang yang", + "pyeong-yang", + "pyeong-yangjighalsi", + "pyeong-yangsi", + "pyon'gyang", + "pyongayanga", + "pywng yang", + "pywngyang", + "Πιονγιάνγκ", + "Πιονγκγιάνγκ", + "Пхеньян", + "Пхенян", + "Пјонгјанг", + "Փխենյան", + "פיאנגיאנג", + "פיונגיאנג", + "بيونغيانغ", + "پيونګيانګ", + "پيونگ يانگ", + "پيوڭياڭ", + "پیانگ یانگ", + "پیونگ‌یانگ", + "پیۆنگیانگ", + "प्याँगयांग", + "प्योंगयांग", + "পিয়ং ইয়াং", + "ਪਿਓਂਗਯਾਂਗ", + "பியொங்யாங்", + "ಪ್ಯೊನ್ಗ್ಯಾಂಗ್", + "เปียงยาง", + "ཕོང་ཡང་།", + "ფხენიანი", + "ፕዮንግያንግ", + "平壌", + "平壤", + "平壤市", + "평양", + "평양시", + "평양직할시" + ], + "latitude": "39.03385", + "longitude": "125.75432", + "feature_class": "P", + "feature_code": "PPLC", + "country_code": "KP", + "country_code_2": null, + "admin1_code": "12", + "admin2_code": null, + "admin3_code": null, + "admin4_code": null, + "population": 3222000, + "elevation": null, + "dem": 43, + "timezone": "Asia/Pyongyang", + "modification_date": "2019-09-05", + "country": "North Korea", + "coordinates": { + "lon": 125.75432, + "lat": 39.03385 + } + }, + { + "geoname_id": "1785286", + "name": "Zibo", + "ascii_name": "Zibo", + "alternate_names": [ + "C-po", + "Chang-chou-shih", + "Chang-tien", + "Chang-tien-shih", + "Chu-phok-chhi", + "Chu-phok-chhī", + "Cu-bauk", + "Czybo", + "Cṳ̆-báuk", + "Dzubo", + "Truy Bac", + "Truy Bác", + "Tzu-po", + "Zhangdian", + "Zibo", + "jjeubo si", + "shi bo shi", + "zaybw", + "zi bo", + "zi bo shi", + "zibo", + "zybw", + "Дзъбо", + "Цзыбо", + "زایبو", + "زىبو شەھىرى", + "زيبو", + "زیبو", + "ਜ਼ੀਬੋ", + "シ博市", + "淄博", + "淄博市", + "쯔보 시" + ], + "latitude": "36.79056", + "longitude": "118.06333", + "feature_class": "P", + "feature_code": "PPL", + "country_code": "CN", + "country_code_2": null, + "admin1_code": "25", + "admin2_code": "3703", + "admin3_code": null, + "admin4_code": null, + "population": 3129228, + "elevation": null, + "dem": 51, + "timezone": "Asia/Shanghai", + "modification_date": "2021-09-20", + "country": "China", + "coordinates": { + "lon": 118.06333, + "lat": 36.79056 + } + } + ] +} diff --git a/src/index.css b/src/index.css index 7496072..6c00e0e 100644 --- a/src/index.css +++ b/src/index.css @@ -6,7 +6,6 @@ color-scheme: light dark; color: rgba(255, 255, 255, 0.87); background-color: #242424; - /* touch-action: manipulation; */ font-synthesis: none; text-rendering: optimizeLegibility; diff --git a/src/styles/mixins.scss b/src/styles/mixins.scss index fa06e4c..f5442fa 100644 --- a/src/styles/mixins.scss +++ b/src/styles/mixins.scss @@ -23,7 +23,6 @@ @mixin section { align-items: center; display: flex; - flex-direction: column; justify-content: center; min-height: 100vh; max-height: none; @@ -34,31 +33,27 @@ &.about { background-color: $color-about; } - &.resume { background-color: $color-resume; } - + &.glob3d { + background-color: $color-glob3d; + } &.tasktimer { background-color: $color-tasktimer; } - &.hydrapp { background-color: $color-hydrapp; } - &.portfolio { background-color: $color-portfolio; } - &.archviz { background-color: $color-archviz; } - &.quotes { background-color: $color-quotes; } - &.contact { background-color: $color-contact; } @@ -66,7 +61,8 @@ @media only screen and (min-width: $media-m) { align-items: center; justify-content: center; - padding: 0 50px 0 $menu-width-m + 100px; + padding: 0; + padding-left: $menu-width-m + 100px; &.about { background-color: $color-about; @@ -86,6 +82,15 @@ $color-resume-dark 100% ); } + &.glob3d { + background-color: $color-glob3d; + background: radial-gradient( + circle, + $color-glob3d 0%, + $color-glob3d 70%, + $color-glob3d-dark 100% + ); + } &.tasktimer { background-color: $color-tasktimer; background: radial-gradient( @@ -144,7 +149,7 @@ @media only screen and (min-width: $media-l) { justify-content: center; - padding: 0 80px 0 $menu-width-l + 100px; + padding-left: $menu-width-l + 100px; } } @@ -175,19 +180,7 @@ 'title' 'info' 'accordions'; - } - - &.tasktimer, - &.portfolio, - &.hydrapp, - &.archviz, - &.quotes { - grid-template-areas: - 'description' - 'tags' - 'icons' - 'features' - 'demo'; + padding: $menu-item-height $offset-right-s $menu-item-height $offset-left-s; } &.contact { @@ -236,21 +229,6 @@ grid-template-columns: 1fr 2fr; } - &.tasktimer, - &.portfolio, - &.hydrapp, - &.archviz, - &.quotes { - align-items: start; - grid-template-areas: - 'description demo' - 'tags demo' - 'icons demo' - 'features demo'; - grid-template-columns: 2fr 3fr; - grid-template-rows: repeat(3, auto) 1fr; - } - &.contact { align-content: stretch; align-items: center; @@ -286,30 +264,6 @@ border-color: $color-resume-diff; color: $color-resume-light; } - &.tasktimer { - border-color: $color-tasktimer-diff; - color: $color-tasktimer-light; - } - &.hydrapp { - border-color: $color-hydrapp-diff; - color: $color-hydrapp-light; - } - &.portfolio { - border-color: $color-portfolio-diff; - color: $color-portfolio-light; - } - &.archviz { - border-color: $color-archviz-diff; - color: $color-archviz-light; - } - &.quotes { - border-color: $color-quotes-diff; - color: $color-quotes-light; - } - &.other { - border-color: $color-other-diff; - color: $color-other-light; - } &.contact { border-color: $color-contact-diff; color: $color-contact-light; diff --git a/src/styles/variables.scss b/src/styles/variables.scss index a75652b..0677d36 100644 --- a/src/styles/variables.scss +++ b/src/styles/variables.scss @@ -71,6 +71,15 @@ $color-resume-shadow: darken($color-resume, 24%); $color-resume-diff: #1c4658; $color-resume-diff-dark: rgb(26, 63, 78); +// GLOB3D +$color-glob3d: #23aca3; +$color-glob3d-white: lighten($color-glob3d, 60%); +$color-glob3d-light: lighten($color-glob3d, 30%); +$color-glob3d-dark: darken($color-glob3d, 10%); +$color-glob3d-shadow: darken($color-glob3d, 25%); +$color-glob3d-diff: #d29a21; +$color-glob3d-diff-dark: darken($color-glob3d-diff, 5%); + // TASKTIMER $color-tasktimer: #4c787c; $color-tasktimer-white: lighten($color-tasktimer, 50%); @@ -153,6 +162,14 @@ $colors: ( resume-shadow: $color-resume-shadow, resume-diff: $color-resume-diff, resume-diff-dark: $color-resume-diff-dark, + // glob3d + glob3d: $color-glob3d, + glob3d-white: $color-glob3d-white, + glob3d-light: $color-glob3d-light, + glob3d-dark: $color-glob3d-dark, + glob3d-shadow: $color-glob3d-shadow, + glob3d-diff: $color-glob3d-diff, + glob3d-diff-dark: $color-glob3d-diff-dark, // tasktimer tasktimer: $color-tasktimer, tasktimer-white: $color-tasktimer-white, diff --git a/src/utils/citiesData.ts b/src/utils/citiesData.ts new file mode 100644 index 0000000..08b1c97 --- /dev/null +++ b/src/utils/citiesData.ts @@ -0,0 +1,25 @@ +import cities from '../data/cities100.json'; + +export const getCitiesData = () => { + const { results } = cities; + return prepareCitiesData(results); +}; + +type CityData = { + country: string; + population: number; + coordinates: { + lon: number; + lat: number; + }; + name: string; +}; + +const prepareCitiesData = (data: CityData[]) => { + return data.map(({ country, population, coordinates, name }: CityData) => ({ + city: name, + country, + coordinates, + value: population, + })); +}; diff --git a/src/views/Project.module.scss b/src/views/Project.module.scss index 18d57aa..2e409f7 100644 --- a/src/views/Project.module.scss +++ b/src/views/Project.module.scss @@ -4,20 +4,53 @@ .section { @include mix.section; - .container { - @include mix.container; + display: flex; + flex-direction: column; + gap: 50px; - align-items: center; + @media screen and (min-width: var.$media-m) { + flex-direction: row; + } + + .content { + display: flex; + flex-direction: column; + gap: 20px; + padding: 0 var.$offset-right-s 0 var.$offset-left-s; + width: 100%; + z-index: 1; - .tags { + @media screen and (min-width: var.$media-m) { + min-width: 400px; + padding: 0; + width: 400px; + } + + .footer { display: flex; + flex-wrap: wrap; gap: 10px; - grid-area: tags; + height: auto; padding-left: var.$text-indent; @media screen and (min-width: var.$media-m) { + height: 60px; padding: 0; } + + .links { + display: flex; + gap: 10px; + } + + .tags { + display: flex; + height: 100%; + + @media screen and (min-width: var.$media-m) { + padding: 0; + } + } } } } diff --git a/src/views/Project.tsx b/src/views/Project.tsx index d528bbb..713d947 100644 --- a/src/views/Project.tsx +++ b/src/views/Project.tsx @@ -1,16 +1,12 @@ import clsx from 'clsx'; -import { useContext } from 'react'; import Demo from '../components/Demo'; import Graphic from '../components/Graphic'; import ProjectFeatures from '../components/ProjectFeatures'; +import ProjectLink from '../components/ProjectLink'; import Tag from '../components/Tag'; import TextGroup from '../components/groups/TextGroup'; import IconsList from '../components/icons/IconsList'; -import menuItems from '../content/menu.json'; -import { getViewLocation } from '../utils/utils'; -import CurrentViewContext from './CurrentViewContext'; - import classes from './Project.module.scss'; type ProjectProps = { @@ -33,39 +29,27 @@ const Project = ({ fetchedData, snapshots, }: ProjectProps) => { - const [currentView] = useContext(CurrentViewContext); const { created_at, updated_at, homepage, html_url } = fetchedData; - const viewLocation = getViewLocation( - currentView, - name, - menuItems.map((item) => item.label) - ); - return (
-
+
-
- - -
- +
+
+ + +
+
+ + +
+
+
); }; diff --git a/src/views/Projects.tsx b/src/views/Projects.tsx index eed6c07..24cf256 100644 --- a/src/views/Projects.tsx +++ b/src/views/Projects.tsx @@ -29,6 +29,7 @@ import projects from '../content/projects.json'; import Project from './Project'; const snapshots: { [key: string]: string[] } = { + glob3d: [], tasktimer: [tasktimerSnap1, tasktimerSnap2, tasktimerSnap3, tasktimerSnap4], hydrapp: [ hydrappSnap1, diff --git a/src/views/Resume.tsx b/src/views/Resume.tsx index 2bd5fed..0ad3ff5 100644 --- a/src/views/Resume.tsx +++ b/src/views/Resume.tsx @@ -1,5 +1,6 @@ import clsx from 'clsx'; import { useContext } from 'react'; +import { useMediaQuery } from 'react-responsive'; import AccordionsGroup from '../components/AccordionsGroup'; import BlockTitle from '../components/BlockTitle'; @@ -12,6 +13,8 @@ import classes from './Resume.module.scss'; const Resume = () => { const [currentView] = useContext(CurrentViewContext); + const isMobile = useMediaQuery({ query: '(max-width: 1200px)' }); + const { experience, education, languages } = resume; const { label, items } = experience; @@ -23,7 +26,7 @@ const Resume = () => { return (
- + {!isMobile && }