Compare commits

..

502 Commits

Author SHA1 Message Date
73aeb9e424 Merge branch 'master' into options-from-file 2018-05-25 17:35:03 -07:00
38bca4a179 Merge pull request #574 from mapbox/layer-description
Add the option to specify layer file, name, and description as JSON
2018-05-25 01:49:06 +02:00
48f7f1dd38 Preserve layer and attribute descriptions across tile-join 2018-05-24 16:01:57 -07:00
bb8b01a702 Add option to specify description for attributes in tileset metadata 2018-05-24 14:18:22 -07:00
54532795f6 Trailing commas in CSVs are now treated as empty fields.
Empty fields are now treated as empty strings rather than nulls
in tippecanoe-json-tool, for consistency with tile-join.
2018-05-24 13:54:00 -07:00
32b3a15406 Add test for JSON specification of layer file, name, and description 2018-05-24 12:41:14 -07:00
53731709b2 Add the option to specify layer file, name, and description as JSON 2018-05-24 11:30:42 -07:00
7128ac44d5 Track layer description as part of the tilestats 2018-05-24 10:27:43 -07:00
b65a5d1bb8 Merge pull request #571 from mapbox/atomic-decode
Thread safety fix for decoding quadkeys to coordinates
2018-05-23 01:39:39 +02:00
02cb3a3fb8 Thread safety fix for decoding quadkeys to coordinates 2018-05-18 14:45:03 -07:00
b048953c1a Also support JSON options as a command-line literal 2018-05-16 16:31:23 -07:00
fbb3af3612 Merge branch 'master' into options-from-file 2018-05-16 16:19:39 -07:00
5494b7da3d Merge pull request #570 from mapbox/nan-coordinates
Explicitly check for infinite and not-a-number input coordinates
2018-05-17 00:01:43 +02:00
dc3aa2ddfa Test CSV geometry with invalid coordinates 2018-05-16 14:29:28 -07:00
a4825f6af4 Explicitly check for infinite and not-a-number input coordinates 2018-05-15 12:55:17 -07:00
3f7ba2915a Merge pull request #569 from mapbox/tile-join-vasprintf
Add #define needed for Cygwin
2018-05-15 21:01:55 +02:00
445c33fb88 Add #define needed for Cygwin 2018-05-14 17:43:42 -07:00
6db02e8457 Merge pull request #568 from mapbox/gzip-input
Directly support gzipped GeoJSON files as input
2018-05-15 00:08:51 +02:00
73398a0484 Use the FILE-like abstraction that zlib already provides 2018-05-14 12:40:38 -07:00
0244f04b71 Detect if the compressed input runs out before the stream is complete 2018-05-14 11:35:29 -07:00
d0d953f4a2 Use a loop instead of spelling out .json and .json.gz separately 2018-05-14 10:46:45 -07:00
09565b4632 Fix arithmetic overflows 2018-05-11 17:29:29 -07:00
974bfb3543 Add missing initializer in can't-be-compressed case 2018-05-11 17:13:06 -07:00
450a8a741f Fix reference to uncompressed version of test file that I compressed 2018-05-11 16:49:09 -07:00
dbd69142b0 Test and documentation 2018-05-11 16:34:18 -07:00
14b618adc9 Make stream lookahead work; simplify the interface 2018-05-11 16:02:53 -07:00
9f7dc4b46d Use zlib to decompress gzipped input 2018-05-11 15:51:53 -07:00
72b8142388 JSON-reading glue to use the stream abstraction 2018-05-11 14:58:29 -07:00
33b0d5c15c Start an abstraction layer for input streams 2018-05-11 14:44:10 -07:00
8e8b74b0ce Merge pull request #567 from mapbox/checkdisk-race
Make file positions and lengths thread-safe
2018-05-07 16:31:25 -07:00
f070c7464b Add missing #include 2018-05-07 15:10:18 -07:00
59dd095607 Make file positions and lengths thread-safe 2018-05-07 14:42:49 -07:00
2cf0524037 Merge pull request #566 from mapbox/extend-zooms-with-feature-limit
Also take note of --force-feature-limit if extending zooms
2018-05-04 22:31:20 +02:00
8ba884530a Also take note of --force-feature-limit if extending zooms 2018-05-04 12:43:27 -07:00
43312fd83e Merge pull request #565 from mapbox/gnusource
Add #define to fix the build on Cygwin
2018-05-04 20:42:19 +02:00
b8cfab1eaf Add #define to fix the build on Cygwin 2018-05-04 10:37:27 -07:00
af69c85d23 Merge pull request #561 from mapbox/exit-status
Use an exit status of 100 if some but not all zoom levels succeeded
2018-04-20 10:44:13 +03:00
a383f5c725 Use an exit status of 100 if some but not all zoom levels succeeded 2018-04-18 20:48:13 +03:00
066934a666 Merge pull request #553 from mapbox/zoom-filter
Allow filtering features by zoom level in conditional expressions
2018-04-09 09:24:25 -07:00
cb4630452b Include another already-merged PR in changelog 2018-04-09 08:33:14 -07:00
7006272b75 Merge pull request #555 from andrewharvey/csv-null-geometry
Skip csv lines with no geometry as is done for geojson
2018-04-09 08:27:05 -07:00
767763c855 Merge pull request #556 from jingsam/ignore-tippecanoe-json-tool
Ignore tippecanoe-json-tool
2018-04-09 08:26:08 -07:00
cc6a97f112 Ignore tippecanoe-json-tool 2018-04-08 17:19:19 +08:00
0d6112cf20 include empty geometry test for csv 2018-04-07 08:05:45 +10:00
970af8109e skip csv lines with no geometry as is done for geojson 2018-04-06 10:56:51 +10:00
1b26becad9 Clear up some confusion about attribute count and external references
Now the count is always adjacent to whereever the key/value pair is
stored, and is not kept in the serial feature object other than as
the length of the vectors of keys and values.
2018-04-05 15:40:14 -07:00
d01d8177a0 Allow filtering features by zoom level in conditional expressions
This moves filtering from the serialization stage to the
tiling stage so that the zoom level can be known to the filter.

The side effect is to carry null attributes much further through
the pipeline than previously.
2018-04-05 14:15:19 -07:00
6b29966e4a Merge pull request #548 from mapbox/integrity-check
Check integrity of sqlite3 file before decoding or tile-joining
2018-03-29 13:03:25 -07:00
7f843c4d36 Check integrity of sqlite3 file before decoding or tile-joining 2018-03-29 12:02:59 -07:00
0304d164d8 Merge pull request #545 from mapbox/install-ubuntu
Instruction on installing on Ubuntu
2018-03-29 09:11:20 -07:00
d5b0da3ae0 Add link to Development section for compiler and prerequisite info 2018-03-28 12:25:48 -07:00
a45fec573d install on Ubuntu 2018-03-28 15:41:51 +05:30
3cea1257a5 Merge pull request #542 from mapbox/coverage
Trying to fix code coverage
2018-03-21 14:21:15 -07:00
8ff6e73b6d Add codecov badge 2018-03-21 11:48:37 -07:00
cc2cae144e Add yml file for code coverage 2018-03-19 16:27:56 -07:00
239a798bfe Try codecov for code coverage 2018-03-19 16:05:14 -07:00
db2c7dbe62 Update list of directories to exclude from code coverage 2018-03-19 15:54:04 -07:00
a1d002ccb1 Merge pull request #541 from mapbox/fix-decode-tile
Always include tile and layer in tippecanoe-decode, fixing corrupt JSON.
2018-03-19 11:18:03 -07:00
e21e4d3b88 Forgot the indentation change in this test 2018-03-16 17:06:54 -07:00
3d1ebdb82f Add missing #include 2018-03-16 16:26:19 -07:00
3c827b1d68 Use the standard JSON writer when writing metadata.json 2018-03-16 15:35:26 -07:00
ebb0334ef0 Use the standard JSON writer for tilestats
With a lot of weird special cases to keep the formatting
exactly like it accidentally was before
2018-03-16 15:19:23 -07:00
08fc2f281e JSON can be written to either a FILE or a string 2018-03-16 14:20:52 -07:00
1c4aa57ffd Change the JSON writing functions to object methods 2018-03-16 13:43:21 -07:00
623e0c90fe More regularization of JSON writing 2018-03-15 17:07:26 -07:00
ddf4a45b33 Use JSON writer functions for tile size stats 2018-03-15 15:19:52 -07:00
605ccbe077 Helper functions so I will stop writing JSON by hand 2018-03-15 14:42:53 -07:00
35aa291aac Restore accidentally deleted test 2018-03-15 12:35:59 -07:00
71df4d3e81 Always include tile and layer in tippecanoe-decode, fixing corrupt JSON. 2018-03-14 16:35:59 -07:00
e690a1b585 Merge pull request #540 from mapbox/progress-frequency
Add --progress-interval setting to reduce progress indicator frequency
2018-03-14 14:47:01 -07:00
fac0ebbf52 All the other places where I used volatile but really wanted atomic 2018-03-13 15:21:21 -07:00
f1eede1106 Track the last progress update with an atomic type, not volatile 2018-03-13 15:04:28 -07:00
834c05038c Add --progress-interval setting to reduce progress indicator frequency 2018-03-13 14:51:48 -07:00
b0879df54a Also accept true for options that do not take arguments 2018-03-08 17:26:13 -08:00
d199d18275 Add the ability to read command-line options from a JSON file 2018-03-08 17:17:14 -08:00
ca91cec923 Merge pull request #537 from mapbox/adjust-cluster
Make clusters look better by averaging locations of clustered points
2018-03-02 11:15:07 -08:00
2b936af96a Fix indentation 2018-03-02 10:35:58 -08:00
18e345efb0 Make clusters look better by averaging locations of clustered points 2018-03-01 16:53:59 -08:00
61cbc3eca0 Merge pull request #536 from mapbox/accumulate-attribute
Accumulate specified attributes when features are dropped, clustered, or coalesced
2018-02-28 16:25:11 -08:00
10a1bc8580 Fix use of references into the wrong string pool after parallel input 2018-02-28 13:09:55 -08:00
a2dfaf85d0 Some basic tests for feature attribute accumulation 2018-02-27 17:49:48 -08:00
bfb6778e07 Add feature density tilestats during tiling instead of as a special case 2018-02-27 17:04:15 -08:00
d66d05213f Add the mean as an option for accumulating attributes 2018-02-27 16:12:29 -08:00
f87b71b739 Check the layer before letting a feature be coalsced/clustered/dropped 2018-02-27 15:45:09 -08:00
ebe10a27d7 Add documentation 2018-02-27 14:45:46 -08:00
c604a51039 Don't coalesce features whose non-string-pool attributes don't match
Fortunately most attributes are in the string pool, but ones that
have passed through the prefilter are not. (Nor are attributes that
are generated by clustering or by attribute accumulation.)
2018-02-27 13:38:37 -08:00
e939a85251 Make sure numeric command line arguments are actually numbers 2018-02-26 17:35:39 -08:00
45b1a1d9e0 Sum, product, concat, and comma operations work now 2018-02-26 16:47:15 -08:00
06ed9d14d8 Add an attribute for square root of cluster count 2018-02-26 12:53:43 -08:00
e4e39289a2 Fix the raw-tiles test and make it a little less fragile 2018-02-26 11:32:18 -08:00
a8a342f701 Send dot-dropping through the same pipeline.
The first feature in a tile can never be dropped, since there is
no previous feature to attach its properties to.

Remove the previous special case that reset the dropping counter
at the first feature within each tile proper (as opposed to the
first feature in each tile, including its buffer, which is now
the one that is guaranteed to be preserved).
2018-02-23 17:19:54 -08:00
7fe0c87806 Get attribute accmulation by concatenation working 2018-02-23 16:16:11 -08:00
27154c8f06 Cluster onto the previous feature instead of onto the next
This also allows doing the attribute and tilestats all at once
at the end of the tile instead of having to update a feature
to handle the last cluster.
2018-02-23 12:26:58 -08:00
30a277a43e Always keep the first feature so there is something to coalesce onto 2018-02-22 17:25:54 -08:00
79df57f2c3 Merge pull request #535 from mapbox/logo-image
Add logo image
2018-02-22 15:07:44 -08:00
3235955807 Add logo image 2018-02-22 14:58:51 -08:00
bc0edec753 Call a function that will eventually preserve the attributes 2018-02-20 17:24:15 -08:00
b73e710855 Add --accumulate-attribute flag and pass the result to tiling 2018-02-20 16:19:49 -08:00
03577cf967 Merge pull request #529 from mapbox/files-left-open
Close input files that were being left open after parallel reading
2018-02-12 15:53:32 -05:00
2d625d5807 Pass through any non-ASCII characters from file names into layer names
The Docker build doesn't include proper locale support
2018-02-07 13:15:36 -08:00
2b7d64736f Set locale before running tests in Docker 2018-02-06 17:58:24 -08:00
17942b3a89 Add an option to produce only a single tile 2018-02-06 17:25:58 -08:00
7ab94d43c6 Preserve non-ASCII characters when making layernames from filenames 2018-02-06 17:22:26 -08:00
8726366a4c Remember to close the input file after CSV parsing too 2018-02-06 16:23:44 -08:00
2e5b597ca1 Add --coalesce-fraction-as-needed and --coalesce-densest-as-needed 2018-02-06 14:39:05 -08:00
8fa5a5ff87 Report distances in both feet and meters 2018-02-06 12:15:24 -08:00
8e7b22cf1b Close input files that were being left open after parallel reading 2018-02-06 12:02:23 -08:00
e2a34929d1 Merge pull request #522 from carimatics/master
Fix Release file not found error when execute docker build command.
2018-01-31 07:13:57 -08:00
042fa77357 Fix Release file not found error when execute docker build command. 2018-01-30 23:49:34 +09:00
21b9b1993f Merge pull request #515 from mapbox/vector-bounds
Fix out-of-bounds error when no threads were needed for a zoom level
2018-01-19 10:27:20 -08:00
d49606babf Fix opportunities for integer overflow 2018-01-18 12:37:15 -08:00
e07a4dd51b Fix out-of-bounds error when no threads were needed for a zoom level 2018-01-18 12:12:35 -08:00
eb966ae398 Merge pull request #511 from mapbox/cluster
Add an option for clustering features
2017-12-21 09:55:20 -08:00
aaf08a6c55 Add an option to specify the clustering distance directly 2017-12-20 17:33:30 -08:00
fc32a0e897 Add a test for the case that was getting stuck in a loop 2017-12-19 12:46:13 -08:00
01884a3bf6 Make sure the feature gap always increases when trying to reduce density 2017-12-19 12:09:30 -08:00
6524b6510e Credit dangling clustered count at the end of a tile to the last feature 2017-12-18 12:55:22 -08:00
b03dabe098 Add an option for clustering features 2017-12-14 14:30:08 -08:00
5687ee041f Merge pull request #503 from mapbox/geocsv
Add input support for CSV file format
2017-12-14 10:11:07 -08:00
be79d13cbc Add missing #include 2017-12-13 14:52:46 -08:00
2e32004589 Don't coalesce features that have different IDs.
Remove the 700-point limit on coalesced features, since
polygon merging is no longer a performance problem.
2017-12-13 12:05:53 -08:00
82a2b5dfdc Add CSV test and documentation 2017-12-13 11:32:19 -08:00
ed0b69a3c8 Fix check for non-numeric CSV data. Use same column name code as mapnik 2017-12-07 11:28:39 -08:00
ec475b3beb Check for strings vs numbers in CSV attributes 2017-12-06 15:20:01 -08:00
afb5cece96 Verify that CSV input is encoded as UTF-8 2017-12-06 13:32:44 -08:00
f3e6afa4e9 Basic geographic CSV parsing 2017-12-05 17:18:19 -08:00
f2f76082df Merge pull request #501 from mapbox/refactor-dirtiles
Clean up duplicated code for reading tiles from a directory
2017-12-01 14:35:03 -08:00
e4743d9527 Test successful and failed attempts to write to existing tilesets 2017-11-30 15:56:35 -08:00
d7f44ab082 Factor out code for reading metadata.json 2017-11-30 15:49:38 -08:00
1acd771743 Factor out code for enumerating the tiles in a directory 2017-11-30 15:37:46 -08:00
ad86d06cce Merge pull request #500 from mapbox/allow-existing-test
Make --allow-existing work on dirs; trim .geojson from layer names
2017-11-30 11:15:38 -08:00
1b1be9f872 Also trim .geobuf from layer names 2017-11-29 16:44:55 -08:00
ba1c343204 Make --allow-existing work on dirs; trim .geojson from layer names 2017-11-29 16:24:48 -08:00
ca028dd1cc Merge pull request #495 from mapbox/bare-geom-crash
Add null pointer check when checking for bare geometry. Fix coalescing of wrong features.
2017-11-22 17:53:25 -08:00
8ac7c46788 Make the same null pointer fix in jsontool.cpp as in geojson.cpp 2017-11-22 13:06:39 -08:00
2234e37883 Quadkey-order index is a better secondary key for --reorder anyway 2017-11-22 12:49:40 -08:00
8230987405 Fix a bug that could cause the wrong features to be coalesced 2017-11-22 11:54:25 -08:00
9964784e77 Add null pointer check when testing for bare geometry in GeoJSON 2017-11-21 15:01:33 -08:00
ac67013930 Merge pull request #473 from mapbox/json-join
Working on tools for joining CSV data to GeoJSON
2017-11-21 10:50:01 -08:00
9a12a76855 Fix overflow when iterating through 0-length lists backwards 2017-11-17 15:47:10 -08:00
6fd4918c4d Attach coalesced-as-needed leftovers to the last feature, not the first 2017-11-17 15:43:02 -08:00
ecbfad2576 Fix problem where --detect-shared-borders could simplify polygons away 2017-11-17 15:35:19 -08:00
ab86846d4b Merge branch 'master' into json-join 2017-11-17 15:30:14 -08:00
4754084130 Merge pull request #492 from mapbox/rate-clarify
Clarify documentation; add --no-progress-indicator option; fix many compiler warnings
2017-11-17 14:11:22 -08:00
3f54a70459 Add a test for joining with tippecanoe-json-tool 2017-11-17 14:05:37 -08:00
2b1cba0b53 Warn during json-tool extraction if the extracted field isn't found 2017-11-17 13:52:45 -08:00
f318fcc657 Turn off very verbose initializer warnings 2017-11-17 11:21:59 -08:00
621e0afc3c Merge branch 'more-warnings' into rate-clarify 2017-11-17 11:21:01 -08:00
b6163dd435 Merge branch 'master' into json-join 2017-11-17 11:11:44 -08:00
76d86f7d45 Add an option to quiet the progress indicator but not warnings 2017-11-16 17:08:59 -08:00
4dec9b43ae Try to clarify documentation for point dropping 2017-11-15 13:19:42 -08:00
2d87059a04 Some more constructors 2017-11-10 13:59:57 -08:00
f1c3811d97 Merge pull request #488 from mapbox/test-centos7
Test on centos7 via docker
2017-11-10 13:49:07 -08:00
069807caf4 Use a proper constructor, discover two unused fields 2017-11-10 13:06:47 -08:00
dca1ebbbfb Get rid of some C99-style variable-length arrays 2017-11-09 16:54:06 -08:00
23004808e4 Merge branch 'master' into more-warnings 2017-11-09 15:13:07 -08:00
450032a62e Merge pull request #490 from mapbox/float-bounds
Be more careful about checking for overflow when parsing numbers
2017-11-09 15:01:56 -08:00
948680fbeb Exclude failing overflow test from geobuf tests 2017-11-09 14:10:29 -08:00
fda0e1f28a Fix more cases of loss of precision for large magnitude integers 2017-11-09 13:56:07 -08:00
aa7191b1ee Also test large integers. Work around an apparent bug in strtoull. 2017-11-09 12:52:38 -08:00
87ce5b9310 Be more careful about checking for overflow when parsing numbers 2017-11-09 12:11:07 -08:00
0152db4a20 More initializers 2017-11-07 15:57:56 -08:00
30aa422483 Missed one 2017-11-07 15:27:47 -08:00
4f974b3dc6 Less verbose initializer syntax 2017-11-07 15:25:54 -08:00
ba62ab8596 More structure initializers 2017-11-07 15:20:17 -08:00
891f99f24c More structure initializers 2017-11-07 13:32:03 -08:00
1b60fdbaf0 Some structure initializers 2017-11-07 12:52:43 -08:00
20e6e80cb1 Fix signed comparison warning from g++ 2017-11-07 11:38:38 -08:00
c18f9a1572 Enable more warnings 2017-11-07 11:15:04 -08:00
50910b211b Remove more unused parameters 2017-11-07 11:09:22 -08:00
d89d46da65 Remove unused parameters 2017-11-07 10:55:34 -08:00
95cc1672b9 test on centos7 via docker 2017-11-07 09:44:25 -08:00
5a68886b4d Merge pull request #486 from mapbox/surrogate-pairs
Support UTF-16 surrogate pairs in JSON and arbitrarily long lines in CSVs
2017-11-06 10:45:53 -08:00
12a1258797 Also remove the point styling script since CartoCSS is long deprecated 2017-11-03 16:59:45 -07:00
0585742a20 Remove unused constant and out-of-date comment 2017-11-03 16:51:45 -07:00
0801a9324b Silence the projection warning if you asked for --quiet 2017-11-03 15:25:14 -07:00
8ae9a8b665 Merge pull request #483 from mapbox/docker-test
Test inside docker on travis
2017-11-03 15:22:04 -07:00
e39db074fe Bump version number 2017-11-03 15:19:43 -07:00
1960eb8dae Follow JSON rules for what looks like a number in a CSV 2017-11-03 15:17:09 -07:00
6467a5b70d Fix the arbitrary line length limit 2017-11-03 15:15:46 -07:00
21042a7308 Move CSV code into its own file 2017-11-03 15:15:28 -07:00
c217a77b0a Add UTF-8 and UTF-16 emoji to a test 2017-11-03 15:13:08 -07:00
621cf72e5a Handle surrogate pairs in JSON strings 2017-11-03 15:09:00 -07:00
cc734c8709 Merge pull request #485 from mapbox/milo-bounds
Port fix for array index out of bounds in decimal conversion
2017-11-03 10:10:12 -07:00
41c026796d Port fix for array index out of bounds in decimal conversion
https://github.com/miloyip/dtoa-benchmark/issues/7

commit fe550f38669fe0f488926c1ef0feb6c101f586d6
Author: Eli Fidler <efidler@topologyinc.com>
Date:   Tue May 31 11:51:37 2016 -0400

    avoid array index out-of-bounds

    UBSAN gave "runtime error: index 13 out of bounds for type 'const uint32_t [10]'"
2017-11-02 16:42:29 -07:00
d551231f6c test inside docker on travis 2017-11-01 13:42:42 -07:00
dc42c7ccc2 Merge pull request #481 from mapbox/crashers
Be more careful about corrupt mbtiles files
2017-10-30 15:16:07 -07:00
faf40658a6 Bump version number 2017-10-30 13:53:54 -07:00
93a325605c Guard against impossible tile coordinates when decoding 2017-10-30 13:24:31 -07:00
e2b9b96ba8 Detect impossible zoom levels in mbtiles when decoding 2017-10-30 12:55:22 -07:00
a3e95db0c3 Guard against decoding tiles with an impossible extent 2017-10-30 12:48:55 -07:00
dfbb13e7db Guard against impossible zoom level 2017-10-27 17:40:39 -07:00
d13e08c9b5 Guard against null keys and values in tileset metadata 2017-10-27 17:38:07 -07:00
4c7de922ce Merge pull request #480 from mapbox/join-ints
Make sure to encode tile-joined integers as ints, not doubles
2017-10-27 17:31:00 -07:00
197d36bdc3 Make sure to encode tile-joined integers as ints, not doubles 2017-10-27 12:43:23 -07:00
68e4f312f8 Merge pull request #479 from mapbox/rename-layer
Add tile-join option to rename layers
2017-10-27 12:21:52 -07:00
18a5300e87 Add tile-join option to rename layers 2017-10-27 11:04:06 -07:00
cd47a398fa Merge pull request #477 from mapbox/empty-attribute-keys
Fix error when parsing attributes with empty-string keys
2017-10-13 12:32:32 -07:00
ee6da93494 Fix error when parsing attributes with empty-string keys 2017-10-13 11:22:15 -07:00
9ebeb47d24 Don't duplicate the join key in JSON tool output 2017-10-10 17:51:16 -07:00
894a0acc74 Fix missing URL and explanation in documentation 2017-10-10 16:59:23 -07:00
2f1945cfa6 Add example 2017-10-10 16:46:47 -07:00
68a55b8749 Follow JSON rules for what looks like a number in a CSV 2017-10-10 16:22:47 -07:00
86a4ce67a6 Joining basically works 2017-10-10 16:12:40 -07:00
face450102 Fix the arbitrary line length limit 2017-10-10 15:06:12 -07:00
19117d8060 Move CSV code into its own file 2017-10-10 14:57:38 -07:00
54e9cd3cae Add UTF-8 and UTF-16 emoji to a test 2017-10-10 14:31:45 -07:00
1f9768ce24 Handle surrogate pairs in JSON strings 2017-10-10 14:03:33 -07:00
ebb26ee14c Add property extraction for sorting 2017-10-10 14:03:24 -07:00
d9c22135e5 Rename geojson2nd to tippecanoe-json-tool 2017-10-10 11:37:30 -07:00
42a56b1ad3 Merge pull request #471 from mapbox/coalesce-smallest
Experiment with coalescing features to reduce tile size
2017-10-10 11:33:29 -07:00
91e469aac2 Merge any leftover feature remnants onto some feature.
Add a test for coalescing small features onto large ones.
2017-10-09 17:37:21 -07:00
748ef3b1d5 Add a tippecanoe-decode option to report tile size and feature count 2017-10-09 17:05:29 -07:00
ecadd779c9 Don't try to coalesce features of different types 2017-10-09 16:26:55 -07:00
8ae1ec5379 Distribute coalescing error more evenly 2017-10-06 18:06:37 -07:00
be922702ce Experiment with coalescing features to reduce tile size 2017-10-06 18:01:08 -07:00
4c2d80ea17 Corrected Link to "Visualizing Month of Lightning" 2017-09-18 14:31:07 -04:00
e000bcc261 Merge pull request #463 from mapbox/stringpool
Limit the depth of the search in the string pool.
2017-09-08 10:16:19 -07:00
a2d12f178f Reorder and reword documentation 2017-09-07 15:34:55 -07:00
84a6aa6d73 Use std::isinf() and std::isnan() instead of the C versions
According to https://github.com/mapbox/tippecanoe/issues/464 this
is necessary for g++-5 on Linux
2017-09-07 14:40:50 -07:00
c3d23675d1 Also fix arithmetic overflow when reading a Geobuf GeometryCollection 2017-09-07 13:48:09 -07:00
c77c2a2b1e Fix compiler complaints about arithmetic overflow in hashing 2017-09-07 12:04:32 -07:00
93920d06e1 Slightly lower average traversal using a hash for comparison 2017-09-06 17:10:10 -07:00
764a8ac17c Use 32-bit offsets in the string pool search tree to reduce its size 2017-09-06 15:26:19 -07:00
0f8b32c69f Limit the depth of the search in the string pool.
Use a better comparison function. (Attributes often have a common
prefix but rarely have a common suffix.)
2017-09-06 13:06:08 -07:00
2518f238d4 Use tippecanoe instead of tile-join in the filter example 2017-09-06 11:49:55 -07:00
7ce882c035 Merge pull request #462 from mapbox/gl-filters
Add feature attribute filters (as in the GL style spec) to tile-join
2017-09-06 11:20:32 -07:00
c9e4275217 Do fewer tests in the address sanitizer build 2017-09-05 14:02:43 -07:00
bdd95af8b2 Be careful not to generate empty layers in tile-join.
Add a test of filtering during tile-join.
Bump version number.
2017-09-05 13:33:10 -07:00
d349b7700d Add the tests for filtering for feature type 2017-09-05 12:17:23 -07:00
7b71f41e43 Fix compiler warnings 2017-09-01 17:36:43 -07:00
86ff221663 I think this should fix the access to already-freed memory
Also drop the reference to the JSON parser when disconnecting
a JSON object from the parse tree.
2017-09-01 17:22:05 -07:00
681907e88d Add the feature ID filter tests 2017-09-01 16:53:19 -07:00
8d502eb805 Fix memory leak 2017-09-01 16:41:01 -07:00
c232e565db Working on testing against Mapbox GL JS filter tests 2017-09-01 16:27:27 -07:00
0fd4454129 Allow filter expressions during tippecanoe as well as during tile-join 2017-09-01 11:51:12 -07:00
dbb789dadc Merge branch 'master' into gl-filters 2017-09-01 10:29:08 -07:00
dd07511193 Merge pull request #460 from mapbox/geobuf
Add input support for Geobuf format
2017-09-01 10:28:22 -07:00
9a21c04f06 Bump version number; fix node version that I accidentally reverted 2017-08-31 14:17:18 -07:00
223d837736 Multithreaded geobuf feature parsing 2017-08-31 13:54:04 -07:00
12d744e961 Try specifying a newer version of Node 2017-08-30 16:03:00 -07:00
6384b6a49a Fix #include path and json2geobuf path 2017-08-30 15:45:37 -07:00
a5b1378d1a Minimize external dependencies for Geobuf testing 2017-08-30 15:32:36 -07:00
076dfcdfeb Work around differences of opinion about the range of feature IDs
Geobuf uses signed 64-bit ints
Vector tile spec uses unsigned 64-bit ints
Geobuf silently corrupts IDs through use of floating point
2017-08-30 14:34:59 -07:00
f65faaf3da Support GeometryCollections in geobuf 2017-08-30 14:10:35 -07:00
5c5fbe2617 Support top-level geometries 2017-08-30 14:01:09 -07:00
5665d08745 Support per-feature minzoom and maxzoom in geobuf 2017-08-30 11:44:57 -07:00
607ea6c643 Lower the precision of all test input coordinates to 6 decimal digits 2017-08-30 10:31:51 -07:00
15a48e67d6 Canonicalize numbers in stringified attributes so geobuf can match 2017-08-29 17:40:57 -07:00
caac717b17 Add another missing #include 2017-08-29 17:25:36 -07:00
8b6a51e20b Fix wildcarding for geobuf test invocation 2017-08-29 16:15:22 -07:00
4d6ebaa088 Fix nulls and negative integers in geobuf parsing 2017-08-29 16:04:50 -07:00
c65a388597 Add missing #include 2017-08-29 15:58:02 -07:00
12784de211 Produce "nan" and "inf" strings instead of aborting 2017-08-29 15:54:25 -07:00
228567364f Remove the memmove I accidentally left in, corrupting small numbers 2017-08-29 15:43:16 -07:00
cef6b022dd Fix the typo I made in the conversion to std::string 2017-08-29 14:58:16 -07:00
0d56d1bf38 Add missing #include 2017-08-29 14:49:24 -07:00
f9a007e8c3 Use milo dtoa for consistent string representation of numbers 2017-08-29 14:44:34 -07:00
3840176d5c Convert to output to std::string 2017-08-29 14:26:20 -07:00
5f09ccae88 Add namespace; fix warning 2017-08-29 13:31:59 -07:00
18b2a2c39c Milo dtoa from https://github.com/miloyip/dtoa-benchmark 2017-08-29 12:51:59 -07:00
4b66aa828d Geobuf testing exposes a bug in type coercion of 0.0 to boolean 2017-08-29 11:43:39 -07:00
1581b79a3e Forgot to implement "in" and "!in" 2017-08-28 14:35:07 -07:00
754cbdc634 Add short circuits; warnings for mismatched types, wrong array lengths 2017-08-28 14:26:36 -07:00
4e1611eec9 Fix boolean comparisions 2017-08-28 14:08:05 -07:00
8d7f8af1d9 Make indent 2017-08-28 14:01:57 -07:00
b7df68c164 Remember how to keep a parse tree around after the parser is closed 2017-08-28 13:56:52 -07:00
5878213516 Simplify the filter format, and actually run the filter. 2017-08-28 13:42:14 -07:00
7be21f6046 First (untested) pass at handling GL Style Spec filters 2017-08-28 13:26:11 -07:00
7c031a9796 Memory-map geobuf input instead of reading it into a temporary string 2017-08-28 11:30:30 -07:00
5943c82457 Move file-format-neutral code out of JSON-specific source file 2017-08-28 11:10:57 -07:00
8d09f0769e Fix multipolygon and feature ID parsing 2017-08-25 17:40:08 -07:00
ad89fb88fb Most of the way through geometry decoding 2017-08-25 16:36:53 -07:00
b98bf6e8c7 Get attribute value decoding working 2017-08-25 15:46:32 -07:00
75be013059 Start on geobuf parsing 2017-08-25 14:56:03 -07:00
e7ee83f27b Move attribute type coercion out of parsing and into serialization 2017-08-24 17:27:30 -07:00
f4818ffb07 Move attribute include/exclude logic into serialization 2017-08-24 17:10:15 -07:00
34b1b215f4 Move tilestats management out of parsing and into serialization 2017-08-24 16:30:01 -07:00
ed8fbd0236 Split more serialization details out from being parsing parameters 2017-08-24 15:57:33 -07:00
b114e22d39 Factor out geometry fixups 2017-08-23 12:48:45 -07:00
6caf20b9c8 Put the pieces back together 2017-08-23 11:43:48 -07:00
6cea2d5db6 Progress on factoring out serialization state into a single object 2017-08-22 18:10:52 -07:00
235dbf57af More progress on splitting apart parsing and serialization 2017-08-22 16:51:11 -07:00
f0b32cf710 Merge branch 'master' into geobuf 2017-08-22 16:21:03 -07:00
e7f264fa51 Merge pull request #458 from mapbox/nan-infinity
Add better diagnostics for NaN or Infinity in input JSON
2017-08-22 15:49:45 -07:00
0b3e731f0b Add better diagnostics for NaN or Infinity in input JSON 2017-08-21 10:44:04 -07:00
071b4efdab Merge pull request #451 from mapbox/no-tile-stats
Add an option not to produce tilestats
2017-08-16 15:23:29 -07:00
4d1ddc5a03 Add tile-join options to select zoom levels to copy 2017-08-16 13:49:16 -07:00
e6fc22187a Tilestats metadata no longer needs to be limited to 60K 2017-08-16 12:53:10 -07:00
8f02aa40c4 Improve tile-join documentation 2017-08-15 15:55:53 -07:00
205c28bb64 Fix tilestats with truncated strings. Trim tilestats if TileJSON is huge 2017-08-15 11:23:03 -07:00
5fc261020c Add tests for not producing tilestats 2017-08-15 10:41:00 -07:00
372194cee9 Add an option not to produce tilestats 2017-08-15 10:35:41 -07:00
b1620f6c59 Work on factoring out serial_feature 2017-08-15 10:25:11 -07:00
23a4ed8754 Merge branch 'master' into geobuf 2017-08-10 10:28:17 -07:00
f5111857d2 Merge pull request #332 from mapbox/plugins
Add plugin support
2017-08-09 14:13:27 -07:00
e453e32321 Fix test flakiness for filtered tile-join, and some other warnings. 2017-08-09 11:30:16 -07:00
915b1481ad Forgot to check in this file 2017-08-09 10:27:21 -07:00
200f6777ba Fix layer list in tilestats when filtering and tile-joining.
(The feature count when filtering will be the sum of features
across tiles instead of filters from the original input, since
the filter reader doesn't know what the original input feature
set was.)
2017-08-08 16:41:20 -07:00
635429cd87 Fix dangling pointer. Defer tilestats generation until tiling if filtering. 2017-08-08 13:38:48 -07:00
eebc8f7639 Remember to close polygons before sending them to the prefilter 2017-08-08 11:58:51 -07:00
c79f19e3ca Merge branch 'master' into plugins 2017-08-08 11:08:10 -07:00
fa0e38da2b First stages of geobuf support 2017-08-08 10:31:26 -07:00
e982b2f6a7 Merge pull request #436 from mapbox/tilestats
Generate layer, feature, and attribute statistics as part of tileset metadata
2017-07-27 14:11:42 -07:00
8280c3f99d Bump version number 2017-07-27 13:44:51 -07:00
cc28bbab3a Move the tilestats into the "json" row of the metadata 2017-07-26 09:54:49 -07:00
5a09fcc35e Some basic unit tests for string truncation 2017-07-21 14:27:30 -07:00
a373c2516a Remove debugging code 2017-07-21 13:17:21 -07:00
9ec52f2c90 Merge branch 'master' into tilestats 2017-07-21 13:08:33 -07:00
7e6d10c2fa In tilestats, truncate and merge layers and attributes with long names 2017-07-21 12:56:30 -07:00
62f135a97d Exclude long attribute values from tilestats output, as specified 2017-07-21 12:28:14 -07:00
00aed42c0e Add missing #include 2017-07-20 23:10:45 -07:00
518c8db790 Straighten out the extra tilestat attributes in some joined tilesets
The problem was in the case where the CSV provided a new value for
an attribute that replaced an existing value. Both the old and new
value were being included in the tilestats instead of just the new.
2017-07-20 17:39:41 -07:00
54cbc570f1 Don't write to a directory that contains an existing tileset.
The -f option will clear the directory now, as with mbtiles.
2017-07-20 14:17:09 -07:00
855e344552 Don't keep tilestats for features that are filtered out in tile-join 2017-07-19 16:53:53 -07:00
97d0b2a1b5 Retain attributes in alphabetical order, for consistency 2017-07-19 16:40:06 -07:00
3cafef89f1 Factor out duplicated tilestats code 2017-07-19 14:45:15 -07:00
7b03e1ee87 Include tilestats in the metadata table. (Not all tests are passing) 2017-07-19 13:09:47 -07:00
9078098511 Only insert a new tilestats record if there isn't already one 2017-07-18 17:28:30 -07:00
b3078ddeec Also make tilestats in tile-join 2017-07-18 16:53:06 -07:00
81e3f09024 Merge pull request #440 from mapbox/no-geoms
Close mbtiles properly when exiting because there are no features
2017-07-18 14:21:11 -07:00
9304bc5ca1 Generate the rest of the tilestats 2017-07-18 14:20:33 -07:00
ba82ef8274 Complain if the output file or directory is specified more than once 2017-07-18 14:11:48 -07:00
3eb1237b0a Progress on generating tilestats as JSON 2017-07-18 13:27:37 -07:00
6ac9ca3709 Bump version number 2017-07-18 10:50:25 -07:00
18f9a8dbb7 Close mbtiles properly when exiting because there are no features 2017-07-18 09:54:59 -07:00
71f57793fd Derive tilejson attribute types from sample attribute values 2017-07-17 17:31:46 -07:00
77bf14bfb0 Track sample values for each attribute in each layer 2017-07-17 13:28:46 -07:00
b1771a3365 Make layer attributes a map to sample values 2017-07-17 11:58:37 -07:00
7445feb845 Work in the direction of tracking representative attribute values 2017-07-14 17:59:24 -07:00
62ee53992b Track how many features of each type are in each layer 2017-07-14 17:23:41 -07:00
65c095cc2b Clean up #includes and add fields for counting attributes 2017-07-14 16:56:23 -07:00
6a505cdba7 Add an example of a zoom level filter 2017-07-07 17:41:06 -07:00
24a182772f Merge pull request #433 from mapbox/getopt
Add long options to tippecanoe-decode and tile-join. Add --quiet to to tile-join.
2017-07-07 14:44:28 -07:00
c164a3e69b Add long options to tippecanoe-decode and tile-join. Add --quiet to tile-join. 2017-07-07 12:51:49 -07:00
04d0cc6fa1 Merge branch 'master' into plugins 2017-07-06 22:28:35 -07:00
412be8e6fc Merge pull request #431 from mapbox/protozero-1.5.2
Upgrade protozero to version 1.5.2
2017-06-30 15:37:35 -07:00
3ba45c7277 Upgrade protozero to version 1.5.2 2017-06-30 11:20:26 -07:00
bd845ac57d Merge pull request #429 from mapbox/bom2
Ignore UTF-8 byte order mark if present
2017-06-29 15:25:31 -07:00
dd0a135b01 Ignore UTF-8 byte order mark if present 2017-06-29 14:42:42 -07:00
240ccbd219 Merge pull request #426 from mapbox/extend-zooms
Add an option to increase maxzoom if features are still being dropped
2017-05-31 14:07:57 -07:00
dba24959ba Avoid potential infinite loop from choosing the same min density again 2017-05-31 11:02:02 -07:00
cf3a0800b8 Add an option to increase maxzoom if features are still being dropped 2017-05-31 10:47:34 -07:00
b80a1d7621 Merge pull request #425 from mapbox/better-maxzoom-guessing
Better maxzoom guessing by considering resolution within features
2017-05-30 17:22:40 -07:00
c7d146ea48 Don't do work for guessing maxzoom unless needed. Add a better test. 2017-05-30 16:58:56 -07:00
8776f17980 Bump version number, give better warning message 2017-05-30 16:02:08 -07:00
977effc96d Merge pull request #424 from joykuotw/master
Add tile-join directory support
2017-05-30 15:43:56 -07:00
ab8ecb7e00 Add missing #include 2017-05-30 13:41:24 -07:00
331707f88a Better maxzoom guessing by considering resolution within features 2017-05-30 13:28:25 -07:00
a5db055c50 Change fixed-size buffer to variable-length string 2017-05-30 20:11:13 +01:00
e8e949fac9 Fix memory leak 2017-05-30 18:40:22 +01:00
52ceaaddb6 Add tile-join source to directories of tiles 2017-05-30 14:53:55 +01:00
ef8af63ab4 Add tile-join options to no tile compression and output to directory 2017-05-25 11:25:57 +01:00
9c3fb0f669 Change the function name rawtiles to dirtiles 2017-05-24 16:32:44 +01:00
5db7b504e8 Merge pull request #421 from mapbox/long-attributes
Fix crash with very long (>128K) attribute values
2017-05-18 15:11:42 -07:00
eb8ab1dd58 Fix crash with very long (>128K) attribute values 2017-05-18 14:48:18 -07:00
d0980e29d0 Merge pull request #419 from Burke9077/master
Add basic support for Docker
2017-05-18 11:47:21 -07:00
1bb31882fa Added docker information to the README 2017-05-18 09:48:37 -04:00
4016876670 Added dockerfile 2017-05-17 17:02:26 -04:00
b301512860 Merge branch 'master' into plugins 2017-05-12 17:20:30 -07:00
27dadc8ade Merge pull request #418 from mapbox/no-compression-test
There should be a test for the no-compression mbtiles output format
2017-05-12 17:09:41 -07:00
2f7b5d8afd There should be a test for the no-compression mbtiles output format 2017-05-12 16:21:25 -07:00
733092abf6 Merge pull request #417 from mapbox/only-warn-once
Only warn once about invalid polygon encoding in tippecanoe-decode
2017-05-12 11:24:02 -07:00
9632c14551 Only warn once about invalid polygon encoding in tippecanoe-decode 2017-05-12 11:15:27 -07:00
7fe3de9cfa Merge pull request #416 from mapbox/tile-join-compression
Tile-join had not been compressing its tiles.
2017-05-11 12:51:14 -07:00
fb6551c59e Calculate the tileset bounding box in tile-join from the tile boundaries 2017-05-11 12:36:35 -07:00
30d54ff50d Tile-join had not been compressing its tiles. 2017-05-11 12:08:47 -07:00
685e1a4360 Merge pull request #412 from mapbox/polygon-closure
Enforce polygon winding and closure rules in tippecanoe-decode
2017-05-05 11:47:54 -07:00
922bef72c8 Fix array bounds error found by -fsanitize=address 2017-05-05 11:22:40 -07:00
9eb3a7f7ec Enforce polygon winding and closure rules in tippecanoe-decode 2017-05-05 10:56:50 -07:00
eab593fea5 Merge pull request #411 from mapbox/tile-join-name
Add tile-join options to set tileset name, description, attribution
2017-05-04 15:27:40 -07:00
f87a9d1660 Add tile-join options to set tileset name, description, attribution 2017-05-04 15:08:31 -07:00
92deeb58f9 Merge pull request #410 from mapbox/tile-join-name
Preserve the tileset names from the source mbtiles in tile-join
2017-05-04 14:17:52 -07:00
6ec453229c Preserve the tileset names from the source mbtiles in tile-join 2017-05-04 13:31:30 -07:00
24bde0be03 Fix formatting 2017-05-04 10:39:48 -07:00
263a1b9e5f Add sample filter to limit tiles to a bounding box 2017-05-04 10:25:53 -07:00
f9f57ebb3f Merge branch 'master' into plugins 2017-05-04 10:19:32 -07:00
ad0eba7ccd Merge pull request #405 from mapbox/too-much-splitting
Fix RFC 8142 support: Don't try to split *all* memory mapped files
2017-05-01 15:40:04 -07:00
acdb5b72db Fix RFC 8142 support: Don't try to split *all* memory mapped files 2017-05-01 15:27:55 -07:00
a0234923b7 Merge branch 'master' into plugins 2017-05-01 11:43:05 -07:00
1669d96510 Merge pull request #404 from mapbox/rfc8142
Support RFC 8142 GeoJSON text sequences
2017-04-28 16:56:40 -07:00
63e0c89c4b Support RFC 8142 GeoJSON text sequences 2017-04-28 16:39:16 -07:00
dc01d33402 Merge pull request #402 from mapbox/gitignore
Put everything normally generated during compilation in .gitignore
2017-04-24 08:29:56 -07:00
0ecc6fa1c5 Put everything normally generated during compilation in .gitignore 2017-04-23 15:31:57 -07:00
5a8bfa23a4 Merge branch 'master' into plugins 2017-04-21 16:18:00 -07:00
6173180cee Merge pull request #401 from mapbox/usage
Organize usage output the same way as in the README
2017-04-21 14:49:26 -07:00
569fd97475 Also generate the string of option letters instead of writing it again 2017-04-21 13:56:40 -07:00
6c7a52147b Organize usage output the same way as in the README 2017-04-21 13:48:39 -07:00
d2a8761483 Merge pull request #399 from mapbox/projection-warning
Try to be clearer in the warning message about projections
2017-04-18 14:02:07 -07:00
d19680e392 Try to be clearer in the warning message about projections 2017-04-18 13:24:16 -07:00
7dc586bc84 Merge branch 'master' into plugins 2017-04-17 16:01:12 -07:00
8b5168cb2b Merge pull request #398 from mapbox/attribute-types
Add -T option to coerce the types of feature attributes
2017-04-17 15:46:13 -07:00
178b5d0054 Add -T option to coerce the types of feature attributes 2017-04-17 15:20:03 -07:00
65ee2cf0a5 Merge pull request #397 from mapbox/guess-maxzoom
Add -zg option to automatically choose an appropriate maxzoom
2017-04-17 08:51:48 -07:00
242a657fc1 Fix array bounds error caught by -fsanitize=address 2017-04-13 14:23:43 -07:00
510247c2fb Add -zg option to automatically choose an appropriate maxzoom 2017-04-13 14:17:15 -07:00
e75bb4a16a Merge pull request #395 from mapbox/close-featurecollections
Clean up JSON parsing at the end of each FeatureCollection
2017-04-12 13:19:19 -07:00
198a5a06d4 Clean up JSON parsing at the end of each FeatureCollection 2017-04-12 12:45:35 -07:00
a0831cd71e Merge pull request #391 from mapbox/reformat-readme
Clean up documentation
2017-04-12 12:36:58 -07:00
f4677d5de1 Reorganize input and layer options 2017-04-12 10:16:43 -07:00
a394c9e93d Merge branch 'master' into reformat-readme 2017-04-11 17:31:22 -07:00
79b73e6317 Call out the most useful options at the start 2017-04-11 17:24:15 -07:00
ab300c2080 Forgot to format a few more options 2017-04-11 17:06:17 -07:00
5ec6ce1743 Continue to reorder and clarify options 2017-04-11 17:03:32 -07:00
63ea7bdc4e Try to reorder options into some more readable organization 2017-04-11 16:51:56 -07:00
bb365bde44 Reformatting README 2017-04-11 16:32:32 -07:00
7f918bd79b Merge pull request #390 from mapbox/layer-filter
Add tile-join options to include or exclude layers by name
2017-04-10 16:00:27 -07:00
a7be83381a Add tile-join options to include or exclude layers by name 2017-04-10 15:22:30 -07:00
94a15eaf85 Merge branch 'master' into plugins 2017-04-07 14:28:58 -07:00
da92b93b62 Merge pull request #389 from mapbox/joykuotw-master
Add --output-to-directory and --no-tile-compression options
2017-04-07 14:19:10 -07:00
f558b78380 Include tileset metadata when writing either to directory or mbtiles 2017-04-07 13:25:05 -07:00
1c1ae6a8be Update documentation and reduce use of global variables 2017-04-07 12:36:34 -07:00
b66ab10252 Add algorithms library 2017-04-07 17:03:30 +01:00
682a272f91 Add condition to prevent options -o and -e being used together 2017-04-07 16:24:29 +01:00
a320248857 Do make indent, add flag --output-to-directory or -e to write pbf files to a directory, also add flag --no-tile-compression or -pC to get raw protobuf 2017-04-07 13:33:01 +01:00
9fb1208b79 Fix indentation for rawtiles.cpp 2017-04-05 16:05:50 +01:00
29fa3d8541 Update the readme to add the flag 2017-04-05 16:02:57 +01:00
f03b89656c Seperated out to method and added test for --raw-tiles 2017-04-05 15:59:37 +01:00
aee12ac1fe Add flag --raw-tiles or -pC to get raw protobuf 2017-04-05 00:34:54 +01:00
ae4f03d92b Add missing #include 2017-03-28 17:15:41 -07:00
7d47226444 Merge branch 'master' into plugins 2017-03-28 16:42:22 -07:00
834ba19277 Add option for newline-delimited output format to tippecanoe-decode 2017-03-28 16:25:40 -07:00
8777bdf5d3 Merge pull request #382 from mapbox/reconcile
Add --description option
2017-03-22 15:42:20 -07:00
1362ac448f Add --description option to set mbtiles description 2017-03-21 11:07:15 -07:00
fa56adc530 Clean up utility functions that are also used in other projects 2017-03-16 15:06:58 -07:00
eaff7b93c5 Merge branch 'master' into plugins 2017-03-15 16:19:33 -07:00
8c6f6250b1 Merge pull request #381 from mapbox/detect-wraparound
Add --detect-longitude-wraparound option
2017-03-15 16:10:20 -07:00
ea77e3db6f Add --detect-longitude-wraparound option 2017-03-15 13:37:50 -07:00
bbf9716361 Merge pull request #380 from mapbox/short-circuit-maxzoom
Stop processing zooms when a feature reaches its explicit maxzoom tag
2017-03-15 09:51:02 -07:00
9c53268a2b Stop processing zooms when a feature reaches its explicit maxzoom tag 2017-03-14 16:14:54 -07:00
860189a577 Merge pull request #378 from mapbox/no-polygon-splitting
Remove polygon splitting, since polygon cleaning is now fast enough
2017-03-02 15:03:52 -08:00
c46f4cfc75 Remove polygon splitting, since polygon cleaning is now fast enough 2017-03-02 12:08:08 -08:00
9cbbc4c68d Merge branch 'master' into plugins-merge 2017-03-02 10:45:25 -08:00
cef4d2cd47 Merge pull request #376 from mapbox/decode-layer
Add an option to decode only specified layers
2017-03-02 10:26:21 -08:00
3a1f074c96 Add test and documentation for tippecanoe-decode -l 2017-03-01 16:01:57 -08:00
835fafe30a Add an option to decode only specified layers 2017-02-27 10:10:28 -08:00
30a987d9ba Merge pull request #374 from mapbox/multilayer-crash
Clean up layer name handling to fix layer merging crash
2017-02-20 17:24:24 -08:00
218a2fc75e Clean up layer name handling to fix layer merging crash 2017-02-20 16:19:34 -08:00
638cfef2b6 Merge pull request #368 from mapbox/division-by-0
Fix division by 0 by using more general and robust polygon-checking code
2017-02-20 14:09:42 -08:00
5bdbb8a911 Bump version number 2017-02-20 11:47:01 -08:00
55e7e20a73 Add a check for environmental variable TIPPECANOE_MAX_THREADS 2017-02-17 16:47:21 -08:00
9c1f2b2123 Guard against potentially rounding to 0 when choosing sorting unit 2017-02-17 14:14:55 -08:00
1b68dcdc22 Fix division by 0 by using more general and robust polygon-checking code 2017-02-17 13:25:56 -08:00
1cc65d61ba Merge pull request #363 from mapbox/polygon-placeholder
Fix area of placeholders for degenerate multipolygons
2017-02-08 11:52:27 -08:00
62e1018c87 Fix area of placeholders for degenerate multipolygons 2017-02-06 14:14:34 -08:00
4517bd6e90 Test with faulty replacement of polygons with big squares 2017-02-06 14:10:50 -08:00
a1fe858151 Merge pull request #358 from mapbox/wagyu-030
Upgrade to Wagyu 0.3.0; downgrade C++ requirement to C++ 11
2017-01-26 15:26:20 -08:00
31f254ac99 Upgrade to Wagyu 0.3.0; downgrade C++ requirement to C++ 11 2017-01-26 13:28:17 -08:00
5c2106c0dc Merge branch 'master' into plugins 2017-01-25 16:38:03 -08:00
28b8f1c326 Merge pull request #355 from mapbox/decode-zoomlevels
Add minzoom and maxzoom options to tippecanoe-decode
2017-01-25 10:47:06 -08:00
c74a9a8325 Add minzoom and maxzoom options to tippecanoe-decode 2017-01-24 14:15:40 -08:00
47cb2434e6 Merge branch 'master' into plugins 2017-01-19 15:48:39 -08:00
c67b5f33bd Merge pull request #352 from mapbox/warn-id
Only warn once about non-numeric/non-integer/negative feature IDs
2017-01-19 10:04:11 -08:00
5a8f9f11c0 Only warn once about non-numeric/non-integer/negative feature IDs 2017-01-18 14:26:17 -08:00
b3847c1da1 Merge pull request #350 from mapbox/c++-readme
Add instructions for upgrading g++ on Linux
2017-01-17 15:06:32 -08:00
7b5069f2f6 Start writing some documentation 2017-01-13 15:57:52 -08:00
150e3663e1 Pass the index, sequence, and extent through the prefilter when needed 2017-01-13 14:59:11 -08:00
aa75f4a4c4 Merge branch 'master' into plugins 2017-01-12 16:03:55 -08:00
3549aa35e8 Merge branch 'master' into plugins 2017-01-05 15:02:32 -08:00
bf619a315c Merge branch 'master' into plugins 2017-01-03 13:25:05 -08:00
8e17c3aa09 Update the layer list outside of the property loop 2017-01-02 16:33:44 -08:00
cf6a2d3a67 Provide layer names to postfilter and read layer names back in 2016-12-21 11:47:49 -08:00
71ac6596af Warn about broken pipes in filters instead of exiting abruptly 2016-12-21 10:10:22 -08:00
6a5461763c Fix reordering of attributes and failure to update layer name table 2016-12-20 16:41:23 -08:00
a2060299c9 Fix arithmetic overflow that was breaking some prefilter polygons 2016-12-20 15:59:10 -08:00
854dc2bca5 Merge branch 'master' into plugins 2016-12-20 14:15:06 -08:00
4fc671f1d1 Merge branch 'master' into plugins 2016-12-14 11:29:58 -08:00
c2fa8e3633 Switch the segment and layer ID based on prefilter output 2016-12-12 17:00:45 -08:00
ad4060eced Fix coordinate rounding error in the prefilter 2016-12-12 16:12:22 -08:00
9c0e2cdfa7 Fill out layermaps when reading the output of the prefilter 2016-12-12 16:08:08 -08:00
5e7f718afc Fill out layermaps when reading the output of the postfilter 2016-12-12 15:21:05 -08:00
57ff54e683 Fix coordinate overflow by increasing integer size 2016-12-09 16:35:41 -08:00
5dc773ffae Carry attribute keys and values through from the prefilter 2016-12-09 15:54:47 -08:00
0e5b513637 Start getting features (just geometry so far) back from the prefilter 2016-12-09 15:35:57 -08:00
a338f5390f Fix where I was closing the prefilter pipe in the wrong thread 2016-12-09 14:15:17 -08:00
c8a8915064 Push prefilter writing into a thread (but something is crashing) 2016-12-09 14:01:07 -08:00
9f10f48bfb Pull feature deserialization and rewriting out of the loop 2016-12-09 11:53:50 -08:00
5194a39c16 Factor out clipping to tile boundaries; test random attributes & layers 2016-12-09 10:47:03 -08:00
daf1941ba9 Add missing #include 2016-12-08 17:22:07 -08:00
569825324a Factor out feature deserialization 2016-12-08 17:11:37 -08:00
16df86c26e Set up and tear down the prefilter pipeline 2016-12-08 16:13:02 -08:00
d940eb1cef Factor out filter setup from the reading and writing loops 2016-12-08 15:46:12 -08:00
d1dc310bbc The GeoJSON-producing part of prefiltering 2016-12-08 15:13:38 -08:00
e3823c966c Use more idiomatic C++ to quote JSON strings 2016-12-08 14:02:06 -08:00
5960a15fcd Add magic #defines to avoid default small Mac stdio limits 2016-12-08 12:33:02 -08:00
6530e155eb Don't put a comma between features in filter output 2016-12-08 11:14:06 -08:00
8cf81483b1 Add missing #include 2016-12-08 10:31:27 -08:00
3f14a0dd55 Factor out conversion from JSON types to vector tile attribute types 2016-12-07 16:17:17 -08:00
5554b9cbba Add the command-line option to specify the filter 2016-12-07 12:15:57 -08:00
a114a890d8 Keep from leaking other pipe file descriptors to unrelated children 2016-12-07 11:26:03 -08:00
58e268777c Missed a file for the close-on-exec flag 2016-12-07 11:19:29 -08:00
3d1ceac96a Lock around setup of pipeline and filter process 2016-12-07 11:16:34 -08:00
87d86ecfc9 Set close-on-exec flag for most file descriptors 2016-12-07 10:57:56 -08:00
7514797c4c Add missing #includes 2016-12-06 17:25:23 -08:00
d8fe69a99e Round coordinates instead of truncating to avoid projection error 2016-12-06 17:19:22 -08:00
679189e5a2 Parse JSON coming back in and turn it back into features 2016-12-06 17:19:22 -08:00
c82e3e98c3 Factor out parsing the geometry coordinate array 2016-12-06 17:19:22 -08:00
4256473283 More reorganization to reuse JSON parsing 2016-12-06 17:19:22 -08:00
112f451c66 Move JSON-writing again to keep it from requiring all plugin code 2016-12-06 17:19:22 -08:00
72478ae13e Be more consistent about checking for errors from close() 2016-12-06 17:19:22 -08:00
94bebbd276 Write GeoJSON to the filter and read (but don't parse) what comes back 2016-12-06 17:19:22 -08:00
adfceed554 Factor out conversion from vector tile to GeoJSON 2016-12-06 17:19:22 -08:00
277 changed files with 165217 additions and 26150 deletions

5
.dockerignore Normal file
View File

@ -0,0 +1,5 @@
# Don't copy Dockerfile or git items
.gitignore
.git
Dockerfile
Dockerfile.centos7

15
.gitignore vendored
View File

@ -4,6 +4,9 @@
*.o
*.obj
# Autogenerated dependencies
*.d
# Precompiled Headers
*.gch
*.pch
@ -27,3 +30,15 @@
*.exe
*.out
*.app
tippecanoe
tile-join
tippecanoe-decode
tippecanoe-enumerate
tippecanoe-json-tool
unit
# Vim
*.swp
# Mac
.DS_Store

View File

@ -1,9 +1,37 @@
language: generic
language: node_js
node_js:
- "6"
sudo: false
matrix:
include:
# test on docker+centos7
- os: linux
compiler: clang
services:
- docker
sudo: true
dist: trusty
env: DOCKERFILE=Dockerfile.centos7
before_install: []
install:
- docker build -t tippecanoe-image -f ${DOCKERFILE} .
script:
- docker run -it tippecanoe-image
# test on docker+ubuntu
- os: linux
compiler: clang
services:
- docker
sudo: true
dist: trusty
env: DOCKERFILE=Dockerfile
before_install: []
install:
- docker build -t tippecanoe-image -f ${DOCKERFILE} .
script:
- docker run -it tippecanoe-image
# debug+integer-santizer build
- os: linux
compiler: clang
@ -15,7 +43,7 @@ matrix:
# debug+leak+address-sanitizer build
- os: linux
compiler: clang
env: CLANG_VERSION='3.8.0' BUILDTYPE=Debug ASAN_OPTIONS=detect_leaks=1 CC="clang-3.8" CXX="clang++-3.8" CXXFLAGS="-fsanitize=address" CFLAGS="-fsanitize=address" LDFLAGS="-fsanitize=address"
env: CLANG_VERSION='3.8.0' BUILDTYPE=Debug ASAN_OPTIONS=detect_leaks=1 CC="clang-3.8" CXX="clang++-3.8" CXXFLAGS="-fsanitize=address,undefined" CFLAGS="-fsanitize=address,undefined" LDFLAGS="-fsanitize=address,undefined" FEWER=true
addons:
apt:
sources: ['ubuntu-toolchain-r-test' ]
@ -24,6 +52,13 @@ matrix:
- os: linux
compiler: clang
env: CLANG_VERSION='3.8.0' BUILDTYPE=Debug CC="clang-3.8" CXX="clang++-3.8" CXXFLAGS="--coverage" CFLAGS="--coverage" LDFLAGS="--coverage"
after_script:
- mason install llvm-cov 3.9.1
- mason link llvm-cov 3.9.1
- which llvm-cov
- curl -S -f https://codecov.io/bash -o codecov
- chmod +x codecov
- ./codecov -x "llvm-cov gcov" -Z
addons:
apt:
sources: ['ubuntu-toolchain-r-test' ]
@ -68,9 +103,8 @@ install:
- BUILDTYPE=${BUILDTYPE} make -j
script:
- BUILDTYPE=${BUILDTYPE} make test
- if [ -n "${COVERAGE}" ]; then
/usr/bin/llvm-cov-3.5 -lp *.o;
pip install --user cpp-coveralls;
~/.local/bin/coveralls --no-gcov -i ./ --exclude clipper;
- npm install geobuf
- if [ -n "${FEWER}" ]; then
BUILDTYPE=${BUILDTYPE} make fewer-tests; else
BUILDTYPE=${BUILDTYPE} make test geobuf-test;
fi

View File

@ -1,3 +1,305 @@
## 1.29.0
* Add the option to specify layer file, name, and description as JSON
* Add the option to specify the description for attributes in the
tileset metadata
* In CSV input, a trailing comma now counts as a trailing empty field
* In tippecanoe-json-tool, an empty CSV field is now an empty string,
not null (for consistency with tile-join)
## 1.28.1
* Explicitly check for infinite and not-a-number input coordinates
## 1.28.0
* Directly support gzipped GeoJSON as input files
## 1.27.16
* Fix thread safety issues related to the out-of-disk-space checker
## 1.27.15
* --extend-zooms-if-still-dropping now also extends zooms if features
are dropped by --force-feature-limit
## 1.27.14
* Use an exit status of 100 if some zoom levels were successfully
written but not all zoom levels could be tiled.
## 1.27.13
* Allow filtering features by zoom level in conditional expressions
* Lines in CSV input with empty geometry columns will be ignored
## 1.27.12
* Check integrity of sqlite3 file before decoding or tile-joining
## 1.27.11
* Always include tile and layer in tippecanoe-decode, fixing corrupt JSON.
* Clean up writing of JSON in general.
## 1.27.10
* Add --progress-interval setting to reduce progress indicator frequency
## 1.27.9
* Make clusters look better by averaging locations of clustered points
## 1.27.8
* Add --accumulate-attribute to keep attributes of dropped, coalesced,
or clustered features
* Make sure numeric command line arguments are actually numbers
* Don't coalesce features whose non-string-pool attributes don't match
## 1.27.7
* Add an option to produce only a single tile
* Retain non-ASCII characters in layernames generated from filenames
* Remember to close input files after reading them
* Add --coalesce-fraction-as-needed and --coalesce-densest-as-needed
* Report distances in both feet and meters
## 1.27.6
* Fix opportunities for integer overflow and out-of-bounds references
## 1.27.5
* Add --cluster-densest-as-needed to cluster features
* Add --maximum-tile-features to set the maximum number of features in a tile
## 1.27.4
* Support CSV point input
* Don't coalesce features that have different IDs but are otherwise identical
* Remove the 700-point limit on coalesced features, since polygon merging
is no longer a performance problem
## 1.27.3
* Clean up duplicated code for reading tiles from a directory
## 1.27.2
* Tippecanoe-decode can decode directories of tiles, not just mbtiles
* The --allow-existing option works on directories of tiles
* Trim .geojson, not just .json, when making layer names from filenames
## 1.27.1
* Fix a potential null pointer when parsing GeoJSON with bare geometries
* Fix a bug that could cause the wrong features to be coalesced when
input was parsed in parallel
## 1.27.0
* Add tippecanoe-json-tool for sorting and joining GeoJSON files
* Fix problem where --detect-shared-borders could simplify polygons away
* Attach --coalesce-smallest-as-needed leftovers to the last feature, not the first
* Fix overflow when iterating through 0-length lists backwards
## 1.26.7
* Add an option to quiet the progress indicator but not warnings
* Enable more compiler warnings and fix related problems
## 1.26.6
* Be more careful about checking for overflow when parsing numbers
## 1.26.5
* Support UTF-16 surrogate pairs in JSON strings
* Support arbitrarily long lines in CSV files.
* Treat CSV fields as numbers only if they follow JSON number syntax
## 1.26.4
* Array bounds bug fix in binary to decimal conversion library
## 1.26.3
* Guard against impossible coordinates when decoding tilesets
## 1.26.2
* Make sure to encode tile-joined integers as ints, not doubles
## 1.26.1
* Add tile-join option to rename layers
## 1.26.0
Fix error when parsing attributes with empty-string keys
## 1.25.0
* Add --coalesce-smallest-as-needed strategy for reducing tile sizes
* Add --stats option to tipppecanoe-decode
## 1.24.1
* Limit the size and depth of the string pool for better performance
## 1.24.0
* Add feature filters using the Mapbox GL Style Specification filter syntax
## 1.23.0
* Add input support for Geobuf file format
## 1.22.2
* Add better diagnostics for NaN or Infinity in input JSON
## 1.22.1
* Fix tilestats generation when long string attribute values are elided
* Add option not to produce tilestats
* Add tile-join options to select zoom levels to copy
## 1.22.0
* Add options to filter each tile's contents through a shell pipeline
## 1.21.0
* Generate layer, feature, and attribute statistics as part of tileset metadata
## 1.20.1
* Close mbtiles file properly when there are no valid features in the input
## 1.20.0
* Add long options to tippecanoe-decode and tile-join. Add --quiet to tile-join.
## 1.19.3
* Upgrade protozero to version 1.5.2
## 1.19.2
* Ignore UTF-8 byte order mark if present
## 1.19.1
* Add an option to increase maxzoom if features are still being dropped
## 1.19.0
* Tile-join can merge and create directories, not only mbtiles
* Maxzoom guessing (-zg) takes into account resolution within each feature
## 1.18.2
* Fix crash with very long (>128K) attribute values
## 1.18.1
* Only warn once about invalid polygons in tippecanoe-decode
## 1.18.0
* Fix compression of tiles in tile-join
* Calculate the tileset bounding box in tile-join from the tile boundaries
## 1.17.7
* Enforce polygon winding and closure rules in tippecanoe-decode
## 1.17.6
* Add tile-join options to set name, attribution, description
## 1.17.5
* Preserve the tileset names from the source mbtiles in tile-join
## 1.17.4
* Fix RFC 8142 support: Don't try to split *all* memory mapped files
## 1.17.3
* Support RFC 8142 GeoJSON text sequences
## 1.17.2
* Organize usage output the same way as in the README
## 1.17.1
* Add -T option to coerce the types of feature attributes
## 1.17.0
* Add -zg option to guess an appropriate maxzoom
## 1.16.17
* Clean up JSON parsing at the end of each FeatureCollection
to avoid running out of memory
## 1.16.16
* Add tile-join options to include or exclude specific layers
## 1.16.15
* Add --output-to-directory and --no-tile-compression options
## 1.16.14
* Add --description option for mbtiles metadata
* Clean up some utility functions
## 1.16.13
* Add --detect-longitude-wraparound option
## 1.16.12
* Stop processing higher zooms when a feature reaches its explicit maxzoom tag
## 1.16.11
* Remove polygon splitting, since polygon cleaning is now fast enough
## 1.16.10
* Add a tippecanoe-decode option to specify layer names
## 1.16.9
* Clean up layer name handling to fix layer merging crash
## 1.16.8
* Fix some code that could sometimes try to divide by zero
* Add check for $TIPPECANOE_MAX_THREADS environmental variable
## 1.16.7
* Fix area of placeholders for degenerate multipolygons
## 1.16.6
* Upgrade Wagyu to 0.3.0; downgrade C++ requirement to C++ 11
## 1.16.5
* Add -z and -Z options to tippecanoe-decode
## 1.16.4
* Use Wagyu's quick_lr_clip() instead of a separate implementation

19
Dockerfile Normal file
View File

@ -0,0 +1,19 @@
# Start from ubuntu
FROM ubuntu:16.04
# Update repos and install dependencies
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install build-essential libsqlite3-dev zlib1g-dev
# Create a directory and copy in all files
RUN mkdir -p /tmp/tippecanoe-src
WORKDIR /tmp/tippecanoe-src
COPY . /tmp/tippecanoe-src
# Build tippecanoe
RUN make \
&& make install
# Run the tests
CMD make test

15
Dockerfile.centos7 Normal file
View File

@ -0,0 +1,15 @@
FROM centos:7
RUN yum install -y make sqlite-devel zlib-devel bash git gcc-c++
# Create a directory and copy in all files
RUN mkdir -p /tmp/tippecanoe-src
WORKDIR /tmp/tippecanoe-src
COPY . /tmp/tippecanoe-src
# Build tippecanoe
RUN make \
&& make install
# Run the tests
CMD make test

View File

@ -1,4 +1,4 @@
## [Visualizing a Month of Lightning](http://rousseau.io/2015/03/23/visualizing-a-month-of-lightning/) by Jordan Rousseau
## [Visualizing a Month of Lightning](http://rousseau.io/2015/03/23/visualizing-a-month-of-lightning) by Jordan Rousseau
![](http://rousseau.io/assets/img/ltg-studio-style.png)

191
Makefile
View File

@ -7,9 +7,9 @@ SHELL = /bin/bash
CC := $(CC)
CXX := $(CXX)
CFLAGS := $(CFLAGS)
CXXFLAGS := $(CXXFLAGS) -std=c++14
CXXFLAGS := $(CXXFLAGS) -std=c++11
LDFLAGS := $(LDFLAGS)
WARNING_FLAGS := -Wall -Wshadow -Wsign-compare
WARNING_FLAGS := -Wall -Wshadow -Wsign-compare -Wextra -Wunreachable-code -Wuninitialized -Wshadow
RELEASE_FLAGS := -O3 -DNDEBUG
DEBUG_FLAGS := -O0 -DDEBUG -fno-inline-functions -fno-omit-frame-pointer
@ -19,21 +19,22 @@ else
FINAL_FLAGS := -g $(WARNING_FLAGS) $(DEBUG_FLAGS)
endif
all: tippecanoe tippecanoe-enumerate tippecanoe-decode tile-join unit
all: tippecanoe tippecanoe-enumerate tippecanoe-decode tile-join unit tippecanoe-json-tool
docs: man/tippecanoe.1
install: tippecanoe tippecanoe-enumerate tippecanoe-decode tile-join
install: tippecanoe tippecanoe-enumerate tippecanoe-decode tile-join tippecanoe-json-tool
mkdir -p $(PREFIX)/bin
mkdir -p $(MANDIR)
cp tippecanoe $(PREFIX)/bin/tippecanoe
cp tippecanoe-enumerate $(PREFIX)/bin/tippecanoe-enumerate
cp tippecanoe-decode $(PREFIX)/bin/tippecanoe-decode
cp tippecanoe-json-tool $(PREFIX)/bin/tippecanoe-json-tool
cp tile-join $(PREFIX)/bin/tile-join
cp man/tippecanoe.1 $(MANDIR)/tippecanoe.1
uninstall:
rm $(PREFIX)/bin/tippecanoe $(PREFIX)/bin/tippecanoe-enumerate $(PREFIX)/bin/tippecanoe-decode $(PREFIX)/bin/tile-join $(MANDIR)/tippecanoe.1
rm $(PREFIX)/bin/tippecanoe $(PREFIX)/bin/tippecanoe-enumerate $(PREFIX)/bin/tippecanoe-decode $(PREFIX)/bin/tile-join $(MANDIR)/tippecanoe.1 $(PREFIX)/bin/tippecanoe-json-tool
man/tippecanoe.1: README.md
md2man-roff README.md > man/tippecanoe.1
@ -46,16 +47,19 @@ C = $(wildcard *.c) $(wildcard *.cpp)
INCLUDES = -I/usr/local/include -I.
LIBS = -L/usr/local/lib
tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o mvt.o serial.o main.o text.o
tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o mvt.o serial.o main.o text.o dirtiles.o plugin.o read_json.o write_json.o geobuf.o evaluator.o geocsv.o csv.o
$(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread
tippecanoe-enumerate: enumerate.o
$(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) -lsqlite3
tippecanoe-decode: decode.o projection.o mvt.o
tippecanoe-decode: decode.o projection.o mvt.o write_json.o text.o jsonpull/jsonpull.o dirtiles.o
$(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3
tile-join: tile-join.o projection.o pool.o mbtiles.o mvt.o memfile.o
tile-join: tile-join.o projection.o pool.o mbtiles.o mvt.o memfile.o dirtiles.o jsonpull/jsonpull.o text.o evaluator.o csv.o write_json.o
$(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread
tippecanoe-json-tool: jsontool.o jsonpull/jsonpull.o csv.o text.o
$(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread
unit: unit.o text.o
@ -78,71 +82,206 @@ indent:
TESTS = $(wildcard tests/*/out/*.json)
SPACE = $(NULL) $(NULL)
test: tippecanoe tippecanoe-decode $(addsuffix .check,$(TESTS)) parallel-test pbf-test join-test enumerate-test unit
test: tippecanoe tippecanoe-decode $(addsuffix .check,$(TESTS)) raw-tiles-test parallel-test pbf-test join-test enumerate-test decode-test join-filter-test unit json-tool-test allow-existing-test csv-test layer-json-test
./unit
suffixes = json json.gz
# Work around Makefile and filename punctuation limits: _ for space, @ for :, % for /
%.json.check:
./tippecanoe -aD -f -o $@.mbtiles $(subst @,:,$(subst %,/,$(subst _, ,$(patsubst %.json.check,%,$(word 4,$(subst /, ,$@)))))) $(wildcard $(subst $(SPACE),/,$(wordlist 1,2,$(subst /, ,$@)))/*.json) < /dev/null
./tippecanoe -a@ -f -o $@.mbtiles $(subst @,:,$(subst %,/,$(subst _, ,$(patsubst %.json.check,%,$(word 4,$(subst /, ,$@)))))) $(foreach suffix,$(suffixes),$(wildcard $(subst $(SPACE),/,$(wordlist 1,2,$(subst /, ,$@)))/*.$(suffix))) < /dev/null
./tippecanoe-decode $@.mbtiles > $@.out
cmp $(patsubst %.check,%,$@) $@.out
cmp $@.out $(patsubst %.check,%,$@)
rm $@.out $@.mbtiles
# Don't test overflow with geobuf, because it fails (https://github.com/mapbox/geobuf/issues/87)
geobuf-test: tippecanoe-json-tool $(addsuffix .checkbuf,$(filter-out tests/overflow/out/-z0.json,$(TESTS)))
# For quicker address sanitizer build, hope that regular JSON parsing is tested enough by parallel and join tests
fewer-tests: tippecanoe tippecanoe-decode geobuf-test raw-tiles-test parallel-test pbf-test join-test enumerate-test decode-test join-filter-test unit
# XXX Use proper makefile rules instead of a for loop
%.json.checkbuf:
for i in $(wildcard $(subst $(SPACE),/,$(wordlist 1,2,$(subst /, ,$@)))/*.json); do ./tippecanoe-json-tool -w $$i | ./node_modules/geobuf/bin/json2geobuf > $$i.geobuf; done
for i in $(wildcard $(subst $(SPACE),/,$(wordlist 1,2,$(subst /, ,$@)))/*.json.gz); do gzip -dc $$i | ./tippecanoe-json-tool -w | ./node_modules/geobuf/bin/json2geobuf > $$i.geobuf; done
./tippecanoe -a@ -f -o $@.mbtiles $(subst @,:,$(subst %,/,$(subst _, ,$(patsubst %.json.checkbuf,%,$(word 4,$(subst /, ,$@)))))) $(foreach suffix,$(suffixes),$(addsuffix .geobuf,$(wildcard $(subst $(SPACE),/,$(wordlist 1,2,$(subst /, ,$@)))/*.$(suffix)))) < /dev/null
./tippecanoe-decode $@.mbtiles | sed 's/checkbuf/check/g' > $@.out
cmp $@.out $(patsubst %.checkbuf,%,$@)
rm $@.out $@.mbtiles
parallel-test:
mkdir -p tests/parallel
perl -e 'for ($$i = 0; $$i < 20; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; print "{ \"type\": \"Feature\", \"properties\": { \"yes\": \"no\", \"who\": 1 }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in1.json
perl -e 'for ($$i = 0; $$i < 20; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; $$k = rand(1); $$v = rand(1); print "{ \"type\": \"Feature\", \"properties\": { \"yes\": \"no\", \"who\": 1, \"$$k\": \"$$v\" }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in1.json
perl -e 'for ($$i = 0; $$i < 300000; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; print "{ \"type\": \"Feature\", \"properties\": { }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in2.json
perl -e 'for ($$i = 0; $$i < 20; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; print "{ \"type\": \"Feature\", \"properties\": { }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in3.json
perl -e 'for ($$i = 0; $$i < 20; $$i++) { $$lon = rand(360) - 180; $$lat = rand(180) - 90; $$v = rand(1); print "{ \"type\": \"Feature\", \"properties\": { }, \"tippecanoe\": { \"layer\": \"$$v\" }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ $$lon, $$lat ] } }\n"; }' > tests/parallel/in4.json
echo -n "" > tests/parallel/empty1.json
echo "" > tests/parallel/empty2.json
./tippecanoe -z5 -f -pi -l test -n test -o tests/parallel/linear-file.mbtiles tests/parallel/in[123].json tests/parallel/empty[12].json
./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-file.mbtiles tests/parallel/in[123].json tests/parallel/empty[12].json
cat tests/parallel/in[123].json | ./tippecanoe -z5 -f -pi -l test -n test -o tests/parallel/linear-pipe.mbtiles
cat tests/parallel/in[123].json | ./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-pipe.mbtiles
./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-pipes.mbtiles <(cat tests/parallel/in1.json) <(cat tests/parallel/empty1.json) <(cat tests/parallel/empty2.json) <(cat tests/parallel/in2.json) /dev/null <(cat tests/parallel/in3.json)
./tippecanoe -z5 -f -pi -l test -n test -o tests/parallel/linear-file.mbtiles tests/parallel/in[1234].json tests/parallel/empty[12].json
./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-file.mbtiles tests/parallel/in[1234].json tests/parallel/empty[12].json
cat tests/parallel/in[1234].json | ./tippecanoe -z5 -f -pi -l test -n test -o tests/parallel/linear-pipe.mbtiles
cat tests/parallel/in[1234].json | ./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-pipe.mbtiles
cat tests/parallel/in[1234].json | sed 's/^/@/' | tr '@' '\036' | ./tippecanoe -z5 -f -pi -l test -n test -o tests/parallel/implicit-pipe.mbtiles
./tippecanoe -z5 -f -pi -l test -n test -P -o tests/parallel/parallel-pipes.mbtiles <(cat tests/parallel/in1.json) <(cat tests/parallel/empty1.json) <(cat tests/parallel/empty2.json) <(cat tests/parallel/in2.json) /dev/null <(cat tests/parallel/in3.json) <(cat tests/parallel/in4.json)
./tippecanoe-decode tests/parallel/linear-file.mbtiles > tests/parallel/linear-file.json
./tippecanoe-decode tests/parallel/parallel-file.mbtiles > tests/parallel/parallel-file.json
./tippecanoe-decode tests/parallel/linear-pipe.mbtiles > tests/parallel/linear-pipe.json
./tippecanoe-decode tests/parallel/parallel-pipe.mbtiles > tests/parallel/parallel-pipe.json
./tippecanoe-decode tests/parallel/implicit-pipe.mbtiles > tests/parallel/implicit-pipe.json
./tippecanoe-decode tests/parallel/parallel-pipes.mbtiles > tests/parallel/parallel-pipes.json
cmp tests/parallel/linear-file.json tests/parallel/parallel-file.json
cmp tests/parallel/linear-file.json tests/parallel/linear-pipe.json
cmp tests/parallel/linear-file.json tests/parallel/parallel-pipe.json
cmp tests/parallel/linear-file.json tests/parallel/implicit-pipe.json
cmp tests/parallel/linear-file.json tests/parallel/parallel-pipes.json
rm tests/parallel/*.mbtiles tests/parallel/*.json
raw-tiles-test:
./tippecanoe -f -e tests/raw-tiles/raw-tiles -r1 tests/raw-tiles/hackspots.geojson -pC
diff -x '*.DS_Store' -rq tests/raw-tiles/raw-tiles tests/raw-tiles/compare
rm -rf tests/raw-tiles/raw-tiles
decode-test:
mkdir -p tests/muni/decode
./tippecanoe -z11 -Z11 -f -o tests/muni/decode/multi.mbtiles tests/muni/*.json
./tippecanoe-decode -l subway tests/muni/decode/multi.mbtiles > tests/muni/decode/multi.mbtiles.json.check
./tippecanoe-decode -c tests/muni/decode/multi.mbtiles > tests/muni/decode/multi.mbtiles.pipeline.json.check
./tippecanoe-decode tests/muni/decode/multi.mbtiles 11 327 791 > tests/muni/decode/multi.mbtiles.onetile.json.check
./tippecanoe-decode --stats tests/muni/decode/multi.mbtiles > tests/muni/decode/multi.mbtiles.stats.json.check
cmp tests/muni/decode/multi.mbtiles.json.check tests/muni/decode/multi.mbtiles.json
cmp tests/muni/decode/multi.mbtiles.pipeline.json.check tests/muni/decode/multi.mbtiles.pipeline.json
cmp tests/muni/decode/multi.mbtiles.onetile.json.check tests/muni/decode/multi.mbtiles.onetile.json
cmp tests/muni/decode/multi.mbtiles.stats.json.check tests/muni/decode/multi.mbtiles.stats.json
rm -f tests/muni/decode/multi.mbtiles.json.check tests/muni/decode/multi.mbtiles tests/muni/decode/multi.mbtiles.pipeline.json.check tests/muni/decode/multi.mbtiles.stats.json.check tests/muni/decode/multi.mbtiles.onetile.json.check
pbf-test:
./tippecanoe-decode tests/pbf/11-328-791.vector.pbf 11 328 791 > tests/pbf/11-328-791.vector.pbf.out
cmp tests/pbf/11-328-791.json tests/pbf/11-328-791.vector.pbf.out
rm tests/pbf/11-328-791.vector.pbf.out
./tippecanoe-decode -t EPSG:3857 tests/pbf/11-328-791.vector.pbf 11 328 791 > tests/pbf/11-328-791.3857.vector.pbf.out
./tippecanoe-decode -s EPSG:3857 tests/pbf/11-328-791.vector.pbf 11 328 791 > tests/pbf/11-328-791.3857.vector.pbf.out
cmp tests/pbf/11-328-791.3857.json tests/pbf/11-328-791.3857.vector.pbf.out
rm tests/pbf/11-328-791.3857.vector.pbf.out
enumerate-test:
./tippecanoe -z5 -f -o tests/ne_110m_admin_0_countries/out/enum.mbtiles tests/ne_110m_admin_0_countries/in.json
./tippecanoe -z5 -f -o tests/ne_110m_admin_0_countries/out/enum.mbtiles tests/ne_110m_admin_0_countries/in.json.gz
./tippecanoe-enumerate tests/ne_110m_admin_0_countries/out/enum.mbtiles > tests/ne_110m_admin_0_countries/out/enum.check
cmp tests/ne_110m_admin_0_countries/out/enum tests/ne_110m_admin_0_countries/out/enum.check
rm tests/ne_110m_admin_0_countries/out/enum.mbtiles tests/ne_110m_admin_0_countries/out/enum.check
join-test:
./tippecanoe -f -z12 -o tests/join-population/tabblock_06001420.mbtiles tests/join-population/tabblock_06001420.json
./tippecanoe -f -z12 -o tests/join-population/tabblock_06001420.mbtiles tests/join-population/tabblock_06001420.json
join-test: tile-join
./tippecanoe -f -z12 -o tests/join-population/tabblock_06001420.mbtiles -YALAND10:'Land area' -L'{"file": "tests/join-population/tabblock_06001420.json", "description": "population"}'
./tippecanoe -f -Z5 -z10 -o tests/join-population/macarthur.mbtiles -l macarthur tests/join-population/macarthur.json
./tile-join -f -Z6 -z9 -o tests/join-population/macarthur-6-9.mbtiles tests/join-population/macarthur.mbtiles
./tippecanoe-decode tests/join-population/macarthur-6-9.mbtiles > tests/join-population/macarthur-6-9.mbtiles.json.check
cmp tests/join-population/macarthur-6-9.mbtiles.json.check tests/join-population/macarthur-6-9.mbtiles.json
rm -f tests/join-population/macarthur-6-9.mbtiles.json.check tests/join-population/macarthur-6-9.mbtiles
./tippecanoe -f -d10 -D10 -Z9 -z11 -o tests/join-population/macarthur2.mbtiles -l macarthur tests/join-population/macarthur2.json
./tile-join -f -o tests/join-population/joined.mbtiles -x GEOID10 -c tests/join-population/population.csv tests/join-population/tabblock_06001420.mbtiles
./tile-join --quiet --force -o tests/join-population/joined.mbtiles -x GEOID10 -c tests/join-population/population.csv tests/join-population/tabblock_06001420.mbtiles
./tile-join --quiet --force --no-tile-stats -o tests/join-population/joined-no-tile-stats.mbtiles -x GEOID10 -c tests/join-population/population.csv tests/join-population/tabblock_06001420.mbtiles
./tile-join -f -i -o tests/join-population/joined-i.mbtiles -x GEOID10 -c tests/join-population/population.csv tests/join-population/tabblock_06001420.mbtiles
./tile-join -f -o tests/join-population/merged.mbtiles tests/join-population/tabblock_06001420.mbtiles tests/join-population/macarthur.mbtiles tests/join-population/macarthur2.mbtiles
./tile-join -f -c tests/join-population/windows.csv -o tests/join-population/windows.mbtiles tests/join-population/macarthur.mbtiles
./tippecanoe-decode tests/join-population/joined.mbtiles > tests/join-population/joined.mbtiles.json.check
./tippecanoe-decode --maximum-zoom=11 --minimum-zoom=4 tests/join-population/joined.mbtiles > tests/join-population/joined.mbtiles.json.check
./tippecanoe-decode --maximum-zoom=11 --minimum-zoom=4 tests/join-population/joined-no-tile-stats.mbtiles > tests/join-population/joined-no-tile-stats.mbtiles.json.check
./tippecanoe-decode tests/join-population/joined-i.mbtiles > tests/join-population/joined-i.mbtiles.json.check
./tippecanoe-decode tests/join-population/merged.mbtiles > tests/join-population/merged.mbtiles.json.check
./tippecanoe-decode tests/join-population/windows.mbtiles > tests/join-population/windows.mbtiles.json.check
cmp tests/join-population/joined.mbtiles.json.check tests/join-population/joined.mbtiles.json
cmp tests/join-population/joined-no-tile-stats.mbtiles.json.check tests/join-population/joined-no-tile-stats.mbtiles.json
cmp tests/join-population/joined-i.mbtiles.json.check tests/join-population/joined-i.mbtiles.json
cmp tests/join-population/merged.mbtiles.json.check tests/join-population/merged.mbtiles.json
cmp tests/join-population/windows.mbtiles.json.check tests/join-population/windows.mbtiles.json
rm tests/join-population/tabblock_06001420.mbtiles tests/join-population/joined.mbtiles tests/join-population/joined-i.mbtiles tests/join-population/joined.mbtiles.json.check tests/join-population/joined-i.mbtiles.json.check tests/join-population/macarthur.mbtiles tests/join-population/merged.mbtiles tests/join-population/merged.mbtiles.json.check tests/join-population/macarthur2.mbtiles tests/join-population/windows.mbtiles tests/join-population/windows.mbtiles.json.check
./tile-join -f -l macarthur -n "macarthur name" -N "macarthur description" -A "macarthur attribution" -o tests/join-population/just-macarthur.mbtiles tests/join-population/merged.mbtiles
./tile-join -f -L macarthur -o tests/join-population/no-macarthur.mbtiles tests/join-population/merged.mbtiles
./tippecanoe-decode tests/join-population/just-macarthur.mbtiles > tests/join-population/just-macarthur.mbtiles.json.check
./tippecanoe-decode tests/join-population/no-macarthur.mbtiles > tests/join-population/no-macarthur.mbtiles.json.check
cmp tests/join-population/just-macarthur.mbtiles.json.check tests/join-population/just-macarthur.mbtiles.json
cmp tests/join-population/no-macarthur.mbtiles.json.check tests/join-population/no-macarthur.mbtiles.json
./tile-join --no-tile-compression -f -e tests/join-population/raw-merged-folder tests/join-population/tabblock_06001420.mbtiles tests/join-population/macarthur.mbtiles tests/join-population/macarthur2.mbtiles
diff -x '*.DS_Store' -rq tests/join-population/raw-merged-folder tests/join-population/raw-merged-folder-compare
./tippecanoe -z12 -f -e tests/join-population/tabblock_06001420-folder -YALAND10:'Land area' -L'{"file": "tests/join-population/tabblock_06001420.json", "description": "population"}'
./tippecanoe -Z5 -z10 -f -e tests/join-population/macarthur-folder -l macarthur tests/join-population/macarthur.json
./tippecanoe -d10 -D10 -Z9 -z11 -f -e tests/join-population/macarthur2-folder -l macarthur tests/join-population/macarthur2.json
./tile-join -f -o tests/join-population/merged-folder.mbtiles tests/join-population/tabblock_06001420-folder tests/join-population/macarthur-folder tests/join-population/macarthur2-folder
./tippecanoe-decode tests/join-population/merged-folder.mbtiles > tests/join-population/merged-folder.mbtiles.json.check
cmp tests/join-population/merged-folder.mbtiles.json.check tests/join-population/merged-folder.mbtiles.json
./tile-join -n "merged name" -N "merged description" -f -e tests/join-population/merged-mbtiles-to-folder tests/join-population/tabblock_06001420.mbtiles tests/join-population/macarthur.mbtiles tests/join-population/macarthur2.mbtiles
./tile-join -n "merged name" -N "merged description" -f -e tests/join-population/merged-folders-to-folder tests/join-population/tabblock_06001420-folder tests/join-population/macarthur-folder tests/join-population/macarthur2-folder
diff -x '*.DS_Store' -rq tests/join-population/merged-mbtiles-to-folder tests/join-population/merged-folders-to-folder
./tile-join -f -c tests/join-population/windows.csv -o tests/join-population/windows-merged.mbtiles tests/join-population/macarthur.mbtiles tests/join-population/macarthur2-folder
./tile-join -c tests/join-population/windows.csv -f -e tests/join-population/windows-merged-folder tests/join-population/macarthur.mbtiles tests/join-population/macarthur2-folder
./tile-join -f -o tests/join-population/windows-merged2.mbtiles tests/join-population/windows-merged-folder
./tippecanoe-decode tests/join-population/windows-merged.mbtiles > tests/join-population/windows-merged.mbtiles.json.check
./tippecanoe-decode tests/join-population/windows-merged2.mbtiles > tests/join-population/windows-merged2.mbtiles.json.check
cmp tests/join-population/windows-merged.mbtiles.json.check tests/join-population/windows-merged2.mbtiles.json.check
./tile-join -f -o tests/join-population/macarthur-and-macarthur2-merged.mbtiles tests/join-population/macarthur.mbtiles tests/join-population/macarthur2-folder
./tile-join -f -e tests/join-population/macarthur-and-macarthur2-folder tests/join-population/macarthur.mbtiles tests/join-population/macarthur2-folder
./tile-join -f -o tests/join-population/macarthur-and-macarthur2-merged2.mbtiles tests/join-population/macarthur-and-macarthur2-folder
./tippecanoe-decode tests/join-population/macarthur-and-macarthur2-merged.mbtiles > tests/join-population/macarthur-and-macarthur2-merged.mbtiles.json.check
./tippecanoe-decode tests/join-population/macarthur-and-macarthur2-merged2.mbtiles > tests/join-population/macarthur-and-macarthur2-merged2.mbtiles.json.check
cmp tests/join-population/macarthur-and-macarthur2-merged.mbtiles.json.check tests/join-population/macarthur-and-macarthur2-merged2.mbtiles.json.check
rm tests/join-population/tabblock_06001420.mbtiles tests/join-population/joined.mbtiles tests/join-population/joined-i.mbtiles tests/join-population/joined.mbtiles.json.check tests/join-population/joined-i.mbtiles.json.check tests/join-population/macarthur.mbtiles tests/join-population/merged.mbtiles tests/join-population/merged.mbtiles.json.check tests/join-population/merged-folder.mbtiles tests/join-population/macarthur2.mbtiles tests/join-population/windows.mbtiles tests/join-population/windows-merged.mbtiles tests/join-population/windows-merged2.mbtiles tests/join-population/windows.mbtiles.json.check tests/join-population/just-macarthur.mbtiles tests/join-population/no-macarthur.mbtiles tests/join-population/just-macarthur.mbtiles.json.check tests/join-population/no-macarthur.mbtiles.json.check tests/join-population/merged-folder.mbtiles.json.check tests/join-population/windows-merged.mbtiles.json.check tests/join-population/windows-merged2.mbtiles.json.check tests/join-population/macarthur-and-macarthur2-merged.mbtiles tests/join-population/macarthur-and-macarthur2-merged2.mbtiles tests/join-population/macarthur-and-macarthur2-merged.mbtiles.json.check tests/join-population/macarthur-and-macarthur2-merged2.mbtiles.json.check
rm -rf tests/join-population/raw-merged-folder tests/join-population/tabblock_06001420-folder tests/join-population/macarthur-folder tests/join-population/macarthur2-folder tests/join-population/merged-mbtiles-to-folder tests/join-population/merged-folders-to-folder tests/join-population/windows-merged-folder tests/join-population/macarthur-and-macarthur2-folder
# Test renaming of layers
./tippecanoe -f -Z5 -z10 -o tests/join-population/macarthur.mbtiles -l macarthur1 tests/join-population/macarthur.json
./tippecanoe -f -Z5 -z10 -o tests/join-population/macarthur2.mbtiles -l macarthur2 tests/join-population/macarthur2.json
./tile-join -R macarthur1:one --rename-layer=macarthur2:two -f -o tests/join-population/renamed.mbtiles tests/join-population/macarthur.mbtiles tests/join-population/macarthur2.mbtiles
./tippecanoe-decode tests/join-population/renamed.mbtiles > tests/join-population/renamed.mbtiles.json.check
cmp tests/join-population/renamed.mbtiles.json.check tests/join-population/renamed.mbtiles.json
rm -f tests/join-population/renamed.mbtiles.json.check tests/join-population/renamed.mbtiles.json.check tests/join-population/macarthur.mbtiles tests/join-population/macarthur2.mbtiles
join-filter-test:
# Comes out different from the direct tippecanoe run because null attributes are lost
./tippecanoe -z0 -f -o tests/feature-filter/out/all.mbtiles tests/feature-filter/in.json
./tile-join -J tests/feature-filter/filter -f -o tests/feature-filter/out/filtered.mbtiles tests/feature-filter/out/all.mbtiles
./tippecanoe-decode tests/feature-filter/out/filtered.mbtiles > tests/feature-filter/out/filtered.json.check
cmp tests/feature-filter/out/filtered.json.check tests/feature-filter/out/filtered.json.standard
rm -f tests/feature-filter/out/filtered.json.check tests/feature-filter/out/filtered.mbtiles tests/feature-filter/out/all.mbtiles
# Test zoom level filtering
./tippecanoe -r1 -z8 -f -o tests/feature-filter/out/places.mbtiles tests/ne_110m_populated_places/in.json
./tile-join -J tests/feature-filter/places-filter -f -o tests/feature-filter/out/places-filter.mbtiles tests/feature-filter/out/places.mbtiles
./tippecanoe-decode tests/feature-filter/out/places-filter.mbtiles > tests/feature-filter/out/places-filter.mbtiles.json.check
cmp tests/feature-filter/out/places-filter.mbtiles.json.check tests/feature-filter/out/places-filter.mbtiles.json.standard
rm -f tests/feature-filter/out/places.mbtiles tests/feature-filter/out/places-filter.mbtiles tests/feature-filter/out/places-filter.mbtiles.json.check
json-tool-test: tippecanoe-json-tool
./tippecanoe-json-tool -e GEOID10 tests/join-population/tabblock_06001420.json | sort > tests/join-population/tabblock_06001420.json.sort
./tippecanoe-json-tool -c tests/join-population/population.csv tests/join-population/tabblock_06001420.json.sort > tests/join-population/tabblock_06001420.json.sort.joined
cmp tests/join-population/tabblock_06001420.json.sort.joined tests/join-population/tabblock_06001420.json.sort.joined.standard
rm -f tests/join-population/tabblock_06001420.json.sort tests/join-population/tabblock_06001420.json.sort.joined
allow-existing-test:
# Make a tileset
./tippecanoe -Z0 -z0 -f -o tests/allow-existing/both.mbtiles tests/coalesce-tract/tl_2010_06001_tract10.json
# Writing to existing should fail
if ./tippecanoe -Z1 -z1 -o tests/allow-existing/both.mbtiles tests/coalesce-tract/tl_2010_06001_tract10.json; then exit 1; else exit 0; fi
# Replace existing
./tippecanoe -Z8 -z9 -f -o tests/allow-existing/both.mbtiles tests/coalesce-tract/tl_2010_06001_tract10.json
./tippecanoe -Z10 -z11 -F -o tests/allow-existing/both.mbtiles tests/coalesce-tract/tl_2010_06001_tract10.json
./tippecanoe-decode tests/allow-existing/both.mbtiles > tests/allow-existing/both.mbtiles.json.check
cmp tests/allow-existing/both.mbtiles.json.check tests/allow-existing/both.mbtiles.json
# Make a tileset
./tippecanoe -Z0 -z0 -f -e tests/allow-existing/both.dir tests/coalesce-tract/tl_2010_06001_tract10.json
# Writing to existing should fail
if ./tippecanoe -Z1 -z1 -e tests/allow-existing/both.dir tests/coalesce-tract/tl_2010_06001_tract10.json; then exit 1; else exit 0; fi
# Replace existing
./tippecanoe -Z8 -z9 -f -e tests/allow-existing/both.dir tests/coalesce-tract/tl_2010_06001_tract10.json
./tippecanoe -Z10 -z11 -F -e tests/allow-existing/both.dir tests/coalesce-tract/tl_2010_06001_tract10.json
./tippecanoe-decode tests/allow-existing/both.dir | sed 's/both\.dir/both.mbtiles/g' > tests/allow-existing/both.dir.json.check
cmp tests/allow-existing/both.dir.json.check tests/allow-existing/both.mbtiles.json
rm -r tests/allow-existing/both.dir.json.check tests/allow-existing/both.dir tests/allow-existing/both.mbtiles.json.check tests/allow-existing/both.mbtiles
csv-test:
./tippecanoe -zg -f -o tests/csv/out.mbtiles tests/csv/ne_110m_populated_places_simple.csv
./tippecanoe-decode tests/csv/out.mbtiles > tests/csv/out.mbtiles.json.check
cmp tests/csv/out.mbtiles.json.check tests/csv/out.mbtiles.json
rm -f tests/csv/out.mbtiles.json.check tests/csv/out.mbtiles
layer-json-test:
./tippecanoe -z0 -r1 -yNAME -f -o tests/layer-json/out.mbtiles -L'{"file":"tests/ne_110m_populated_places/in.json", "description":"World cities", "layer":"places"}'
./tippecanoe-decode tests/layer-json/out.mbtiles > tests/layer-json/out.mbtiles.json.check
cmp tests/layer-json/out.mbtiles.json.check tests/layer-json/out.mbtiles.json
rm -f tests/layer-json/out.mbtiles.json.check tests/layer-json/out.mbtiles
# Use this target to regenerate the standards that the tests are compared against
# after making a change that legitimately changes their output
@ -150,7 +289,7 @@ join-test:
prep-test: $(TESTS)
tests/%.json: Makefile tippecanoe tippecanoe-decode
./tippecanoe -f -o $@.check.mbtiles $(subst @,:,$(subst %,/,$(subst _, ,$(patsubst %.json,%,$(word 4,$(subst /, ,$@)))))) $(wildcard $(subst $(SPACE),/,$(wordlist 1,2,$(subst /, ,$@)))/*.json)
./tippecanoe -f -o $@.check.mbtiles $(subst @,:,$(subst %,/,$(subst _, ,$(patsubst %.json,%,$(word 4,$(subst /, ,$@)))))) $(foreach suffix,$(suffixes),$(wildcard $(subst $(SPACE),/,$(wordlist 1,2,$(subst /, ,$@)))/*.$(suffix)))
./tippecanoe-decode $@.check.mbtiles > $@
cmp $(patsubst %.check,%,$@) $@
rm $@.check.mbtiles

558
README.md
View File

@ -1,11 +1,13 @@
tippecanoe
==========
Builds [vector tilesets](https://www.mapbox.com/developers/vector-tiles/) from large (or small) collections of [GeoJSON](http://geojson.org/) features,
Builds [vector tilesets](https://www.mapbox.com/developers/vector-tiles/) from large (or small) collections of [GeoJSON](http://geojson.org/), [Geobuf](https://github.com/mapbox/geobuf), or [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) features,
[like these](MADE_WITH.md).
![Mapbox Tippecanoe](https://user-images.githubusercontent.com/1951835/36568734-ede27ec0-17df-11e8-8c22-ffaaebb8daf4.JPG)
[![Build Status](https://travis-ci.org/mapbox/tippecanoe.svg)](https://travis-ci.org/mapbox/tippecanoe)
[![Coverage Status](https://coveralls.io/repos/mapbox/tippecanoe/badge.svg?branch=master&service=github)](https://coveralls.io/github/mapbox/tippecanoe?branch=master)
[![Coverage Status](https://codecov.io/gh/mapbox/tippecanoe/branch/master/graph/badge.svg)](https://codecov.io/gh/mapbox/tippecanoe)
Intent
------
@ -33,15 +35,28 @@ Installation
The easiest way to install tippecanoe on OSX is with [Homebrew](http://brew.sh/):
```js
```sh
$ brew install tippecanoe
```
On Ubuntu it will usually be easiest to build from the source repository:
```sh
$ git clone git@github.com:mapbox/tippecanoe.git
$ cd tippecanoe
$ make -j
$ make install
```
See [Development](#development) below for how to upgrade your
C++ compiler or install prerequisite packages if you get
compiler errors.
Usage
-----
```sh
$ tippecanoe -o file.mbtiles [file.json ...]
$ tippecanoe -o file.mbtiles [options] [file.json file.json.gz file.geobuf ...]
```
If no files are specified, it reads GeoJSON from the standard input.
@ -52,112 +67,322 @@ You can concatenate multiple GeoJSON features or files together,
and it will parse out the features and ignore whatever other objects
it encounters.
Try this first
--------------
If you aren't sure what options to use, try this:
```sh
$ tippecanoe -o out.mbtiles -zg --drop-densest-as-needed in.geojson
```
The `-zg` option will make Tippecanoe choose a maximum zoom level that should be
high enough to reflect the precision of the original data. (If it turns out still
not to be as detailed as you want, use `-z` manually with a higher number.)
If the tiles come out too big, the `--drop-densest-as-needed` option will make
Tippecanoe try dropping what should be the least visible features at each zoom level.
(If it drops too many features, use `-x` to leave out some feature attributes that
you didn't really need.)
Examples
--------
Create a tileset of TIGER roads for Alameda County, to zoom level 13, with a custom layer name and description:
```sh
$ tippecanoe -o alameda.mbtiles -l alameda -n "Alameda County from TIGER" -z13 tl_2014_06001_roads.json
```
Create a tileset of all TIGER roads, at only zoom level 12, but with higher detail than normal,
with a custom layer name and description, and leaving out the `LINEARID` and `RTTYP` attributes:
```
$ cat tiger/tl_2014_*_roads.json | tippecanoe -o tiger.mbtiles -l roads -n "All TIGER roads, one zoom" -z12 -Z12 -d14 -x LINEARID -x RTTYP
```
Options
-------
### Naming
There are a lot of options. A lot of the time you won't want to use any of them
other than `-o` _output_`.mbtiles` to name the output file, and probably `-f` to
delete the file that already exists with that name.
* -l _name_ or --layer=_name_: Layer name (default "file" if source is file.json or output is file.mbtiles). If there are multiple input files
specified, the files are all merged into the single named layer, even if they try to specify individual names with -L.
* -L _name_:_file.json_ or --named-layer=_name_:_file.json_: Specify layer names for individual files. If your shell supports it, you can use a subshell redirect like -L _name_:<(cat dir/*.json) to specify a layer name for the output of streamed input.
* -n _name_ or --name=_name_: Human-readable name for the tileset (default file.json)
* -A _text_ or --attribution=_text_: Attribution (HTML) to be shown with maps that use data from this tileset.
If you aren't sure what the right maxzoom is for your data, `-zg` will guess one for you
based on the density of features.
### File control
Tippecanoe will normally drop a fraction of point features at zooms below the maxzoom,
to keep the low-zoom tiles from getting too big. If you have a smaller data set where
all the points would fit without dropping any of them, use `-r1` to keep them all.
If you do want point dropping, but you still want the tiles to be denser than `-zg`
thinks they should be, use `-B` to set a basezoom lower than the maxzoom.
* -o _file_.mbtiles or --output=_file_.mbtiles: Name the output file.
* -f or --force: Delete the mbtiles file if it already exists instead of giving an error
* -F or --allow-existing: Proceed (without deleting existing data) if the metadata or tiles table already exists
or if metadata fields can't be set
* -t _directory_ or --temporary-directory=_directory_: Put the temporary files in _directory_.
If you don't specify, it will use `/tmp`.
* -P or --read-parallel: Use multiple threads to read different parts of each input file at once.
If some of your tiles are coming out too big in spite of the settings above, you will
often want to use `--drop-densest-as-needed` to drop whatever fraction of the features
is necessary at each zoom level to make that zoom level's tiles work.
If your features have a lot of attributes, use `-y` to keep only the ones you really need.
If your input is formatted as newline-delimited GeoJSON, use `-P` to make input parsing a lot faster.
### Output tileset
* `-o` _file_`.mbtiles` or `--output=`_file_`.mbtiles`: Name the output file.
* `-e` _directory_ or `--output-to-directory`=_directory_: Write tiles to the specified *directory* instead of to an mbtiles file.
* `-f` or `--force`: Delete the mbtiles file if it already exists instead of giving an error
* `-F` or `--allow-existing`: Proceed (without deleting existing data) if the metadata or tiles table already exists
or if metadata fields can't be set. You probably don't want to use this.
### Tileset description and attribution
* `-n` _name_ or `--name=`_name_: Human-readable name for the tileset (default file.json)
* `-A` _text_ or `--attribution=`_text_: Attribution (HTML) to be shown with maps that use data from this tileset.
* `-N` _description_ or `--description=`_description_: Description for the tileset (default file.mbtiles)
### Input files and layer names
* _name_`.json` or _name_`.geojson`: Read the named GeoJSON input file into a layer called _name_.
* _name_`.json.gz` or _name_`.geojson.gz`: Read the named gzipped GeoJSON input file into a layer called _name_.
* _name_`.geobuf`: Read the named Geobuf input file into a layer called _name_.
* _name_`.csv`: Read the named CSV input file into a layer called _name_.
* `-l` _name_ or `--layer=`_name_: Use the specified layer name instead of deriving a name from the input filename or output tileset. If there are multiple input files
specified, the files are all merged into the single named layer, even if they try to specify individual names with `-L`.
* `-L` _name_`:`_file.json_ or `--named-layer=`_name_`:`_file.json_: Specify layer names for individual files. If your shell supports it, you can use a subshell redirect like `-L` _name_`:<(cat dir/*.json)` to specify a layer name for the output of streamed input.
* `-I` _file.json_` or `--input-file=`_file.json_`: Specify an input file as if it were named as a separate command line argument
* `-L{`_layer-json_`}` or `--named-layer={`_layer-json_`}`: Specify an input file and layer options by a JSON object. The JSON object must contain a `"file"` key to specify the filename to read from. It may also contain a `"layer"` field to specify the name of the layer, and/or a `"description"` field to specify the layer's description in the tileset metadata. Example:
```
tippecanoe -z5 -o world.mbtiles -L'{"file":"ne_10m_admin_0_countries.json", "layer":"countries", "description":"Natural Earth countries"}'
```
CSV input files currently support only Point geometries, from columns named `latitude`, `longitude`, `lat`, `lon`, `long`, `lng`, `x`, or `y`.
### Parallel processing of input
* `-P` or `--read-parallel`: Use multiple threads to read different parts of each GeoJSON input file at once.
This will only work if the input is line-delimited JSON with each Feature on its
own line, because it knows nothing of the top-level structure around the Features. Spurious "EOF" error
messages may result otherwise.
Performance will be better if the input is a named file that can be mapped into memory
rather than a stream that can only be read sequentially.
### Zoom levels and resolution
If the input file begins with the [RFC 8142](https://tools.ietf.org/html/rfc8142) record separator,
parallel processing of input will be invoked automatically, splitting at record separators rather
than at all newlines.
* -z _zoom_ or --maximum-zoom=_zoom_: Maxzoom: the highest zoom level for which tiles are generated (default 14)
* -Z _zoom_ or --minimum-zoom=_zoom_: Minzoom: the lowest zoom level for which tiles are generated (default 0)
* -B _zoom_ or --base-zoom=_zoom_: Base zoom, the level at and above which all points are included in the tiles (default maxzoom).
If you use -Bg, it will guess a zoom level that will keep at most 50,000 features in the densest tile.
You can also specify a marker-width with -Bg*width* to allow fewer features in the densest tile to
compensate for the larger marker, or -Bf*number* to allow at most *number* features in the densest tile.
* -d _detail_ or --full-detail=_detail_: Detail at max zoom level (default 12, for tile resolution of 4096)
* -D _detail_ or --low-detail=_detail_: Detail at lower zoom levels (default 12, for tile resolution of 4096)
* -m _detail_ or --minimum-detail=_detail_: Minimum detail that it will try if tiles are too big at regular detail (default 7)
* -b _pixels_ or --buffer=_pixels_: Buffer size where features are duplicated from adjacent tiles. Units are "screen pixels"--1/256th of the tile width or height. (default 5)
* -s _projection_ or --projection=_projection_: Specify the projection of the input data. Currently supported are EPSG:4326 (WGS84, the default) and EPSG:3857 (Web Mercator).
* -M _bytes_ or --maximum-tile-bytes=_bytes_: Use the specified number of _bytes_ as the maximum compressed tile size instead of 500K.
Parallel processing will also be automatic if the input file is in Geobuf format.
### Projection of input
* `-s` _projection_ or `--projection=`_projection_: Specify the projection of the input data. Currently supported are `EPSG:4326` (WGS84, the default) and `EPSG:3857` (Web Mercator). In general you should use WGS84 for your input files if at all possible.
### Zoom levels
* `-z` _zoom_ or `--maximum-zoom=`_zoom_: Maxzoom: the highest zoom level for which tiles are generated (default 14)
* `-zg` or `--maximum-zoom=g`: Guess what is probably a reasonable maxzoom based on the spacing of features.
* `-Z` _zoom_ or `--minimum-zoom=`_zoom_: Minzoom: the lowest zoom level for which tiles are generated (default 0)
* `-ae` or `--extend-zooms-if-still-dropping`: Increase the maxzoom if features are still being dropped at that zoom level.
The detail and simplification options that ordinarily apply only to the maximum zoom level will apply both to the originally
specified maximum zoom and to any levels added beyond that.
* `-R` _zoom_`/`_x_`/`_y_ or `--one-tile=`_zoom_`/`_x_`/`_y_: Set the minzoom and maxzoom to _zoom_ and produce only
the single specified tile at that zoom level.
### Tile resolution
* `-d` _detail_ or `--full-detail=`_detail_: Detail at max zoom level (default 12, for tile resolution of 2^12=4096)
* `-D` _detail_ or `--low-detail=`_detail_: Detail at lower zoom levels (default 12, for tile resolution of 2^12=4096)
* `-m` _detail_ or `--minimum-detail=`_detail_: Minimum detail that it will try if tiles are too big at regular detail (default 7)
All internal math is done in terms of a 32-bit tile coordinate system, so 1/(2^32) of the size of Earth,
or about 1cm, is the smallest distinguishable distance. If _maxzoom_ + _detail_ > 32, no additional
resolution is obtained than by using a smaller _maxzoom_ or _detail_.
### Properties
### Filtering feature attributes
* -x _name_ or --exclude=_name_: Exclude the named properties from all features
* -y _name_ or --include=_name_: Include the named properties in all features, excluding all those not explicitly named
* -X or --exclude-all: Exclude all properties and encode only geometries
* `-x` _name_ or `--exclude=`_name_: Exclude the named properties from all features
* `-y` _name_ or `--include=`_name_: Include the named properties in all features, excluding all those not explicitly named
* `-X` or `--exclude-all`: Exclude all properties and encode only geometries
### Point simplification
### Modifying feature attributes
* -r _rate_ or --drop-rate=_rate_: Rate at which dots are dropped at zoom levels below basezoom (default 2.5).
If you use -rg, it will guess a drop rate that will keep at most 50,000 features in the densest tile.
You can also specify a marker-width with -rg*width* to allow fewer features in the densest tile to
compensate for the larger marker, or -rf*number* to allow at most *number* features in the densest tile.
* -g _gamma_ or --gamma=_gamma_: Rate at which especially dense dots are dropped (default 0, for no effect). A gamma of 2 reduces the number of dots less than a pixel apart to the square root of their original number.
* `-T`_attribute_`:`_type_ or `--attribute-type=`_attribute_`:`_type_: Coerce the named feature _attribute_ to be of the specified _type_.
The _type_ may be `string`, `float`, `int`, or `bool`.
If the type is `bool`, then original attributes of `0` (or, if numeric, `0.0`, etc.), `false`, `null`, or the empty string become `false`, and otherwise become `true`.
If the type is `float` or `int` and the original attribute was non-numeric, it becomes `0`.
If the type is `int` and the original attribute was floating-point, it is rounded to the nearest integer.
* `-Y`_attribute_`:`_description_ or `--attribute-description=`_attribute_`:`_description_: Set the `description` for the specified attribute in the tileset metadata to _description_ instead of the usual `String`, `Number`, or `Boolean`.
* `-E`_attribute_`:`_operation_ or `--accumulate-attribute=`_attribute_`:`_operation_: Preserve the named _attribute_ from features
that are dropped, coalesced-as-needed, or clustered. The _operation_ may be
`sum`, `product`, `mean`, `max`, `min`, `concat`, or `comma`
to specify how the named _attribute_ is accumulated onto the attribute of the same name in a feature that does survive.
### Filtering features by attributes
* `-j` *filter* or `--feature-filter`=*filter*: Check features against a per-layer filter (as defined in the [Mapbox GL Style Specification](https://www.mapbox.com/mapbox-gl-js/style-spec/#types-filter)) and only include those that match. Any features in layers that have no filter specified will be passed through. Filters for the layer `"*"` apply to all layers. The special variable `$zoom` refers to the current zoom level.
* `-J` *filter-file* or `--feature-filter-file`=*filter-file*: Like `-j`, but read the filter from a file.
Example: to find the Natural Earth countries with low `scalerank` but high `LABELRANK`:
```
tippecanoe -z5 -o filtered.mbtiles -j '{ "ne_10m_admin_0_countries": [ "all", [ "<", "scalerank", 3 ], [ ">", "LABELRANK", 5 ] ] }' ne_10m_admin_0_countries.geojson
```
Example: to retain only major TIGER roads at low zoom levels:
```
./tippecanoe -o roads.mbtiles -j '{ "*": [ "any", [ ">=", "$zoom", 11 ], [ "in", "MTFCC", "S1100", "S1200" ] ] }' tl_2015_06001_roads.json
```
### Dropping a fixed fraction of features by zoom level
* `-r` _rate_ or `--drop-rate=`_rate_: Rate at which dots are dropped at zoom levels below basezoom (default 2.5).
If you use `-rg`, it will guess a drop rate that will keep at most 50,000 features in the densest tile.
You can also specify a marker-width with `-rg`*width* to allow fewer features in the densest tile to
compensate for the larger marker, or `-rf`*number* to allow at most *number* features in the densest tile.
* `-B` _zoom_ or `--base-zoom=`_zoom_: Base zoom, the level at and above which all points are included in the tiles (default maxzoom).
If you use `-Bg`, it will guess a zoom level that will keep at most 50,000 features in the densest tile.
You can also specify a marker-width with `-Bg`*width* to allow fewer features in the densest tile to
compensate for the larger marker, or `-Bf`*number* to allow at most *number* features in the densest tile.
* `-al` or `--drop-lines`: Let "dot" dropping at lower zooms apply to lines too
* `-ap` or `--drop-polygons`: Let "dot" dropping at lower zooms apply to polygons too
* `-K` _distance_ or `--cluster-distance=`_distance_: Cluster points (as with `--cluster-densest-as-needed`, but without the experimental discovery process) that are approximately within _distance_ of each other. The units are tile coordinates within a nominally 256-pixel tile, so the maximum value of 255 allows only one feature per tile. Values around 10 are probably appropriate for typical marker sizes. See `--cluster-densest-as-needed` below for behavior.
### Dropping a fraction of features to keep under tile size limits
* `-as` or `--drop-densest-as-needed`: If a tile is too large, try to reduce it to under 500K by increasing the minimum spacing between features. The discovered spacing applies to the entire zoom level.
* `-ad` or `--drop-fraction-as-needed`: Dynamically drop some fraction of features from each zoom level to keep large tiles under the 500K size limit. (This is like `-pd` but applies to the entire zoom level, not to each tile.)
* `-an` or `--drop-smallest-as-needed`: Dynamically drop the smallest features (physically smallest: the shortest lines or the smallest polygons) from each zoom level to keep large tiles under the 500K size limit. This option will not work for point features.
* `-aN` or `--coalesce-smallest-as-needed`: Dynamically combine the smallest features (physically smallest: the shortest lines or the smallest polygons) from each zoom level into other nearby features to keep large tiles under the 500K size limit. This option will not work for point features, and will probably not help very much with LineStrings. It is mostly intended for polygons, to maintain the full original area covered by polygons while still reducing the feature count somehow. The attributes of the small polygons are *not* preserved into the combined features, only their geometry.
* `-aD` or `--coalesce-densest-as-needed`: Dynamically combine the densest features from each zoom level into other nearby features to keep large tiles under the 500K size limit. (Again, mostly useful for polygons.)
* `-aS` or `--coalesce-fraction-as-needed`: Dynamically combine a fraction of features from each zoom level into other nearby features to keep large tiles under the 500K size limit. (Again, mostly useful for polygons.)
* `-pd` or `--force-feature-limit`: Dynamically drop some fraction of features from large tiles to keep them under the 500K size limit. It will probably look ugly at the tile boundaries. (This is like `-ad` but applies to each tile individually, not to the entire zoom level.) You probably don't want to use this.
* `-aC` or `--cluster-densest-as-needed`: If a tile is too large, try to reduce its size by increasing the minimum spacing between features, and leaving one placeholder feature from each group. The remaining feature will be given a `"cluster": true` attribute to indicate that it represents a cluster, a `"point_count"` attribute to indicate the number of features that were clustered into it, and a `"sqrt_point_count"` attribute to indicate the relative width of a feature to represent the cluster. If the features being clustered are points, the representative feature will be located at the average of the original points' locations; otherwise, one of the original features will be left as the representative.
### Dropping tightly overlapping features
* `-g` _gamma_ or `--gamma=_gamma`_: Rate at which especially dense dots are dropped (default 0, for no effect). A gamma of 2 reduces the number of dots less than a pixel apart to the square root of their original number.
* `-aG` or `--increase-gamma-as-needed`: If a tile is too large, try to reduce it to under 500K by increasing the `-g` gamma. The discovered gamma applies to the entire zoom level. You probably want to use `--drop-densest-as-needed` instead.
### Line and polygon simplification
* -S _scale_ or --simplification=_scale_: Multiply the tolerance for line and polygon simplification by _scale_. The standard tolerance tries to keep
* `-S` _scale_ or `--simplification=`_scale_: Multiply the tolerance for line and polygon simplification by _scale_. The standard tolerance tries to keep
the line or polygon within one tile unit of its proper location. You can probably go up to about 10 without too much visible difference.
* `-ps` or `--no-line-simplification`: Don't simplify lines and polygons
* `-pS` or `--simplify-only-low-zooms`: Don't simplify lines and polygons at maxzoom (but do simplify at lower zooms)
* `-pt` or `--no-tiny-polygon-reduction`: Don't combine the area of very small polygons into small squares that represent their combined area.
### Doing more
### Attempts to improve shared polygon boundaries
* -ac or --coalesce: Coalesce adjacent line and polygon features that have the same properties.
Note that when overlapping polygons are coalesced, the overlapping region is treated as a hole,
which may not be what you want.
* -ar or --reverse: Try reversing the directions of lines to make them coalesce and compress better
* -ao or --reorder: Reorder features to put ones with the same properties in sequence, to try to get them to coalesce
* -al or --drop-lines: Let "dot" dropping at lower zooms apply to lines too
* -ap or --drop-polygons: Let "dot" dropping at lower zooms apply to polygons too
* -ag or --calculate-feature-density: Add a new attribute, `tippecanoe_feature_density`, to each feature, to record how densely features are spaced in that area of the tile. You can use this attribute in the style to produce a glowing effect where points are densely packed. It can range from 0 in the sparsest areas to 255 in the densest.
* -ab or --detect-shared-borders: In the manner of [TopoJSON](https://github.com/mbostock/topojson/wiki/Introduction), detect borders that are shared between multiple polygons and simplify them identically in each polygon. This takes more time and memory than considering each polygon individually.
* -aG or --increase-gamma-as-needed: If a tile is too large, try to reduce it to under 500K by increasing the `-g` gamma. The discovered gamma applies to the entire zoom level.
* -as or --drop-densest-as-needed: If a tile is too large, try to reduce it to under 500K by increasing the minimum spacing between features. The discovered spacing applies to the entire zoom level.
* -ad or --drop-fraction-as-needed: Dynamically drop some fraction of features from each zoom level to keep large tiles under the 500K size limit. (This is like `-pd` but applies to the entire zoom level, not to each tile.)
* -an or --drop-smallest-as-needed: Dynamically drop the smallest features (physically smallest: the shortest lines or the smallest polygons) from each zoom level to keep large tiles under the 500K size limit. This option will not work for point features.
* -aL or --grid-low-zooms: At all zoom levels below _maxzoom_, snap all lines and polygons to a stairstep grid instead of allowing diagonals. You will also want to specify a tile resolution, probably `-D8`. This option provides a way to display continuous parcel, gridded, or binned data at low zooms without overwhelming the tiles with tiny polygons, since features will either get stretched out to the grid unit or lost entirely, depending on how they happened to be aligned in the original data.
* `-ab` or `--detect-shared-borders`: In the manner of [TopoJSON](https://github.com/mbostock/topojson/wiki/Introduction), detect borders that are shared between multiple polygons and simplify them identically in each polygon. This takes more time and memory than considering each polygon individually.
* `-aL` or `--grid-low-zooms`: At all zoom levels below _maxzoom_, snap all lines and polygons to a stairstep grid instead of allowing diagonals. You will also want to specify a tile resolution, probably `-D8`. This option provides a way to display continuous parcel, gridded, or binned data at low zooms without overwhelming the tiles with tiny polygons, since features will either get stretched out to the grid unit or lost entirely, depending on how they happened to be aligned in the original data. You probably don't want to use this.
### Doing less
### Controlling clipping to tile boundaries
* -ps or --no-line-simplification: Don't simplify lines
* -pS or --simplify-only-low-zooms: Don't simplify lines at maxzoom (but do simplify at lower zooms)
* -pf or --no-feature-limit: Don't limit tiles to 200,000 features
* -pk or --no-tile-size-limit: Don't limit tiles to 500K bytes
* -pd or --force-feature-limit: Dynamically drop some fraction of features from large tiles to keep them under the 500K size limit. It will probably look ugly at the tile boundaries. (This is like `-ad` but applies to each tile individually, not to the entire zoom level.)
* -pi or --preserve-input-order: Preserve the original input order of features as the drawing order instead of ordering geographically. (This is implemented as a restoration of the original order at the end, so that dot-dropping is still geographic, which means it also undoes -ao).
* -pp or --no-polygon-splitting: Don't split complex polygons (over 700 vertices after simplification) into multiple features.
* -pc or --no-clipping: Don't clip features to the size of the tile. If a feature overlaps the tile's bounds or buffer at all, it is included completely. Be careful: this can produce very large tilesets, especially with large polygons.
* -pD or --no-duplication: As with --no-clipping, each feature is included intact instead of cut to tile boundaries. In addition, it is included only in a single tile per zoom level rather than potentially in multiple copies. Clients of the tileset must check adjacent tiles (possibly some distance away) to ensure they have all features.
* -pt or --no-tiny-polygon-reduction: Don't combine the area of very small polygons into small squares that represent their combined area.
* -q or --quiet: Work quietly instead of reporting progress
* `-b` _pixels_ or `--buffer=`_pixels_: Buffer size where features are duplicated from adjacent tiles. Units are "screen pixels"—1/256th of the tile width or height. (default 5)
* `-pc` or `--no-clipping`: Don't clip features to the size of the tile. If a feature overlaps the tile's bounds or buffer at all, it is included completely. Be careful: this can produce very large tilesets, especially with large polygons.
* `-pD` or `--no-duplication`: As with `--no-clipping`, each feature is included intact instead of cut to tile boundaries. In addition, it is included only in a single tile per zoom level rather than potentially in multiple copies. Clients of the tileset must check adjacent tiles (possibly some distance away) to ensure they have all features.
Example
-------
### Reordering features within each tile
```sh
$ tippecanoe -o alameda.mbtiles -l alameda -n "Alameda County from TIGER" -z13 tl_2014_06001_roads.json
```
* `-pi` or `--preserve-input-order`: Preserve the original input order of features as the drawing order instead of ordering geographically. (This is implemented as a restoration of the original order at the end, so that dot-dropping is still geographic, which means it also undoes `-ao`).
* `-ao` or `--reorder`: Reorder features to put ones with the same properties in sequence, to try to get them to coalesce. You probably want to use this if you use `--coalesce`.
* `-ac` or `--coalesce`: Coalesce adjacent line and polygon features that have the same properties. This can be useful if you have lots of small polygons with identical attributes and you would like to merge them together.
* `-ar` or `--reverse`: Try reversing the directions of lines to make them coalesce and compress better. You probably don't want to use this.
### Adding calculated attributes
* `-ag` or `--calculate-feature-density`: Add a new attribute, `tippecanoe_feature_density`, to each feature, to record how densely features are spaced in that area of the tile. You can use this attribute in the style to produce a glowing effect where points are densely packed. It can range from 0 in the sparsest areas to 255 in the densest.
### Trying to correct bad source geometry
* `-aw` or `--detect-longitude-wraparound`: Detect when adjacent points within a feature jump to the other side of the world, and try to fix the geometry.
### Setting or disabling tile size limits
* `-M` _bytes_ or `--maximum-tile-bytes=`_bytes_: Use the specified number of _bytes_ as the maximum compressed tile size instead of 500K.
* `-O` _features_ or `--maximum-tile-features=`_features_: Use the specified number of _features_ as the maximum in a tile instead of 200,000.
* `-pf` or `--no-feature-limit`: Don't limit tiles to 200,000 features
* `-pk` or `--no-tile-size-limit`: Don't limit tiles to 500K bytes
* `-pC` or `--no-tile-compression`: Don't compress the PBF vector tile data.
* `-pg` or `--no-tile-stats`: Don't generate the `tilestats` row in the tileset metadata. Uploads without [tilestats](https://github.com/mapbox/mapbox-geostats) will take longer to process.
### Temporary storage
* `-t` _directory_ or `--temporary-directory=`_directory_: Put the temporary files in _directory_.
If you don't specify, it will use `/tmp`.
### Progress indicator
* `-q` or `--quiet`: Work quietly instead of reporting progress or warning messages
* `-Q` or `--no-progress-indicator`: Don't report progress, but still give warnings
* `-U` _seconds_ or `--progress-interval=`_seconds_: Don't report progress more often than the specified number of _seconds_.
* `-v` or `--version`: Report Tippecanoe's version number
### Meta-options
* `-h` _options_ or `--options=`_options_: Process additional options from the specified literal JSON object.
* `-H` _config.json_ or `--options-from-file=`_config.json_: Read additional options from the specified _config.json_ file.
The file should contain one JSON object.
Either with directly-specified options or options from a file, the options should be a single JSON object.
Its keys must be long or short option names. The value corresponding
to each key should be a string or number, for options with arguments, or `null` or `true` for options that do not take arguments.
Example:
tippecanoe -h '{ "maximum-zoom": "g", "force": true, "output": "countries.mbtiles" }' ne_10m_admin_0_countries.json
### Filters
* `-C` _command_ or `--prefilter=`_command_: Specify a shell filter command to be run at the start of assembling each tile
* `-c` _command_ or `--postfilter=`_command_: Specify a shell filter command to be run at the end of assembling each tile
The pre- and post-filter commands allow you to do optional filtering or transformation on the features of each tile
as it is created. They are shell commands, run with the zoom level, X, and Y as the `$1`, `$2`, and `$3` arguments.
Future versions of Tippecanoe may add additional arguments for more context.
The features are provided to the filter
as a series of newline-delimited GeoJSON objects on the standard input, and `tippecanoe` expects to read another
set of GeoJSON features from the filter's standard output.
The prefilter receives the features at the highest available resolution, before line simplification,
polygon topology repair, gamma calculation, dynamic feature dropping, or other internal processing.
The postfilter receives the features at tile resolution, after simplification, cleaning, and dropping.
The layer name is provided as part of the `tippecanoe` element of the feature and must be passed through
to keep the feature in its correct layer. In the case of the prefilter, the `tippecanoe` element may also
contain `index`, `sequence`, `extent`, and `dropped`, elements, which must be passed through for internal operations like
`--drop-densest-as-needed`, `--drop-smallest-as-needed`, and `--preserve-input-order` to work.
#### Examples:
* Make a tileset of the Natural Earth countries to zoom level 5, and also copy the GeoJSON features
to files in a `tiles/z/x/y.geojson` directory hierarchy.
```
$ cat tiger/tl_2014_*_roads.json | tippecanoe -o tiger.mbtiles -l roads -n "All TIGER roads, one zoom" -z12 -Z12 -d14 -x LINEARID -x RTTYP
tippecanoe -o countries.mbtiles -z5 -C 'mkdir -p tiles/$1/$2; tee tiles/$1/$2/$3.geojson' ne_10m_admin_0_countries.json
```
* Make a tileset of the Natural Earth countries to zoom level 5, but including only those tiles that
intersect the [bounding box of Germany](https://www.flickr.com/places/info/23424829).
(The `limit-tiles-to-bbox` script is [in the Tippecanoe source directory](filters/limit-tiles-to-bbox).)
```
tippecanoe -o countries.mbtiles -z5 -C './filters/limit-tiles-to-bbox 5.8662 47.2702 15.0421 55.0581 $*' ne_10m_admin_0_countries.json
```
* Make a tileset of TIGER roads in Tippecanoe County, leaving out all but primary and secondary roads (as [classified by TIGER](https://www.census.gov/geo/reference/mtfcc.html)) below zoom level 11.
```
tippecanoe -o roads.mbtiles -c 'if [ $1 -lt 11 ]; then grep "\"MTFCC\": \"S1[12]00\""; else cat; fi' tl_2016_18157_roads.json
```
Environment
-----------
Tippecanoe ordinarily uses as many parallel threads as the operating system claims that CPUs are available.
You can override this number by setting the `TIPPECANOE_MAX_THREADS` environmental variable.
GeoJSON extension
-----------------
@ -198,33 +423,6 @@ the filename or name specified using `--layer`, like this:
}
```
Point styling
-------------
To provide a consistent density gradient as you zoom, the Mapbox Studio style needs to be
coordinated with the base zoom level and dot-dropping rate. You can use this shell script to
calculate the appropriate marker-width at high zoom levels to match the fraction of dots
that were dropped at low zoom levels.
If you used `-B` or `-z` to change the base zoom level or `-r` to change the
dot-dropping rate, replace them in the `basezoom` and `rate` below.
awk 'BEGIN {
dotsize = 2; # up to you to decide
basezoom = 14; # tippecanoe -z 14
rate = 2.5; # tippecanoe -r 2.5
print " marker-line-width: 0;";
print " marker-ignore-placement: true;";
print " marker-allow-overlap: true;";
print " marker-width: " dotsize ";";
for (i = basezoom + 1; i <= 22; i++) {
print " [zoom >= " i "] { marker-width: " (dotsize * exp(log(sqrt(rate)) * (i - basezoom))) "; }";
}
exit(0);
}'
Geometric simplifications
-------------------------
@ -251,9 +449,6 @@ have their probability diffused, so that some of them will be drawn as a square
this minimum size and others will not be drawn at all, preserving the total area that
all of them should have had together.
Any polygons that have over 700 vertices after line simplification will be split into
multiple features so they can be rendered efficiently, unless you use -pp to prevent this.
Features in the same tile that share the same type and attributes are coalesced
together into a single geometry if you use `--coalesce`. You are strongly encouraged to use -x to exclude
any unnecessary properties to reduce wasted file size.
@ -279,7 +474,7 @@ and perhaps
make install
Tippecanoe now requires features from the 2014 C++ standard. If your compiler is older than
Tippecanoe now requires features from the 2011 C++ standard. If your compiler is older than
that, you will need to install a newer one. On MacOS, updating to the lastest XCode should
get you a new enough version of `clang++`. On Linux, you should be able to upgrade `g++` with
@ -290,6 +485,24 @@ sudo apt-get install -y g++-5
export CXX=g++-5
```
Docker Image
------------
A tippecanoe Docker image can be built from source and executed as a task to
automatically install dependencies and allow tippecanoe to run on any system
supported by Docker.
```docker
$ docker build -t tippecanoe:latest .
$ docker run -it --rm \
-v /tiledata:/data \
tippecanoe:latest \
tippecanoe --output=/data/output.mbtiles /data/example.geojson
```
The commands above will build a Docker image from the source and compile the
latest version. The image supports all tippecanoe flags and options.
Examples
------
@ -303,22 +516,59 @@ The name is [a joking reference](http://en.wikipedia.org/wiki/Tippecanoe_and_Tyl
tile-join
=========
Tile-join is a tool for joining new attributes from a CSV file to features that
have already been tiled with tippecanoe. It reads the tiles from an existing .mbtiles
file, matches them against the records of the CSV, and writes out a new tileset.
Tile-join is a tool for copying and merging vector mbtiles files and for
joining new attributes from a CSV file to existing features in them.
If you specify multiple source mbtiles files, they are all read and their combined
contents are written to the new mbtiles output. If they define the same layers or
the same tiles, the layers or tiles are merged.
It reads the tiles from an
existing .mbtiles file or a directory of tiles, matches them against the
records of the CSV (if one is specified), and writes out a new tileset.
If you specify multiple source mbtiles files or source directories of tiles,
all the sources are read and their combined contents are written to the new
mbtiles output. If they define the same layers or the same tiles, the layers
or tiles are merged.
The options are:
* -o *out.mbtiles*: Write the new tiles to the specified .mbtiles file
* -f: Remove *out.mbtiles* if it already exists
* -c *match.csv*: Use *match.csv* as the source for new attributes to join to the features. The first line of the file should be the key names; the other lines are values. The first column is the one to match against the existing features; the other columns are the new data to add.
* -x *key*: Remove attributes of type *key* from the output. You can use this to remove the field you are matching against if you no longer need it after joining, or to remove any other attributes you don't want.
* -i: Only include features that matched the CSV.
* -pk: Don't skip tiles larger than 500K.
### Output tileset
* `-o` *out.mbtiles* or `--output=`*out.mbtiles*: Write the new tiles to the specified .mbtiles file.
* `-e` *directory* or `--output-to-directory=`*directory*: Write the new tiles to the specified directory instead of to an mbtiles file.
* `-f` or `--force`: Remove *out.mbtiles* if it already exists.
### Tileset description and attribution
* `-A` *attribution* or `--attribution=`*attribution*: Set the attribution string.
* `-n` *name* or `--name=`*name*: Set the tileset name.
* `-N` *description* or `--description=`*description*: Set the tileset description.
### Layer filtering and naming
* `-l` *layer* or `--layer=`*layer*: Include the named layer in the output. You can specify multiple `-l` options to keep multiple layers. If you don't specify, they will all be retained.
* `-L` *layer* or `--exclude-layer=`*layer*: Remove the named layer from the output. You can specify multiple `-L` options to remove multiple layers.
* `-R`*old*`:`*new* or `--rename-layer=`*old*`:`*new*: Rename the layer named *old* to be named *new* instead. You can specify multiple `-R` options to rename multiple layers. Renaming happens before filtering.
### Zoom levels
* `-z` _zoom_ or `--maximum-zoom=`_zoom_: Don't copy tiles from higher zoom levels than the specified zoom
* `-Z` _zoom_ or `--minimum-zoom=`_zoom_: Don't copy tiles from lower zoom levels than the specified zoom
### Merging attributes from a CSV file
* `-c` *match*`.csv` or `--csv=`*match*`.csv`: Use *match*`.csv` as the source for new attributes to join to the features. The first line of the file should be the key names; the other lines are values. The first column is the one to match against the existing features; the other columns are the new data to add.
### Filtering features and feature attributes
* `-x` *key* or `--exclude=`*key*: Remove attributes of type *key* from the output. You can use this to remove the field you are matching against if you no longer need it after joining, or to remove any other attributes you don't want.
* `-i` or `--if-matched`: Only include features that matched the CSV.
* `-j` *filter* or `--feature-filter`=*filter*: Check features against a per-layer filter (as defined in the [Mapbox GL Style Specification](https://www.mapbox.com/mapbox-gl-js/style-spec/#types-filter)) and only include those that match. Any features in layers that have no filter specified will be passed through. Filters for the layer `"*"` apply to all layers.
* `-J` *filter-file* or `--feature-filter-file`=*filter-file*: Like `-j`, but read the filter from a file.
### Setting or disabling tile size limits
* `-pk` or `--no-tile-size-limit`: Don't skip tiles larger than 500K.
* `-pC` or `--no-tile-compression`: Don't compress the PBF vector tile data.
* `-pg` or `--no-tile-stats`: Don't generate the `tilestats` row in the tileset metadata. Uploads without [tilestats](https://github.com/mapbox/mapbox-geostats) will take longer to process.
Because tile-join just copies the geometries to the new .mbtiles without processing them
(except to rescale the extents if necessary),
@ -395,11 +645,79 @@ or on an individual tile:
tippecanoe-decode file.mbtiles zoom x y
tippecanoe-decode file.vector.pbf zoom x y
If you decode an entire file, you get a nested `FeatureCollection` identifying each
Unless you use `-c`, the output is a set of nested FeatureCollections identifying each
tile and layer separately. Note that the same features generally appear at all zooms,
so the output for the file will have many copies of the same features at different
resolutions.
### Options
* -t _projection_: Specify the projection of the output data. Currently supported are EPSG:4326 (WGS84, the default) and EPSG:3857 (Web Mercator).
* `-s` _projection_ or `--projection=`*projection*: Specify the projection of the output data. Currently supported are EPSG:4326 (WGS84, the default) and EPSG:3857 (Web Mercator).
* `-z` _maxzoom_ or `--maximum-zoom=`*maxzoom*: Specify the highest zoom level to decode from the tileset
* `-Z` _minzoom_ or `--minimum-zoom=`*minzoom*: Specify the lowest zoom level to decode from the tileset
* `-l` _layer_ or `--layer=`*layer*: Decode only layers with the specified names. (Multiple `-l` options can be specified.)
* `-c` or `--tag-layer-and-zoom`: Include each feature's layer and zoom level as part of its `tippecanoe` object rather than as a FeatureCollection wrapper
* `-S` or `--stats`: Just report statistics about each tile's size and the number of features in it, as a JSON structure.
* `-f` or `--force`: Decode tiles even if polygon ring order or closure problems are detected
tippecanoe-json-tool
====================
Extracts GeoJSON features or standalone geometries as line-delimited JSON objects from a larger JSON file,
following the same extraction rules that Tippecanoe uses when parsing JSON.
tippecanoe-json-tool file.json [... file.json]
Optionally also wraps them in a FeatureCollection or GeometryCollection as appropriate.
Optionally extracts an attribute from the GeoJSON `properties` for sorting.
Optionally joins a sorted CSV of new attributes to a sorted GeoJSON file.
The reason for requiring sorting is so that it is possible to work on CSV and GeoJSON files that are larger
than can comfortably fit in memory by streaming through them in parallel, in the same way that the Unix
`join` command does. The Unix `sort` command can be used to sort large files to prepare them for joining.
The sorting interface is weird, and future version of `tippecanoe-json-tool` will replace it with
something better.
### Options
* `-w` or `--wrap`: Add the FeatureCollection or GeometryCollection wrapper.
* `-e` *attribute* or `--extract=`*attribute*: Extract the named attribute as a prefix to each feature.
The formatting makes excessive use of `\u` quoting so that it follows JSON string rules but will still
be sorted correctly by tools that just do ASCII comparisons.
* `-c` *file.csv* or `--csv=`*file.csv*: Join properties from the named sorted CSV file, using its first column as the join key. Geometries will be passed through even if they do not match the CSV; CSV lines that do not match a geometry will be discarded.
### Example
Join Census LEHD ([Longitudinal Employer-Household Dynamics](https://lehd.ces.census.gov/)) employment data to a file of Census block geography
for Tippecanoe County, Indiana.
Download Census block geometry, and convert to GeoJSON:
```
$ curl -L -O https://www2.census.gov/geo/tiger/TIGER2010/TABBLOCK/2010/tl_2010_18157_tabblock10.zip
$ unzip tl_2010_18157_tabblock10.zip
$ ogr2ogr -f GeoJSON tl_2010_18157_tabblock10.json tl_2010_18157_tabblock10.shp
```
Download Indiana employment data, and fix name of join key in header
```
$ curl -L -O https://lehd.ces.census.gov/data/lodes/LODES7/in/wac/in_wac_S000_JT00_2015.csv.gz
$ gzip -dc in_wac_S000_JT00_2015.csv.gz | sed '1s/w_geocode/GEOID10/' > in_wac_S000_JT00_2015.csv
```
Sort GeoJSON block geometry so it is ordered by block ID. If you don't do this, you will get a
"GeoJSON file is out of sort" error.
```
$ tippecanoe-json-tool -e GEOID10 tl_2010_18157_tabblock10.json | LC_ALL=C sort > tl_2010_18157_tabblock10.sort.json
```
Join block geometries to employment properties:
```
$ tippecanoe-json-tool -c in_wac_S000_JT00_2015.csv tl_2010_18157_tabblock10.sort.json > blocks-wac.json
```

2
codecov.yml Normal file
View File

@ -0,0 +1,2 @@
ignore:
- "test"

174
csv.cpp Normal file
View File

@ -0,0 +1,174 @@
#include "csv.hpp"
#include "text.hpp"
std::vector<std::string> csv_split(const char *s) {
std::vector<std::string> ret;
while (*s && *s != '\n' && *s != '\r') {
const char *start = s;
int within = 0;
for (; *s && *s != '\n' && *s != '\r'; s++) {
if (*s == '"') {
within = !within;
}
if (*s == ',' && !within) {
break;
}
}
std::string v = std::string(start, s - start);
ret.push_back(v);
if (*s == ',') {
s++;
while (*s && isspace(*s)) {
s++;
}
if (*s == '\0' || *s == '\r' || *s == '\n') {
ret.push_back(std::string(""));
break;
}
}
}
return ret;
}
std::string csv_dequote(std::string s) {
std::string out;
for (size_t i = 0; i < s.size(); i++) {
if (s[i] == '"') {
if (i + 1 < s.size() && s[i + 1] == '"') {
out.push_back('"');
}
} else {
out.push_back(s[i]);
}
}
return out;
}
std::string csv_getline(FILE *f) {
std::string out;
int c;
while ((c = getc(f)) != EOF) {
out.push_back(c);
if (c == '\n') {
break;
}
}
return out;
}
void readcsv(const char *fn, std::vector<std::string> &header, std::map<std::string, std::vector<std::string>> &mapping) {
FILE *f = fopen(fn, "r");
if (f == NULL) {
perror(fn);
exit(EXIT_FAILURE);
}
std::string s;
if ((s = csv_getline(f)).size() > 0) {
std::string err = check_utf8(s);
if (err != "") {
fprintf(stderr, "%s: %s\n", fn, err.c_str());
exit(EXIT_FAILURE);
}
header = csv_split(s.c_str());
for (size_t i = 0; i < header.size(); i++) {
header[i] = csv_dequote(header[i]);
}
}
while ((s = csv_getline(f)).size() > 0) {
std::string err = check_utf8(s);
if (err != "") {
fprintf(stderr, "%s: %s\n", fn, err.c_str());
exit(EXIT_FAILURE);
}
std::vector<std::string> line = csv_split(s.c_str());
if (line.size() > 0) {
line[0] = csv_dequote(line[0]);
}
for (size_t i = 0; i < line.size() && i < header.size(); i++) {
// printf("putting %s\n", line[0].c_str());
mapping.insert(std::pair<std::string, std::vector<std::string>>(line[0], line));
}
}
if (fclose(f) != 0) {
perror("fclose");
exit(EXIT_FAILURE);
}
}
// Follow JSON rules for what looks like a number
bool is_number(std::string const &s) {
const char *cp = s.c_str();
char c = *(cp++);
if (c == '-' || (c >= '0' && c <= '9')) {
if (c == '-') {
c = *(cp++);
}
if (c == '0') {
;
} else if (c >= '1' && c <= '9') {
c = *cp;
while (c >= '0' && c <= '9') {
cp++;
c = *cp;
}
}
if (*cp == '.') {
cp++;
c = *cp;
if (c < '0' || c > '9') {
return false;
}
while (c >= '0' && c <= '9') {
cp++;
c = *cp;
}
}
c = *cp;
if (c == 'e' || c == 'E') {
cp++;
c = *cp;
if (c == '+' || c == '-') {
cp++;
}
c = *cp;
if (c < '0' || c > '9') {
return false;
}
while (c >= '0' && c <= '9') {
cp++;
c = *cp;
}
}
if (*cp == '\0') {
return true;
} else {
// Something non-numeric at the end
return false;
}
}
return false;
}

16
csv.hpp Normal file
View File

@ -0,0 +1,16 @@
#ifndef CSV_HPP
#define CSV_HPP
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <string>
#include <map>
std::vector<std::string> csv_split(const char *s);
std::string csv_dequote(std::string s);
void readcsv(const char *fn, std::vector<std::string> &header, std::map<std::string, std::vector<std::string>> &mapping);
std::string csv_getline(FILE *f);
bool is_number(std::string const &s);
#endif

View File

@ -3,55 +3,94 @@
#include <string.h>
#include <unistd.h>
#include <sqlite3.h>
#include <getopt.h>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <zlib.h>
#include <math.h>
#include <fcntl.h>
#include <dirent.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <protozero/pbf_reader.hpp>
#include <sys/stat.h>
#include "mvt.hpp"
#include "projection.hpp"
#include "geometry.hpp"
#include "write_json.hpp"
#include "jsonpull/jsonpull.h"
#include "dirtiles.hpp"
void printq(const char *s) {
putchar('"');
for (; *s; s++) {
if (*s == '\\' || *s == '"') {
printf("\\%c", *s);
} else if (*s >= 0 && *s < ' ') {
printf("\\u%04x", *s);
} else {
putchar(*s);
int minzoom = 0;
int maxzoom = 32;
bool force = false;
void do_stats(mvt_tile &tile, size_t size, bool compressed, int z, unsigned x, unsigned y, json_writer &state) {
state.json_write_hash();
state.json_write_string("zoom");
state.json_write_signed(z);
state.json_write_string("x");
state.json_write_unsigned(x);
state.json_write_string("y");
state.json_write_unsigned(y);
state.json_write_string("bytes");
state.json_write_unsigned(size);
state.json_write_string("compressed");
state.json_write_bool(compressed);
state.json_write_string("layers");
state.json_write_hash();
for (size_t i = 0; i < tile.layers.size(); i++) {
state.json_write_string(tile.layers[i].name);
size_t points = 0, lines = 0, polygons = 0;
for (size_t j = 0; j < tile.layers[i].features.size(); j++) {
if (tile.layers[i].features[j].type == mvt_point) {
points++;
} else if (tile.layers[i].features[j].type == mvt_linestring) {
lines++;
} else if (tile.layers[i].features[j].type == mvt_polygon) {
polygons++;
}
}
state.json_write_hash();
state.json_write_string("points");
state.json_write_unsigned(points);
state.json_write_string("lines");
state.json_write_unsigned(lines);
state.json_write_string("polygons");
state.json_write_unsigned(polygons);
state.json_write_string("extent");
state.json_write_signed(tile.layers[i].extent);
state.json_end_hash();
}
putchar('"');
state.json_end_hash();
state.json_end_hash();
state.json_write_newline();
}
struct lonlat {
int op;
double lon;
double lat;
int x;
int y;
lonlat(int nop, double nlon, double nlat, int nx, int ny) {
this->op = nop;
this->lon = nlon;
this->lat = nlat;
this->x = nx;
this->y = ny;
}
};
void handle(std::string message, int z, unsigned x, unsigned y, int describe) {
int within = 0;
void handle(std::string message, int z, unsigned x, unsigned y, std::set<std::string> const &to_decode, bool pipeline, bool stats, json_writer &state) {
mvt_tile tile;
bool was_compressed;
try {
if (!tile.decode(message)) {
if (!tile.decode(message, was_compressed)) {
fprintf(stderr, "Couldn't parse tile %d/%u/%u\n", z, x, y);
exit(EXIT_FAILURE);
}
@ -60,282 +99,138 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) {
exit(EXIT_FAILURE);
}
printf("{ \"type\": \"FeatureCollection\"");
if (describe) {
printf(", \"properties\": { \"zoom\": %d, \"x\": %d, \"y\": %d }", z, x, y);
if (projection != projections) {
printf(", \"crs\": { \"type\": \"name\", \"properties\": { \"name\": ");
printq(projection->alias);
printf(" } }");
}
if (stats) {
do_stats(tile, message.size(), was_compressed, z, x, y, state);
return;
}
printf(", \"features\": [\n");
if (!pipeline) {
state.json_write_hash();
state.json_write_string("type");
state.json_write_string("FeatureCollection");
if (true) {
state.json_write_string("properties");
state.json_write_hash();
state.json_write_string("zoom");
state.json_write_signed(z);
state.json_write_string("x");
state.json_write_signed(x);
state.json_write_string("y");
state.json_write_signed(y);
if (!was_compressed) {
state.json_write_string("compressed");
state.json_write_bool(false);
}
state.json_end_hash();
if (projection != projections) {
state.json_write_string("crs");
state.json_write_hash();
state.json_write_string("type");
state.json_write_string("name");
state.json_write_string("properties");
state.json_write_hash();
state.json_write_string("name");
state.json_write_string(projection->alias);
state.json_end_hash();
state.json_end_hash();
}
}
state.json_write_string("features");
state.json_write_array();
state.json_write_newline();
}
bool first_layer = true;
for (size_t l = 0; l < tile.layers.size(); l++) {
mvt_layer &layer = tile.layers[l];
int extent = layer.extent;
if (describe) {
if (l != 0) {
printf(",\n");
}
printf("{ \"type\": \"FeatureCollection\"");
printf(", \"properties\": { \"layer\": ");
printq(layer.name.c_str());
printf(", \"version\": %d, \"extent\": %d", layer.version, layer.extent);
printf(" }");
printf(", \"features\": [\n");
within = 0;
if (layer.extent <= 0) {
fprintf(stderr, "Impossible layer extent %lld in mbtiles\n", layer.extent);
exit(EXIT_FAILURE);
}
for (size_t f = 0; f < layer.features.size(); f++) {
mvt_feature &feat = layer.features[f];
if (within) {
printf(",\n");
}
within = 1;
printf("{ \"type\": \"Feature\"");
if (feat.has_id) {
printf(", \"id\": %llu", feat.id);
}
printf(", \"properties\": { ");
for (size_t t = 0; t + 1 < feat.tags.size(); t += 2) {
if (t != 0) {
printf(", ");
}
if (feat.tags[t] >= layer.keys.size()) {
fprintf(stderr, "Error: out of bounds feature key\n");
exit(EXIT_FAILURE);
}
if (feat.tags[t + 1] >= layer.values.size()) {
fprintf(stderr, "Error: out of bounds feature value\n");
exit(EXIT_FAILURE);
}
const char *key = layer.keys[feat.tags[t]].c_str();
mvt_value const &val = layer.values[feat.tags[t + 1]];
if (val.type == mvt_string) {
printq(key);
printf(": ");
printq(val.string_value.c_str());
} else if (val.type == mvt_int) {
printq(key);
printf(": %lld", (long long) val.numeric_value.int_value);
} else if (val.type == mvt_double) {
printq(key);
double v = val.numeric_value.double_value;
if (v == (long long) v) {
printf(": %lld", (long long) v);
} else {
printf(": %g", v);
}
} else if (val.type == mvt_float) {
printq(key);
double v = val.numeric_value.float_value;
if (v == (long long) v) {
printf(": %lld", (long long) v);
} else {
printf(": %g", v);
}
} else if (val.type == mvt_sint) {
printq(key);
printf(": %lld", (long long) val.numeric_value.sint_value);
} else if (val.type == mvt_uint) {
printq(key);
printf(": %lld", (long long) val.numeric_value.uint_value);
} else if (val.type == mvt_bool) {
printq(key);
printf(": %s", val.numeric_value.bool_value ? "true" : "false");
}
}
printf(" }, \"geometry\": { ");
std::vector<lonlat> ops;
for (size_t g = 0; g < feat.geometry.size(); g++) {
int op = feat.geometry[g].op;
long long px = feat.geometry[g].x;
long long py = feat.geometry[g].y;
if (op == VT_MOVETO || op == VT_LINETO) {
long long scale = 1LL << (32 - z);
long long wx = scale * x + (scale / extent) * px;
long long wy = scale * y + (scale / extent) * py;
double lat, lon;
projection->unproject(wx, wy, 32, &lon, &lat);
ops.push_back(lonlat(op, lon, lat, px, py));
} else {
ops.push_back(lonlat(op, 0, 0, 0, 0));
}
}
if (feat.type == VT_POINT) {
if (ops.size() == 1) {
printf("\"type\": \"Point\", \"coordinates\": [ %f, %f ]", ops[0].lon, ops[0].lat);
} else {
printf("\"type\": \"MultiPoint\", \"coordinates\": [ ");
for (size_t i = 0; i < ops.size(); i++) {
if (i != 0) {
printf(", ");
}
printf("[ %f, %f ]", ops[i].lon, ops[i].lat);
}
printf(" ]");
}
} else if (feat.type == VT_LINE) {
int movetos = 0;
for (size_t i = 0; i < ops.size(); i++) {
if (ops[i].op == VT_MOVETO) {
movetos++;
}
}
if (movetos < 2) {
printf("\"type\": \"LineString\", \"coordinates\": [ ");
for (size_t i = 0; i < ops.size(); i++) {
if (i != 0) {
printf(", ");
}
printf("[ %f, %f ]", ops[i].lon, ops[i].lat);
}
printf(" ]");
} else {
printf("\"type\": \"MultiLineString\", \"coordinates\": [ [ ");
int state = 0;
for (size_t i = 0; i < ops.size(); i++) {
if (ops[i].op == VT_MOVETO) {
if (state == 0) {
printf("[ %f, %f ]", ops[i].lon, ops[i].lat);
state = 1;
} else {
printf(" ], [ ");
printf("[ %f, %f ]", ops[i].lon, ops[i].lat);
state = 1;
}
} else {
printf(", [ %f, %f ]", ops[i].lon, ops[i].lat);
}
}
printf(" ] ]");
}
} else if (feat.type == VT_POLYGON) {
std::vector<std::vector<lonlat> > rings;
std::vector<double> areas;
for (size_t i = 0; i < ops.size(); i++) {
if (ops[i].op == VT_MOVETO) {
rings.push_back(std::vector<lonlat>());
areas.push_back(0);
}
int n = rings.size() - 1;
if (n >= 0) {
if (ops[i].op == VT_CLOSEPATH) {
rings[n].push_back(rings[n][0]);
} else {
rings[n].push_back(ops[i]);
}
}
}
int outer = 0;
for (size_t i = 0; i < rings.size(); i++) {
long double area = 0;
for (size_t k = 0; k < rings[i].size(); k++) {
if (rings[i][k].op != VT_CLOSEPATH) {
area += rings[i][k].x * rings[i][(k + 1) % rings[i].size()].y;
area -= rings[i][k].y * rings[i][(k + 1) % rings[i].size()].x;
}
}
areas[i] = area;
if (areas[i] >= 0 || i == 0) {
outer++;
}
// printf("area %f\n", area / .00000274 / .00000274);
}
if (outer > 1) {
printf("\"type\": \"MultiPolygon\", \"coordinates\": [ [ [ ");
} else {
printf("\"type\": \"Polygon\", \"coordinates\": [ [ ");
}
int state = 0;
for (size_t i = 0; i < rings.size(); i++) {
if (areas[i] >= 0) {
if (state != 0) {
// new multipolygon
printf(" ] ], [ [ ");
}
state = 1;
}
if (state == 2) {
// new ring in the same polygon
printf(" ], [ ");
}
for (size_t j = 0; j < rings[i].size(); j++) {
if (rings[i][j].op != VT_CLOSEPATH) {
if (j != 0) {
printf(", ");
}
printf("[ %f, %f ]", rings[i][j].lon, rings[i][j].lat);
} else {
if (j != 0) {
printf(", ");
}
printf("[ %f, %f ]", rings[i][0].lon, rings[i][0].lat);
}
}
state = 2;
}
if (outer > 1) {
printf(" ] ] ]");
} else {
printf(" ] ]");
}
}
printf(" } }\n");
if (to_decode.size() != 0 && !to_decode.count(layer.name)) {
continue;
}
if (describe) {
printf("] }\n");
if (!pipeline) {
if (true) {
if (!first_layer) {
state.json_comma_newline();
}
state.json_write_hash();
state.json_write_string("type");
state.json_write_string("FeatureCollection");
state.json_write_string("properties");
state.json_write_hash();
state.json_write_string("layer");
state.json_write_string(layer.name);
state.json_write_string("version");
state.json_write_signed(layer.version);
state.json_write_string("extent");
state.json_write_signed(layer.extent);
state.json_end_hash();
state.json_write_string("features");
state.json_write_array();
state.json_write_newline();
first_layer = false;
}
}
// X and Y are unsigned, so no need to check <0
if (x > (1ULL << z) || y > (1ULL << z)) {
fprintf(stderr, "Impossible tile %d/%u/%u\n", z, x, y);
exit(EXIT_FAILURE);
}
layer_to_geojson(layer, z, x, y, !pipeline, pipeline, pipeline, false, 0, 0, 0, !force, state);
if (!pipeline) {
if (true) {
state.json_end_array();
state.json_end_hash();
state.json_write_newline();
}
}
}
printf("] }\n");
if (!pipeline) {
state.json_end_array();
state.json_end_hash();
state.json_write_newline();
}
}
void decode(char *fname, int z, unsigned x, unsigned y) {
sqlite3 *db;
void decode(char *fname, int z, unsigned x, unsigned y, std::set<std::string> const &to_decode, bool pipeline, bool stats) {
sqlite3 *db = NULL;
bool isdir = false;
int oz = z;
unsigned ox = x, oy = y;
json_writer state(stdout);
int fd = open(fname, O_RDONLY);
int fd = open(fname, O_RDONLY | O_CLOEXEC);
if (fd >= 0) {
struct stat st;
if (fstat(fd, &st) == 0) {
@ -345,7 +240,7 @@ void decode(char *fname, int z, unsigned x, unsigned y) {
if (strcmp(map, "SQLite format 3") != 0) {
if (z >= 0) {
std::string s = std::string(map, st.st_size);
handle(s, z, x, y, 1);
handle(s, z, x, y, to_decode, pipeline, stats, state);
munmap(map, st.st_size);
return;
} else {
@ -359,72 +254,181 @@ void decode(char *fname, int z, unsigned x, unsigned y) {
} else {
perror("fstat");
}
close(fd);
if (close(fd) != 0) {
perror("close");
exit(EXIT_FAILURE);
}
} else {
perror(fname);
}
if (sqlite3_open(fname, &db) != SQLITE_OK) {
fprintf(stderr, "%s: %s\n", fname, sqlite3_errmsg(db));
exit(EXIT_FAILURE);
struct stat st;
std::vector<zxy> tiles;
if (stat(fname, &st) == 0 && (st.st_mode & S_IFDIR) != 0) {
isdir = true;
db = dirmeta2tmp(fname);
tiles = enumerate_dirtiles(fname);
} else {
if (sqlite3_open(fname, &db) != SQLITE_OK) {
fprintf(stderr, "%s: %s\n", fname, sqlite3_errmsg(db));
exit(EXIT_FAILURE);
}
char *err = NULL;
if (sqlite3_exec(db, "PRAGMA integrity_check;", NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "%s: integrity_check: %s\n", fname, err);
exit(EXIT_FAILURE);
}
}
if (z < 0) {
printf("{ \"type\": \"FeatureCollection\", \"properties\": {\n");
const char *sql2 = "SELECT name, value from metadata order by name;";
sqlite3_stmt *stmt2;
if (sqlite3_prepare_v2(db, sql2, -1, &stmt2, NULL) != SQLITE_OK) {
fprintf(stderr, "%s: select failed: %s\n", fname, sqlite3_errmsg(db));
exit(EXIT_FAILURE);
}
int within = 0;
while (sqlite3_step(stmt2) == SQLITE_ROW) {
if (within) {
printf(",\n");
if (!pipeline && !stats) {
state.json_write_hash();
state.json_write_string("type");
state.json_write_string("FeatureCollection");
state.json_write_string("properties");
state.json_write_hash();
state.json_write_newline();
const char *sql2 = "SELECT name, value from metadata order by name;";
sqlite3_stmt *stmt2;
if (sqlite3_prepare_v2(db, sql2, -1, &stmt2, NULL) != SQLITE_OK) {
fprintf(stderr, "%s: select failed: %s\n", fname, sqlite3_errmsg(db));
exit(EXIT_FAILURE);
}
within = 1;
const unsigned char *name = sqlite3_column_text(stmt2, 0);
const unsigned char *value = sqlite3_column_text(stmt2, 1);
while (sqlite3_step(stmt2) == SQLITE_ROW) {
if (within) {
state.json_comma_newline();
}
within = 1;
printq((char *) name);
printf(": ");
printq((char *) value);
}
const unsigned char *name = sqlite3_column_text(stmt2, 0);
const unsigned char *value = sqlite3_column_text(stmt2, 1);
sqlite3_finalize(stmt2);
if (name == NULL || value == NULL) {
fprintf(stderr, "Corrupt mbtiles file: null metadata\n");
exit(EXIT_FAILURE);
}
const char *sql = "SELECT tile_data, zoom_level, tile_column, tile_row from tiles order by zoom_level, tile_column, tile_row;";
sqlite3_stmt *stmt;
if (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL) != SQLITE_OK) {
fprintf(stderr, "%s: select failed: %s\n", fname, sqlite3_errmsg(db));
exit(EXIT_FAILURE);
}
printf("\n}, \"features\": [\n");
within = 0;
while (sqlite3_step(stmt) == SQLITE_ROW) {
if (within) {
printf(",\n");
state.json_write_string((char *) name);
state.json_write_string((char *) value);
}
within = 1;
int len = sqlite3_column_bytes(stmt, 0);
int tz = sqlite3_column_int(stmt, 1);
int tx = sqlite3_column_int(stmt, 2);
int ty = sqlite3_column_int(stmt, 3);
ty = (1LL << tz) - 1 - ty;
const char *s = (const char *) sqlite3_column_blob(stmt, 0);
state.json_write_newline();
state.wantnl = false; // XXX
handle(std::string(s, len), tz, tx, ty, 1);
sqlite3_finalize(stmt2);
}
printf("] }\n");
if (stats) {
state.json_write_array();
state.json_write_newline();
}
sqlite3_finalize(stmt);
if (!pipeline && !stats) {
state.json_end_hash();
state.json_write_string("features");
state.json_write_array();
state.json_write_newline();
}
if (isdir) {
within = 0;
for (size_t i = 0; i < tiles.size(); i++) {
if (!pipeline && !stats) {
if (within) {
state.json_comma_newline();
}
within = 1;
}
if (stats) {
if (within) {
state.json_comma_newline();
}
within = 1;
}
std::string fn = std::string(fname) + "/" + tiles[i].path();
FILE *f = fopen(fn.c_str(), "rb");
if (f == NULL) {
perror(fn.c_str());
exit(EXIT_FAILURE);
}
std::string s;
char buf[2000];
ssize_t n;
while ((n = fread(buf, 1, 2000, f)) > 0) {
s.append(std::string(buf, n));
}
fclose(f);
handle(s, tiles[i].z, tiles[i].x, tiles[i].y, to_decode, pipeline, stats, state);
}
} else {
const char *sql = "SELECT tile_data, zoom_level, tile_column, tile_row from tiles where zoom_level between ? and ? order by zoom_level, tile_column, tile_row;";
sqlite3_stmt *stmt;
if (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL) != SQLITE_OK) {
fprintf(stderr, "%s: select failed: %s\n", fname, sqlite3_errmsg(db));
exit(EXIT_FAILURE);
}
sqlite3_bind_int(stmt, 1, minzoom);
sqlite3_bind_int(stmt, 2, maxzoom);
within = 0;
while (sqlite3_step(stmt) == SQLITE_ROW) {
if (!pipeline && !stats) {
if (within) {
state.json_comma_newline();
}
within = 1;
}
if (stats) {
if (within) {
state.json_comma_newline();
}
within = 1;
}
int len = sqlite3_column_bytes(stmt, 0);
int tz = sqlite3_column_int(stmt, 1);
int tx = sqlite3_column_int(stmt, 2);
int ty = sqlite3_column_int(stmt, 3);
if (tz < 0 || tz >= 32) {
fprintf(stderr, "Impossible zoom level %d in mbtiles\n", tz);
exit(EXIT_FAILURE);
}
ty = (1LL << tz) - 1 - ty;
const char *s = (const char *) sqlite3_column_blob(stmt, 0);
handle(std::string(s, len), tz, tx, ty, to_decode, pipeline, stats, state);
}
sqlite3_finalize(stmt);
}
if (!pipeline && !stats) {
state.json_end_array();
state.json_end_hash();
state.json_write_newline();
}
if (stats) {
state.json_end_array();
state.json_write_newline();
}
if (pipeline) {
state.json_write_newline();
}
} else {
int handled = 0;
while (z >= 0 && !handled) {
@ -447,7 +451,7 @@ void decode(char *fname, int z, unsigned x, unsigned y) {
fprintf(stderr, "%s: Warning: using tile %d/%u/%u instead of %d/%u/%u\n", fname, z, x, y, oz, ox, oy);
}
handle(std::string(s, len), z, x, y, 0);
handle(std::string(s, len), z, x, y, to_decode, pipeline, stats, state);
handled = 1;
}
@ -466,7 +470,7 @@ void decode(char *fname, int z, unsigned x, unsigned y) {
}
void usage(char **argv) {
fprintf(stderr, "Usage: %s [-t projection] file.mbtiles zoom x y\n", argv[0]);
fprintf(stderr, "Usage: %s [-s projection] [-Z minzoom] [-z maxzoom] [-l layer ...] file.mbtiles [zoom x y]\n", argv[0]);
exit(EXIT_FAILURE);
}
@ -474,22 +478,74 @@ int main(int argc, char **argv) {
extern int optind;
extern char *optarg;
int i;
std::set<std::string> to_decode;
bool pipeline = false;
bool stats = false;
while ((i = getopt(argc, argv, "t:")) != -1) {
struct option long_options[] = {
{"projection", required_argument, 0, 's'},
{"maximum-zoom", required_argument, 0, 'z'},
{"minimum-zoom", required_argument, 0, 'Z'},
{"layer", required_argument, 0, 'l'},
{"tag-layer-and-zoom", no_argument, 0, 'c'},
{"stats", no_argument, 0, 'S'},
{"force", no_argument, 0, 'f'},
{0, 0, 0, 0},
};
std::string getopt_str;
for (size_t lo = 0; long_options[lo].name != NULL; lo++) {
if (long_options[lo].val > ' ') {
getopt_str.push_back(long_options[lo].val);
if (long_options[lo].has_arg == required_argument) {
getopt_str.push_back(':');
}
}
}
while ((i = getopt_long(argc, argv, getopt_str.c_str(), long_options, NULL)) != -1) {
switch (i) {
case 't':
case 0:
break;
case 's':
set_projection_or_exit(optarg);
break;
case 'z':
maxzoom = atoi(optarg);
break;
case 'Z':
minzoom = atoi(optarg);
break;
case 'l':
to_decode.insert(optarg);
break;
case 'c':
pipeline = true;
break;
case 'S':
stats = true;
break;
case 'f':
force = true;
break;
default:
usage(argv);
}
}
if (argc == optind + 4) {
decode(argv[optind], atoi(argv[optind + 1]), atoi(argv[optind + 2]), atoi(argv[optind + 3]));
decode(argv[optind], atoi(argv[optind + 1]), atoi(argv[optind + 2]), atoi(argv[optind + 3]), to_decode, pipeline, stats);
} else if (argc == optind + 1) {
decode(argv[optind], -1, -1, -1);
decode(argv[optind], -1, -1, -1, to_decode, pipeline, stats);
} else {
usage(argv);
}

199
dirtiles.cpp Normal file
View File

@ -0,0 +1,199 @@
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>
#include <sqlite3.h>
#include "jsonpull/jsonpull.h"
#include "dirtiles.hpp"
std::string dir_read_tile(std::string base, struct zxy tile) {
std::ifstream pbfFile(base + "/" + tile.path(), std::ios::in | std::ios::binary);
std::ostringstream contents;
contents << pbfFile.rdbuf();
pbfFile.close();
return (contents.str());
}
void dir_write_tile(const char *outdir, int z, int tx, int ty, std::string const &pbf) {
mkdir(outdir, S_IRWXU | S_IRWXG | S_IRWXO);
std::string curdir(outdir);
std::string slash("/");
std::string newdir = curdir + slash + std::to_string(z);
mkdir(newdir.c_str(), S_IRWXU | S_IRWXG | S_IRWXO);
newdir = newdir + "/" + std::to_string(tx);
mkdir(newdir.c_str(), S_IRWXU | S_IRWXG | S_IRWXO);
newdir = newdir + "/" + std::to_string(ty) + ".pbf";
struct stat st;
if (stat(newdir.c_str(), &st) == 0) {
fprintf(stderr, "Can't write tile to already existing %s\n", newdir.c_str());
exit(EXIT_FAILURE);
}
std::ofstream pbfFile(newdir, std::ios::out | std::ios::binary);
pbfFile.write(pbf.data(), pbf.size());
pbfFile.close();
}
static bool numeric(const char *s) {
if (*s == '\0') {
return false;
}
for (; *s != 0; s++) {
if (*s < '0' || *s > '9') {
return false;
}
}
return true;
}
static bool pbfname(const char *s) {
while (*s >= '0' && *s <= '9') {
s++;
}
return strcmp(s, ".pbf") == 0;
}
void check_dir(const char *dir, bool force, bool forcetable) {
struct stat st;
std::string meta = std::string(dir) + "/" + "metadata.json";
if (force) {
unlink(meta.c_str()); // error OK since it may not exist;
} else {
if (stat(meta.c_str(), &st) == 0) {
fprintf(stderr, "%s: file exists\n", meta.c_str());
if (!forcetable) {
exit(EXIT_FAILURE);
}
}
}
if (forcetable) {
// Don't clear existing tiles
return;
}
std::vector<zxy> tiles = enumerate_dirtiles(dir);
for (size_t i = 0; i < tiles.size(); i++) {
std::string fn = std::string(dir) + "/" + tiles[i].path();
if (force) {
if (unlink(fn.c_str()) != 0) {
perror(fn.c_str());
exit(EXIT_FAILURE);
}
} else {
fprintf(stderr, "%s: file exists\n", fn.c_str());
exit(EXIT_FAILURE);
}
}
}
std::vector<zxy> enumerate_dirtiles(const char *fname) {
std::vector<zxy> tiles;
DIR *d1 = opendir(fname);
if (d1 != NULL) {
struct dirent *dp;
while ((dp = readdir(d1)) != NULL) {
if (numeric(dp->d_name)) {
std::string z = std::string(fname) + "/" + dp->d_name;
int tz = atoi(dp->d_name);
DIR *d2 = opendir(z.c_str());
if (d2 == NULL) {
perror(z.c_str());
exit(EXIT_FAILURE);
}
struct dirent *dp2;
while ((dp2 = readdir(d2)) != NULL) {
if (numeric(dp2->d_name)) {
std::string x = z + "/" + dp2->d_name;
int tx = atoi(dp2->d_name);
DIR *d3 = opendir(x.c_str());
if (d3 == NULL) {
perror(x.c_str());
exit(EXIT_FAILURE);
}
struct dirent *dp3;
while ((dp3 = readdir(d3)) != NULL) {
if (pbfname(dp3->d_name)) {
int ty = atoi(dp3->d_name);
tiles.push_back(zxy(tz, tx, ty));
}
}
closedir(d3);
}
}
closedir(d2);
}
}
closedir(d1);
}
std::sort(tiles.begin(), tiles.end());
return tiles;
}
sqlite3 *dirmeta2tmp(const char *fname) {
sqlite3 *db;
char *err = NULL;
if (sqlite3_open("", &db) != SQLITE_OK) {
fprintf(stderr, "Temporary db: %s\n", sqlite3_errmsg(db));
exit(EXIT_FAILURE);
}
if (sqlite3_exec(db, "CREATE TABLE metadata (name text, value text);", NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "Create metadata table: %s\n", err);
exit(EXIT_FAILURE);
}
std::string name = fname;
name += "/metadata.json";
FILE *f = fopen(name.c_str(), "r");
if (f == NULL) {
perror(name.c_str());
exit(EXIT_FAILURE);
}
json_pull *jp = json_begin_file(f);
json_object *o = json_read_tree(jp);
if (o->type != JSON_HASH) {
fprintf(stderr, "%s: bad metadata format\n", name.c_str());
exit(EXIT_FAILURE);
}
for (size_t i = 0; i < o->length; i++) {
if (o->keys[i]->type != JSON_STRING || o->values[i]->type != JSON_STRING) {
fprintf(stderr, "%s: non-string in metadata\n", name.c_str());
}
char *sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES (%Q, %Q);", o->keys[i]->string, o->values[i]->string);
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set %s in metadata: %s\n", o->keys[i]->string, err);
}
sqlite3_free(sql);
}
json_end(jp);
fclose(f);
return db;
}

47
dirtiles.hpp Normal file
View File

@ -0,0 +1,47 @@
#include <string>
#include <vector>
#ifndef DIRTILES_HPP
#define DIRTILES_HPP
void dir_write_tile(const char *outdir, int z, int tx, int ty, std::string const &pbf);
void check_dir(const char *d, bool force, bool forcetable);
struct zxy {
long long z;
long long x;
long long y;
zxy(int _z, int _x, int _y)
: z(_z), x(_x), y(_y) {
}
bool operator<(const zxy &other) const {
if (z < other.z) {
return true;
}
if (z == other.z) {
if (x < other.x) {
return true;
}
if (x == other.x) {
if (y > other.y) {
return true; // reversed for TMS
}
}
}
return false;
}
std::string path() {
return std::to_string(z) + "/" + std::to_string(x) + "/" + std::to_string(y) + ".pbf";
}
};
std::vector<zxy> enumerate_dirtiles(const char *fname);
sqlite3 *dirmeta2tmp(const char *fname);
std::string dir_read_tile(std::string pbfPath, struct zxy tile);
#endif

View File

@ -11,6 +11,12 @@ void enumerate(char *fname) {
exit(EXIT_FAILURE);
}
char *err = NULL;
if (sqlite3_exec(db, "PRAGMA integrity_check;", NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "%s: integrity_check: %s\n", fname, err);
exit(EXIT_FAILURE);
}
const char *sql = "SELECT zoom_level, tile_column, tile_row from tiles order by zoom_level, tile_column, tile_row;";
sqlite3_stmt *stmt;
@ -24,6 +30,11 @@ void enumerate(char *fname) {
long long x = sqlite3_column_int(stmt, 1);
long long y = sqlite3_column_int(stmt, 2);
if (zoom < 0 || zoom > 31) {
fprintf(stderr, "Corrupt mbtiles file: impossible zoom level %lld\n", zoom);
exit(EXIT_FAILURE);
}
y = (1LL << zoom) - 1 - y;
printf("%s %lld %lld %lld\n", fname, zoom, x, y);
}

328
evaluator.cpp Normal file
View File

@ -0,0 +1,328 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <map>
#include "mvt.hpp"
#include "evaluator.hpp"
int compare(mvt_value one, json_object *two, bool &fail) {
if (one.type == mvt_string) {
if (two->type != JSON_STRING) {
fail = true;
return false; // string vs non-string
}
return strcmp(one.string_value.c_str(), two->string);
}
if (one.type == mvt_double || one.type == mvt_float || one.type == mvt_int || one.type == mvt_uint || one.type == mvt_sint) {
if (two->type != JSON_NUMBER) {
fail = true;
return false; // number vs non-number
}
double v;
if (one.type == mvt_double) {
v = one.numeric_value.double_value;
} else if (one.type == mvt_float) {
v = one.numeric_value.float_value;
} else if (one.type == mvt_int) {
v = one.numeric_value.int_value;
} else if (one.type == mvt_uint) {
v = one.numeric_value.uint_value;
} else if (one.type == mvt_sint) {
v = one.numeric_value.sint_value;
} else {
fprintf(stderr, "Internal error: bad mvt type %d\n", one.type);
exit(EXIT_FAILURE);
}
if (v < two->number) {
return -1;
} else if (v > two->number) {
return 1;
} else {
return 0;
}
}
if (one.type == mvt_bool) {
if (two->type != JSON_TRUE && two->type != JSON_FALSE) {
fail = true;
return false; // bool vs non-bool
}
bool b = two->type != JSON_FALSE;
return one.numeric_value.bool_value > b;
}
if (one.type == mvt_null) {
if (two->type != JSON_NULL) {
fail = true;
return false; // null vs non-null
}
return 0; // null equals null
}
fprintf(stderr, "Internal error: bad mvt type %d\n", one.type);
exit(EXIT_FAILURE);
}
bool eval(std::map<std::string, mvt_value> const &feature, json_object *f) {
if (f == NULL || f->type != JSON_ARRAY) {
fprintf(stderr, "Filter is not an array: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
if (f->length < 1) {
fprintf(stderr, "Array too small in filter: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
if (f->array[0]->type != JSON_STRING) {
fprintf(stderr, "Filter operation is not a string: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
if (strcmp(f->array[0]->string, "has") == 0 ||
strcmp(f->array[0]->string, "!has") == 0) {
if (f->length != 2) {
fprintf(stderr, "Wrong number of array elements in filter: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
if (strcmp(f->array[0]->string, "has") == 0) {
if (f->array[1]->type != JSON_STRING) {
fprintf(stderr, "\"has\" key is not a string: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
return feature.count(std::string(f->array[1]->string)) != 0;
}
if (strcmp(f->array[0]->string, "!has") == 0) {
if (f->array[1]->type != JSON_STRING) {
fprintf(stderr, "\"!has\" key is not a string: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
return feature.count(std::string(f->array[1]->string)) == 0;
}
}
if (strcmp(f->array[0]->string, "==") == 0 ||
strcmp(f->array[0]->string, "!=") == 0 ||
strcmp(f->array[0]->string, ">") == 0 ||
strcmp(f->array[0]->string, ">=") == 0 ||
strcmp(f->array[0]->string, "<") == 0 ||
strcmp(f->array[0]->string, "<=") == 0) {
if (f->length != 3) {
fprintf(stderr, "Wrong number of array elements in filter: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
if (f->array[1]->type != JSON_STRING) {
fprintf(stderr, "\"!has\" key is not a string: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
auto ff = feature.find(std::string(f->array[1]->string));
if (ff == feature.end()) {
static bool warned = false;
if (!warned) {
const char *s = json_stringify(f);
fprintf(stderr, "Warning: attribute not found for comparison: %s\n", s);
free((void *) s);
warned = true;
}
if (strcmp(f->array[0]->string, "!=") == 0) {
return true; // attributes that aren't found are not equal
}
return false; // not found: comparison is false
}
bool fail = false;
int cmp = compare(ff->second, f->array[2], fail);
if (fail) {
static bool warned = false;
if (!warned) {
const char *s = json_stringify(f);
fprintf(stderr, "Warning: mismatched type in comparison: %s\n", s);
free((void *) s);
warned = true;
}
if (strcmp(f->array[0]->string, "!=") == 0) {
return true; // mismatched types are not equal
}
return false;
}
if (strcmp(f->array[0]->string, "==") == 0) {
return cmp == 0;
}
if (strcmp(f->array[0]->string, "!=") == 0) {
return cmp != 0;
}
if (strcmp(f->array[0]->string, ">") == 0) {
return cmp > 0;
}
if (strcmp(f->array[0]->string, ">=") == 0) {
return cmp >= 0;
}
if (strcmp(f->array[0]->string, "<") == 0) {
return cmp < 0;
}
if (strcmp(f->array[0]->string, "<=") == 0) {
return cmp <= 0;
}
fprintf(stderr, "Internal error: can't happen: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
if (strcmp(f->array[0]->string, "all") == 0 ||
strcmp(f->array[0]->string, "any") == 0 ||
strcmp(f->array[0]->string, "none") == 0) {
bool v;
if (strcmp(f->array[0]->string, "all") == 0) {
v = true;
} else {
v = false;
}
for (size_t i = 1; i < f->length; i++) {
bool out = eval(feature, f->array[i]);
if (strcmp(f->array[0]->string, "all") == 0) {
v = v && out;
if (!v) {
break;
}
} else {
v = v || out;
if (v) {
break;
}
}
}
if (strcmp(f->array[0]->string, "none") == 0) {
return !v;
} else {
return v;
}
}
if (strcmp(f->array[0]->string, "in") == 0 ||
strcmp(f->array[0]->string, "!in") == 0) {
if (f->length < 2) {
fprintf(stderr, "Array too small in filter: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
if (f->array[1]->type != JSON_STRING) {
fprintf(stderr, "\"!has\" key is not a string: %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
auto ff = feature.find(std::string(f->array[1]->string));
if (ff == feature.end()) {
static bool warned = false;
if (!warned) {
const char *s = json_stringify(f);
fprintf(stderr, "Warning: attribute not found for comparison: %s\n", s);
free((void *) s);
warned = true;
}
if (strcmp(f->array[0]->string, "!in") == 0) {
return true; // attributes that aren't found are not in
}
return false; // not found: comparison is false
}
bool found = false;
for (size_t i = 2; i < f->length; i++) {
bool fail = false;
int cmp = compare(ff->second, f->array[i], fail);
if (fail) {
static bool warned = false;
if (!warned) {
const char *s = json_stringify(f);
fprintf(stderr, "Warning: mismatched type in comparison: %s\n", s);
free((void *) s);
warned = true;
}
cmp = 1;
}
if (cmp == 0) {
found = true;
break;
}
}
if (strcmp(f->array[0]->string, "in") == 0) {
return found;
} else {
return !found;
}
}
fprintf(stderr, "Unknown filter %s\n", json_stringify(f));
exit(EXIT_FAILURE);
}
bool evaluate(std::map<std::string, mvt_value> const &feature, std::string const &layer, json_object *filter) {
if (filter == NULL || filter->type != JSON_HASH) {
fprintf(stderr, "Error: filter is not a hash: %s\n", json_stringify(filter));
exit(EXIT_FAILURE);
}
bool ok = true;
json_object *f;
f = json_hash_get(filter, layer.c_str());
if (ok && f != NULL) {
ok = eval(feature, f);
}
f = json_hash_get(filter, "*");
if (ok && f != NULL) {
ok = eval(feature, f);
}
return ok;
}
json_object *read_filter(const char *fname) {
FILE *fp = fopen(fname, "r");
if (fp == NULL) {
perror(fname);
exit(EXIT_FAILURE);
}
json_pull *jp = json_begin_file(fp);
json_object *filter = json_read_tree(jp);
if (filter == NULL) {
fprintf(stderr, "%s: %s\n", fname, jp->error);
exit(EXIT_FAILURE);
}
json_disconnect(filter);
json_end(jp);
fclose(fp);
return filter;
}
json_object *parse_filter(const char *s) {
json_pull *jp = json_begin_string(s);
json_object *filter = json_read_tree(jp);
if (filter == NULL) {
fprintf(stderr, "Could not parse filter %s\n", s);
fprintf(stderr, "%s\n", jp->error);
exit(EXIT_FAILURE);
}
json_disconnect(filter);
json_end(jp);
return filter;
}

13
evaluator.hpp Normal file
View File

@ -0,0 +1,13 @@
#ifndef EVALUATOR_HPP
#define EVALUATOR HPP
#include <map>
#include <string>
#include "jsonpull/jsonpull.h"
#include "mvt.hpp"
bool evaluate(std::map<std::string, mvt_value> const &feature, std::string const &layer, json_object *filter);
json_object *parse_filter(const char *s);
json_object *read_filter(const char *fname);
#endif

27
filters/limit-tiles-to-bbox Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/perl
use Math::Trig;
use strict;
# http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
sub getTileNumber {
my ($lat, $lon, $zoom) = @_;
my $xtile = int(($lon + 180) / 360 * 2 ** $zoom);
my $ytile = int((1 - log(tan(deg2rad($lat)) + sec(deg2rad($lat))) / pi) / 2 * 2 ** $zoom);
return ($xtile, $ytile);
}
my ($minlon, $minlat, $maxlon, $maxlat, $z, $x, $y) = @ARGV;
my ($x1, $y1) = getTileNumber($maxlat, $minlon, $z);
my ($x2, $y2) = getTileNumber($minlat, $maxlon, $z);
if ($x >= $x1 && $x <= $x2 && $y >= $y1 && $y <= $y2) {
while (<STDIN>) {
print;
}
} else {
while (<STDIN>) {
}
}

582
geobuf.cpp Normal file
View File

@ -0,0 +1,582 @@
#include <stdio.h>
#include <string>
#include <limits.h>
#include <pthread.h>
#include "mvt.hpp"
#include "serial.hpp"
#include "geobuf.hpp"
#include "geojson.hpp"
#include "projection.hpp"
#include "main.hpp"
#include "protozero/varint.hpp"
#include "protozero/pbf_reader.hpp"
#include "protozero/pbf_writer.hpp"
#include "milo/dtoa_milo.h"
#include "jsonpull/jsonpull.h"
#define POINT 0
#define MULTIPOINT 1
#define LINESTRING 2
#define MULTILINESTRING 3
#define POLYGON 4
#define MULTIPOLYGON 5
struct queued_feature {
protozero::pbf_reader pbf{};
size_t dim = 0;
double e = 0;
std::vector<std::string> *keys = NULL;
std::vector<struct serialization_state> *sst = NULL;
int layer = 0;
std::string layername = "";
};
static std::vector<queued_feature> feature_queue;
void ensureDim(size_t dim) {
if (dim < 2) {
fprintf(stderr, "Geometry has fewer than 2 dimensions: %zu\n", dim);
exit(EXIT_FAILURE);
}
}
serial_val readValue(protozero::pbf_reader &pbf) {
serial_val sv;
sv.type = mvt_null;
sv.s = "null";
while (pbf.next()) {
switch (pbf.tag()) {
case 1:
sv.type = mvt_string;
sv.s = pbf.get_string();
break;
case 2:
sv.type = mvt_double;
sv.s = milo::dtoa_milo(pbf.get_double());
break;
case 3:
sv.type = mvt_double;
sv.s = std::to_string(pbf.get_uint64());
break;
case 4:
sv.type = mvt_double;
sv.s = std::to_string(-(long long) pbf.get_uint64());
break;
case 5:
sv.type = mvt_bool;
if (pbf.get_bool()) {
sv.s = "true";
} else {
sv.s = "false";
}
break;
case 6:
sv.type = mvt_string; // stringified JSON
sv.s = pbf.get_string();
if (sv.s == "null") {
sv.type = mvt_null;
}
break;
default:
pbf.skip();
}
}
return sv;
}
drawvec readPoint(std::vector<long long> &coords, size_t dim, double e) {
ensureDim(dim);
long long x, y;
projection->project(coords[0] / e, coords[1] / e, 32, &x, &y);
drawvec dv;
dv.push_back(draw(VT_MOVETO, x, y));
return dv;
}
drawvec readLinePart(std::vector<long long> &coords, size_t dim, double e, size_t start, size_t end, bool closed) {
ensureDim(dim);
drawvec dv;
std::vector<long long> prev;
std::vector<double> p;
prev.resize(dim);
p.resize(dim);
for (size_t i = start; i + dim - 1 < end; i += dim) {
if (i + dim - 1 >= coords.size()) {
fprintf(stderr, "Internal error: line segment %zu vs %zu\n", i + dim - 1, coords.size());
exit(EXIT_FAILURE);
}
for (size_t d = 0; d < dim; d++) {
prev[d] += coords[i + d];
p[d] = prev[d] / e;
}
long long x, y;
projection->project(p[0], p[1], 32, &x, &y);
if (i == start) {
dv.push_back(draw(VT_MOVETO, x, y));
} else {
dv.push_back(draw(VT_LINETO, x, y));
}
}
if (closed && dv.size() > 0) {
dv.push_back(draw(VT_LINETO, dv[0].x, dv[0].y));
}
return dv;
}
drawvec readLine(std::vector<long long> &coords, size_t dim, double e, bool closed) {
return readLinePart(coords, dim, e, 0, coords.size(), closed);
}
drawvec readMultiLine(std::vector<long long> &coords, std::vector<int> &lengths, size_t dim, double e, bool closed) {
if (lengths.size() == 0) {
return readLinePart(coords, dim, e, 0, coords.size(), closed);
}
drawvec dv;
size_t here = 0;
for (size_t i = 0; i < lengths.size(); i++) {
drawvec dv2 = readLinePart(coords, dim, e, here, here + lengths[i] * dim, closed);
here += lengths[i] * dim;
for (size_t j = 0; j < dv2.size(); j++) {
dv.push_back(dv2[j]);
}
}
return dv;
}
drawvec readMultiPolygon(std::vector<long long> &coords, std::vector<int> &lengths, size_t dim, double e) {
ensureDim(dim);
if (lengths.size() == 0) {
return readLinePart(coords, dim, e, 0, coords.size(), true);
}
size_t polys = lengths[0];
size_t n = 1;
size_t here = 0;
drawvec dv;
for (size_t i = 0; i < polys; i++) {
size_t rings = lengths[n++];
for (size_t j = 0; j < rings; j++) {
drawvec dv2 = readLinePart(coords, dim, e, here, here + lengths[n] * dim, true);
here += lengths[n] * dim;
n++;
for (size_t k = 0; k < dv2.size(); k++) {
dv.push_back(dv2[k]);
}
}
dv.push_back(draw(VT_CLOSEPATH, 0, 0)); // mark that the next ring is outer
}
return dv;
}
struct drawvec_type {
drawvec dv{};
int type = 0;
};
std::vector<drawvec_type> readGeometry(protozero::pbf_reader &pbf, size_t dim, double e, std::vector<std::string> &keys) {
std::vector<drawvec_type> ret;
std::vector<long long> coords;
std::vector<int> lengths;
int type = -1;
while (pbf.next()) {
switch (pbf.tag()) {
case 1:
type = pbf.get_enum();
break;
case 2: {
auto pi = pbf.get_packed_uint32();
for (auto it = pi.first; it != pi.second; ++it) {
lengths.push_back(*it);
}
break;
}
case 3: {
auto pi = pbf.get_packed_sint64();
for (auto it = pi.first; it != pi.second; ++it) {
coords.push_back(*it);
}
break;
}
case 4: {
protozero::pbf_reader geometry_reader(pbf.get_message());
std::vector<drawvec_type> dv2 = readGeometry(geometry_reader, dim, e, keys);
for (size_t i = 0; i < dv2.size(); i++) {
ret.push_back(dv2[i]);
}
break;
}
default:
pbf.skip();
}
}
drawvec_type dv;
if (type == POINT) {
dv.dv = readPoint(coords, dim, e);
} else if (type == MULTIPOINT) {
dv.dv = readLine(coords, dim, e, false);
} else if (type == LINESTRING) {
dv.dv = readLine(coords, dim, e, false);
} else if (type == POLYGON) {
dv.dv = readMultiLine(coords, lengths, dim, e, true);
} else if (type == MULTIPOLYGON) {
dv.dv = readMultiPolygon(coords, lengths, dim, e);
} else {
// GeometryCollection
return ret;
}
dv.type = type / 2 + 1;
ret.push_back(dv);
return ret;
}
void readFeature(protozero::pbf_reader &pbf, size_t dim, double e, std::vector<std::string> &keys, struct serialization_state *sst, int layer, std::string layername) {
std::vector<drawvec_type> dv;
long long id = 0;
bool has_id = false;
std::vector<serial_val> values;
std::map<std::string, serial_val> other;
std::vector<std::string> full_keys;
std::vector<serial_val> full_values;
while (pbf.next()) {
switch (pbf.tag()) {
case 1: {
protozero::pbf_reader geometry_reader(pbf.get_message());
std::vector<drawvec_type> dv2 = readGeometry(geometry_reader, dim, e, keys);
for (size_t i = 0; i < dv2.size(); i++) {
dv.push_back(dv2[i]);
}
break;
}
case 11: {
static bool warned = false;
if (!warned) {
fprintf(stderr, "Non-numeric feature IDs not supported\n");
warned = true;
}
pbf.skip();
break;
}
case 12:
has_id = true;
id = pbf.get_sint64();
if (id < 0) {
static bool warned = false;
if (!warned) {
fprintf(stderr, "Out of range feature id %lld\n", id);
warned = true;
}
has_id = false;
}
break;
case 13: {
protozero::pbf_reader value_reader(pbf.get_message());
values.push_back(readValue(value_reader));
break;
}
case 14: {
std::vector<size_t> properties;
auto pi = pbf.get_packed_uint32();
for (auto it = pi.first; it != pi.second; ++it) {
properties.push_back(*it);
}
for (size_t i = 0; i + 1 < properties.size(); i += 2) {
if (properties[i] >= keys.size()) {
fprintf(stderr, "Out of bounds key: %zu in %zu\n", properties[i], keys.size());
exit(EXIT_FAILURE);
}
if (properties[i + 1] >= values.size()) {
fprintf(stderr, "Out of bounds value: %zu in %zu\n", properties[i + 1], values.size());
exit(EXIT_FAILURE);
}
full_keys.push_back(keys[properties[i]]);
full_values.push_back(values[properties[i + 1]]);
}
values.clear();
break;
}
case 15: {
std::vector<size_t> misc;
auto pi = pbf.get_packed_uint32();
for (auto it = pi.first; it != pi.second; ++it) {
misc.push_back(*it);
}
for (size_t i = 0; i + 1 < misc.size(); i += 2) {
if (misc[i] >= keys.size()) {
fprintf(stderr, "Out of bounds key: %zu in %zu\n", misc[i], keys.size());
exit(EXIT_FAILURE);
}
if (misc[i + 1] >= values.size()) {
fprintf(stderr, "Out of bounds value: %zu in %zu\n", misc[i + 1], values.size());
exit(EXIT_FAILURE);
}
other.insert(std::pair<std::string, serial_val>(keys[misc[i]], values[misc[i + 1]]));
}
values.clear();
break;
}
default:
pbf.skip();
}
}
for (size_t i = 0; i < dv.size(); i++) {
serial_feature sf;
sf.layer = layer;
sf.layername = layername;
sf.segment = sst->segment;
sf.has_id = has_id;
sf.id = id;
sf.has_tippecanoe_minzoom = false;
sf.has_tippecanoe_maxzoom = false;
sf.feature_minzoom = false;
sf.seq = *(sst->layer_seq);
sf.geometry = dv[i].dv;
sf.t = dv[i].type;
sf.full_keys = full_keys;
sf.full_values = full_values;
auto tip = other.find("tippecanoe");
if (tip != other.end()) {
json_pull *jp = json_begin_string(tip->second.s.c_str());
json_object *o = json_read_tree(jp);
if (o != NULL) {
json_object *min = json_hash_get(o, "minzoom");
if (min != NULL && (min->type == JSON_STRING || min->type == JSON_NUMBER)) {
sf.has_tippecanoe_minzoom = true;
sf.tippecanoe_minzoom = atoi(min->string);
}
json_object *max = json_hash_get(o, "maxzoom");
if (max != NULL && (max->type == JSON_STRING || max->type == JSON_NUMBER)) {
sf.has_tippecanoe_maxzoom = true;
sf.tippecanoe_maxzoom = atoi(max->string);
}
json_object *tlayer = json_hash_get(o, "layer");
if (tlayer != NULL && (tlayer->type == JSON_STRING || tlayer->type == JSON_NUMBER)) {
sf.layername = tlayer->string;
}
}
json_free(o);
json_end(jp);
}
serialize_feature(sst, sf);
}
}
struct queue_run_arg {
size_t start;
size_t end;
size_t segment;
queue_run_arg(size_t start1, size_t end1, size_t segment1)
: start(start1), end(end1), segment(segment1) {
}
};
void *run_parse_feature(void *v) {
struct queue_run_arg *qra = (struct queue_run_arg *) v;
for (size_t i = qra->start; i < qra->end; i++) {
struct queued_feature &qf = feature_queue[i];
readFeature(qf.pbf, qf.dim, qf.e, *qf.keys, &(*qf.sst)[qra->segment], qf.layer, qf.layername);
}
return NULL;
}
void runQueue() {
if (feature_queue.size() == 0) {
return;
}
std::vector<struct queue_run_arg> qra;
std::vector<pthread_t> pthreads;
pthreads.resize(CPUS);
for (size_t i = 0; i < CPUS; i++) {
*((*(feature_queue[0].sst))[i].layer_seq) = *((*(feature_queue[0].sst))[0].layer_seq) + feature_queue.size() * i / CPUS;
qra.push_back(queue_run_arg(
feature_queue.size() * i / CPUS,
feature_queue.size() * (i + 1) / CPUS,
i));
}
for (size_t i = 0; i < CPUS; i++) {
if (pthread_create(&pthreads[i], NULL, run_parse_feature, &qra[i]) != 0) {
perror("pthread_create");
exit(EXIT_FAILURE);
}
}
for (size_t i = 0; i < CPUS; i++) {
void *retval;
if (pthread_join(pthreads[i], &retval) != 0) {
perror("pthread_join");
}
}
// Lack of atomicity is OK, since we are single-threaded again here
long long was = *((*(feature_queue[0].sst))[CPUS - 1].layer_seq);
*((*(feature_queue[0].sst))[0].layer_seq) = was;
feature_queue.clear();
}
void queueFeature(protozero::pbf_reader &pbf, size_t dim, double e, std::vector<std::string> &keys, std::vector<struct serialization_state> *sst, int layer, std::string layername) {
struct queued_feature qf;
qf.pbf = pbf;
qf.dim = dim;
qf.e = e;
qf.keys = &keys;
qf.sst = sst;
qf.layer = layer;
qf.layername = layername;
feature_queue.push_back(qf);
if (feature_queue.size() > CPUS * 500) {
runQueue();
}
}
void outBareGeometry(drawvec const &dv, int type, struct serialization_state *sst, int layer, std::string layername) {
serial_feature sf;
sf.layer = layer;
sf.layername = layername;
sf.segment = sst->segment;
sf.has_id = false;
sf.has_tippecanoe_minzoom = false;
sf.has_tippecanoe_maxzoom = false;
sf.feature_minzoom = false;
sf.seq = (*sst->layer_seq);
sf.geometry = dv;
sf.t = type;
serialize_feature(sst, sf);
}
void readFeatureCollection(protozero::pbf_reader &pbf, size_t dim, double e, std::vector<std::string> &keys, std::vector<struct serialization_state> *sst, int layer, std::string layername) {
while (pbf.next()) {
switch (pbf.tag()) {
case 1: {
protozero::pbf_reader feature_reader(pbf.get_message());
queueFeature(feature_reader, dim, e, keys, sst, layer, layername);
break;
}
default:
pbf.skip();
}
}
}
void parse_geobuf(std::vector<struct serialization_state> *sst, const char *src, size_t len, int layer, std::string layername) {
protozero::pbf_reader pbf(src, len);
size_t dim = 2;
double e = 1e6;
std::vector<std::string> keys;
while (pbf.next()) {
switch (pbf.tag()) {
case 1:
keys.push_back(pbf.get_string());
break;
case 2:
dim = pbf.get_int64();
break;
case 3:
e = pow(10, pbf.get_int64());
break;
case 4: {
protozero::pbf_reader feature_collection_reader(pbf.get_message());
readFeatureCollection(feature_collection_reader, dim, e, keys, sst, layer, layername);
break;
}
case 5: {
protozero::pbf_reader feature_reader(pbf.get_message());
queueFeature(feature_reader, dim, e, keys, sst, layer, layername);
break;
}
case 6: {
protozero::pbf_reader geometry_reader(pbf.get_message());
std::vector<drawvec_type> dv = readGeometry(geometry_reader, dim, e, keys);
for (size_t i = 0; i < dv.size(); i++) {
// Always on thread 0
outBareGeometry(dv[i].dv, dv[i].type, &(*sst)[0], layer, layername);
}
break;
}
default:
pbf.skip();
}
}
runQueue();
}

13
geobuf.hpp Normal file
View File

@ -0,0 +1,13 @@
#ifndef GEOBUF_HPP
#define GEOBUF_HPP
#include <stdio.h>
#include <set>
#include <map>
#include <string>
#include "mbtiles.hpp"
#include "serial.hpp"
void parse_geobuf(std::vector<struct serialization_state> *sst, const char *s, size_t len, int layer, std::string layername);
#endif

127
geocsv.cpp Normal file
View File

@ -0,0 +1,127 @@
#include <stdlib.h>
#include <algorithm>
#include "geocsv.hpp"
#include "mvt.hpp"
#include "serial.hpp"
#include "projection.hpp"
#include "main.hpp"
#include "text.hpp"
#include "csv.hpp"
#include "milo/dtoa_milo.h"
void parse_geocsv(std::vector<struct serialization_state> &sst, std::string fname, int layer, std::string layername) {
FILE *f = fopen(fname.c_str(), "r");
if (f == NULL) {
perror(fname.c_str());
exit(EXIT_FAILURE);
}
std::string s;
std::vector<std::string> header;
ssize_t latcol = -1, loncol = -1;
if ((s = csv_getline(f)).size() > 0) {
std::string err = check_utf8(s);
if (err != "") {
fprintf(stderr, "%s: %s\n", fname.c_str(), err.c_str());
exit(EXIT_FAILURE);
}
header = csv_split(s.c_str());
for (size_t i = 0; i < header.size(); i++) {
header[i] = csv_dequote(header[i]);
std::string lower(header[i]);
std::transform(lower.begin(), lower.end(), lower.begin(), ::tolower);
if (lower == "y" || lower == "lat" || (lower.find("latitude") != std::string::npos)) {
latcol = i;
}
if (lower == "x" || lower == "lon" || lower == "lng" || lower == "long" || (lower.find("longitude") != std::string::npos)) {
loncol = i;
}
}
}
if (latcol < 0 || loncol < 0) {
fprintf(stderr, "%s: Can't find \"lat\" and \"lon\" columns\n", fname.c_str());
exit(EXIT_FAILURE);
}
size_t seq = 0;
while ((s = csv_getline(f)).size() > 0) {
std::string err = check_utf8(s);
if (err != "") {
fprintf(stderr, "%s: %s\n", fname.c_str(), err.c_str());
exit(EXIT_FAILURE);
}
seq++;
std::vector<std::string> line = csv_split(s.c_str());
if (line.size() != header.size()) {
fprintf(stderr, "%s:%zu: Mismatched column count: %zu in line, %zu in header\n", fname.c_str(), seq + 1, line.size(), header.size());
exit(EXIT_FAILURE);
}
if (line[loncol].empty() || line[latcol].empty()) {
static int warned = 0;
if (!warned) {
fprintf(stderr, "%s:%zu: null geometry (additional not reported)\n", fname.c_str(), seq + 1);
warned = 1;
}
continue;
}
double lon = atof(line[loncol].c_str());
double lat = atof(line[latcol].c_str());
long long x, y;
projection->project(lon, lat, 32, &x, &y);
drawvec dv;
dv.push_back(draw(VT_MOVETO, x, y));
std::vector<std::string> full_keys;
std::vector<serial_val> full_values;
for (size_t i = 0; i < line.size(); i++) {
if (i != (size_t) latcol && i != (size_t) loncol) {
line[i] = csv_dequote(line[i]);
serial_val sv;
if (is_number(line[i])) {
sv.type = mvt_double;
} else {
sv.type = mvt_string;
}
sv.s = line[i];
full_keys.push_back(header[i]);
full_values.push_back(sv);
}
}
serial_feature sf;
sf.layer = layer;
sf.layername = layername;
sf.segment = sst[0].segment;
sf.has_id = false;
sf.id = 0;
sf.has_tippecanoe_minzoom = false;
sf.has_tippecanoe_maxzoom = false;
sf.feature_minzoom = false;
sf.seq = *(sst[0].layer_seq);
sf.geometry = dv;
sf.t = 1; // POINT
sf.full_keys = full_keys;
sf.full_values = full_values;
serialize_feature(&sst[0], sf);
}
if (fclose(f) != 0) {
perror("fclose");
exit(EXIT_FAILURE);
}
}

13
geocsv.hpp Normal file
View File

@ -0,0 +1,13 @@
#ifndef GEOCSV_HPP
#define GEOCSV_HPP
#include <stdio.h>
#include <set>
#include <map>
#include <string>
#include "mbtiles.hpp"
#include "serial.hpp"
void parse_geocsv(std::vector<struct serialization_state> &sst, std::string fname, int layer, std::string layername);
#endif

View File

@ -20,14 +20,11 @@
#include <sys/resource.h>
#include <pthread.h>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <string>
extern "C" {
#include "jsonpull/jsonpull.h"
}
#include "pool.hpp"
#include "projection.hpp"
#include "memfile.hpp"
@ -38,141 +35,15 @@ extern "C" {
#include "options.hpp"
#include "serial.hpp"
#include "text.hpp"
#include "read_json.hpp"
#include "mvt.hpp"
#define GEOM_POINT 0 /* array of positions */
#define GEOM_MULTIPOINT 1 /* array of arrays of positions */
#define GEOM_LINESTRING 2 /* array of arrays of positions */
#define GEOM_MULTILINESTRING 3 /* array of arrays of arrays of positions */
#define GEOM_POLYGON 4 /* array of arrays of arrays of positions */
#define GEOM_MULTIPOLYGON 5 /* array of arrays of arrays of arrays of positions */
#define GEOM_TYPES 6
static const char *geometry_names[GEOM_TYPES] = {
"Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon",
};
static int geometry_within[GEOM_TYPES] = {
-1, /* point */
GEOM_POINT, /* multipoint */
GEOM_POINT, /* linestring */
GEOM_LINESTRING, /* multilinestring */
GEOM_LINESTRING, /* polygon */
GEOM_POLYGON, /* multipolygon */
};
static int mb_geometry[GEOM_TYPES] = {
VT_POINT, VT_POINT, VT_LINE, VT_LINE, VT_POLYGON, VT_POLYGON,
};
void json_context(json_object *j) {
char *s = json_stringify(j);
if (strlen(s) >= 500) {
sprintf(s + 497, "...");
}
fprintf(stderr, "In JSON object %s\n", s);
free(s); // stringify
}
long long parse_geometry(int t, json_object *j, long long *bbox, drawvec &out, int op, const char *fname, int line, int *initialized, unsigned *initial_x, unsigned *initial_y, json_object *feature) {
long long g = 0;
if (j == NULL || j->type != JSON_ARRAY) {
fprintf(stderr, "%s:%d: expected array for type %d\n", fname, line, t);
json_context(feature);
return g;
}
int within = geometry_within[t];
if (within >= 0) {
size_t i;
for (i = 0; i < j->length; i++) {
if (within == GEOM_POINT) {
if (i == 0 || mb_geometry[t] == GEOM_MULTIPOINT) {
op = VT_MOVETO;
} else {
op = VT_LINETO;
}
}
g += parse_geometry(within, j->array[i], bbox, out, op, fname, line, initialized, initial_x, initial_y, feature);
}
} else {
if (j->length >= 2 && j->array[0]->type == JSON_NUMBER && j->array[1]->type == JSON_NUMBER) {
long long x, y;
double lon = j->array[0]->number;
double lat = j->array[1]->number;
projection->project(lon, lat, 32, &x, &y);
if (j->length > 2) {
static int warned = 0;
if (!warned) {
fprintf(stderr, "%s:%d: ignoring dimensions beyond two\n", fname, line);
json_context(j);
json_context(feature);
warned = 1;
}
}
if (x < bbox[0]) {
bbox[0] = x;
}
if (y < bbox[1]) {
bbox[1] = y;
}
if (x > bbox[2]) {
bbox[2] = x;
}
if (y > bbox[3]) {
bbox[3] = y;
}
if (!*initialized) {
if (x < 0 || x >= (1LL << 32) || y < 0 || y >= (1LL < 32)) {
*initial_x = 1LL << 31;
*initial_y = 1LL << 31;
} else {
*initial_x = (x >> geometry_scale) << geometry_scale;
*initial_y = (y >> geometry_scale) << geometry_scale;
}
*initialized = 1;
}
draw d(op, (x >> geometry_scale), (y >> geometry_scale));
out.push_back(d);
g++;
} else {
fprintf(stderr, "%s:%d: malformed point\n", fname, line);
json_context(j);
json_context(feature);
}
}
if (t == GEOM_POLYGON) {
// Note that this is not using the correct meaning of closepath.
//
// We are using it here to close an entire Polygon, to distinguish
// the Polygons within a MultiPolygon from each other.
//
// This will be undone in fix_polygon(), which needs to know which
// rings come from which Polygons so that it can make the winding order
// of the outer ring be the opposite of the order of the inner rings.
out.push_back(draw(VT_CLOSEPATH, 0, 0));
}
return g;
}
int serialize_geometry(json_object *geometry, json_object *properties, json_object *id, const char *reading, int line, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set<std::string> *exclude, std::set<std::string> *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, const char *fname, int basezoom, int layer, double droprate, long long *file_bbox, json_object *tippecanoe, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, json_object *feature, std::map<std::string, layermap_entry> *layermap, std::string layername, bool uses_gamma) {
int serialize_geojson_feature(struct serialization_state *sst, json_object *geometry, json_object *properties, json_object *id, int layer, json_object *tippecanoe, json_object *feature, std::string layername) {
json_object *geometry_type = json_hash_get(geometry, "type");
if (geometry_type == NULL) {
static int warned = 0;
if (!warned) {
fprintf(stderr, "%s:%d: null geometry (additional not reported)\n", reading, line);
fprintf(stderr, "%s:%d: null geometry (additional not reported)\n", sst->fname, sst->line);
json_context(feature);
warned = 1;
}
@ -181,14 +52,14 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje
}
if (geometry_type->type != JSON_STRING) {
fprintf(stderr, "%s:%d: geometry type is not a string\n", reading, line);
fprintf(stderr, "%s:%d: geometry type is not a string\n", sst->fname, sst->line);
json_context(feature);
return 0;
}
json_object *coordinates = json_hash_get(geometry, "coordinates");
if (coordinates == NULL || coordinates->type != JSON_ARRAY) {
fprintf(stderr, "%s:%d: feature without coordinates array\n", reading, line);
fprintf(stderr, "%s:%d: feature without coordinates array\n", sst->fname, sst->line);
json_context(feature);
return 0;
}
@ -200,7 +71,7 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje
}
}
if (t >= GEOM_TYPES) {
fprintf(stderr, "%s:%d: Can't handle geometry type %s\n", reading, line, geometry_type->string);
fprintf(stderr, "%s:%d: Can't handle geometry type %s\n", sst->fname, sst->line, geometry_type->string);
json_context(feature);
return 0;
}
@ -241,34 +112,32 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje
id_value = strtoull(id->string, &err, 10);
if (err != NULL && *err != '\0') {
fprintf(stderr, "Warning: Can't represent non-integer feature ID %s\n", id->string);
static bool warned_frac = false;
if (!warned_frac) {
fprintf(stderr, "Warning: Can't represent non-integer feature ID %s\n", id->string);
warned_frac = true;
}
} else {
has_id = true;
}
} else {
fprintf(stderr, "Warning: Can't represent negative feature ID %s\n", id->string);
static bool warned_neg = false;
if (!warned_neg) {
fprintf(stderr, "Warning: Can't represent negative feature ID %s\n", id->string);
warned_neg = true;
}
}
} else {
char *s = json_stringify(id);
fprintf(stderr, "Warning: Can't represent non-numeric feature ID %s\n", s);
free(s); // stringify
}
}
static bool warned_nan = false;
long long bbox[] = {LLONG_MAX, LLONG_MAX, LLONG_MIN, LLONG_MIN};
if (tippecanoe_layername.size() != 0) {
if (layermap->count(tippecanoe_layername) == 0) {
layermap->insert(std::pair<std::string, layermap_entry>(tippecanoe_layername, layermap_entry(layermap->size())));
}
auto ai = layermap->find(tippecanoe_layername);
if (ai != layermap->end()) {
layer = ai->second.id;
layername = tippecanoe_layername;
} else {
fprintf(stderr, "Internal error: can't find layer name %s\n", tippecanoe_layername.c_str());
exit(EXIT_FAILURE);
if (!warned_nan) {
char *s = json_stringify(id);
fprintf(stderr, "Warning: Can't represent non-numeric feature ID %s\n", s);
free(s); // stringify
warned_nan = true;
}
}
}
@ -277,127 +146,45 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje
nprop = properties->length;
}
char *metakey[nprop];
std::vector<char *> metakey;
metakey.resize(nprop);
std::vector<std::string> metaval;
metaval.resize(nprop);
int metatype[nprop];
std::vector<int> metatype;
metatype.resize(nprop);
size_t m = 0;
for (size_t i = 0; i < nprop; i++) {
if (properties->keys[i]->type == JSON_STRING) {
std::string s(properties->keys[i]->string);
if (exclude_all) {
if (include->count(s) == 0) {
continue;
}
} else if (exclude->count(s) != 0) {
continue;
}
int type = -1;
std::string val;
stringify_value(properties->values[i], type, val, sst->fname, sst->line, feature);
type_and_string tas;
tas.string = s;
tas.type = -1;
metakey[m] = properties->keys[i]->string;
if (properties->values[i] != NULL && properties->values[i]->type == JSON_STRING) {
tas.type = metatype[m] = VT_STRING;
metaval[m] = std::string(properties->values[i]->string);
std::string err = check_utf8(metaval[m]);
if (err != "") {
fprintf(stderr, "%s:%d: %s\n", reading, line, err.c_str());
json_context(feature);
exit(EXIT_FAILURE);
}
if (type >= 0) {
metakey[m] = properties->keys[i]->string;
metatype[m] = type;
metaval[m] = val;
m++;
} else if (properties->values[i] != NULL && properties->values[i]->type == JSON_NUMBER) {
tas.type = metatype[m] = VT_NUMBER;
metaval[m] = std::string(properties->values[i]->string);
m++;
} else if (properties->values[i] != NULL && (properties->values[i]->type == JSON_TRUE || properties->values[i]->type == JSON_FALSE)) {
tas.type = metatype[m] = VT_BOOLEAN;
metaval[m] = std::string(properties->values[i]->type == JSON_TRUE ? "true" : "false");
m++;
} else if (properties->values[i] != NULL && (properties->values[i]->type == JSON_NULL)) {
;
} else {
tas.type = metatype[m] = VT_STRING;
const char *v = json_stringify(properties->values[i]);
metaval[m] = std::string(v);
free((void *) v); // stringify
metakey[m] = properties->keys[i]->string;
metatype[m] = mvt_null;
metaval[m] = "null";
m++;
}
if (tas.type >= 0) {
auto fk = layermap->find(layername);
fk->second.file_keys.insert(tas);
}
}
}
drawvec dv;
long long g = parse_geometry(t, coordinates, bbox, dv, VT_MOVETO, fname, line, initialized, initial_x, initial_y, feature);
if (mb_geometry[t] == VT_POLYGON) {
dv = fix_polygon(dv);
}
bool inline_meta = true;
// Don't inline metadata for features that will span several tiles at maxzoom
if (g > 0 && (bbox[2] < bbox[0] || bbox[3] < bbox[1])) {
fprintf(stderr, "Internal error: impossible feature bounding box %llx,%llx,%llx,%llx\n", bbox[0], bbox[1], bbox[2], bbox[3]);
}
if (bbox[2] - bbox[0] > (2LL << (32 - maxzoom)) || bbox[3] - bbox[1] > (2LL << (32 - maxzoom))) {
inline_meta = false;
if (prevent[P_CLIPPING]) {
static volatile long long warned = 0;
long long extent = ((bbox[2] - bbox[0]) / ((1LL << (32 - maxzoom)) + 1)) * ((bbox[3] - bbox[1]) / ((1LL << (32 - maxzoom)) + 1));
if (extent > warned) {
fprintf(stderr, "Warning: %s:%d: Large unclipped (-pc) feature may be duplicated across %lld tiles\n", fname, line, extent);
warned = extent;
if (extent > 10000) {
fprintf(stderr, "Exiting because this can't be right.\n");
exit(EXIT_FAILURE);
}
}
}
}
double extent = 0;
if (additional[A_DROP_SMALLEST_AS_NEEDED]) {
if (mb_geometry[t] == VT_POLYGON) {
for (size_t i = 0; i < dv.size(); i++) {
if (dv[i].op == VT_MOVETO) {
size_t j;
for (j = i + 1; j < dv.size(); j++) {
if (dv[j].op != VT_LINETO) {
break;
}
}
extent += get_area(dv, i, j);
i = j - 1;
}
}
} else if (mb_geometry[t] == VT_LINE) {
for (size_t i = 1; i < dv.size(); i++) {
if (dv[i].op == VT_LINETO) {
double xd = dv[i].x - dv[i - 1].x;
double yd = dv[i].y - dv[i - 1].y;
extent += sqrt(xd * xd + yd * yd);
}
}
}
}
long long geomstart = *geompos;
long long bbox_index;
parse_geometry(t, coordinates, dv, VT_MOVETO, sst->fname, sst->line, feature);
serial_feature sf;
sf.layer = layer;
sf.segment = segment;
sf.segment = sst->segment;
sf.t = mb_geometry[t];
sf.has_id = has_id;
sf.id = id_value;
@ -406,74 +193,26 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje
sf.has_tippecanoe_maxzoom = (tippecanoe_maxzoom != -1);
sf.tippecanoe_maxzoom = tippecanoe_maxzoom;
sf.geometry = dv;
sf.m = m;
sf.feature_minzoom = 0; // Will be filled in during index merging
sf.extent = (long long) extent;
sf.seq = *(sst->layer_seq);
if (prevent[P_INPUT_ORDER]) {
sf.seq = *layer_seq;
if (tippecanoe_layername.size() != 0) {
sf.layername = tippecanoe_layername;
} else {
sf.seq = 0;
sf.layername = layername;
}
// Calculate the center even if off the edge of the plane,
// and then mask to bring it back into the addressable area
long long midx = (bbox[0] / 2 + bbox[2] / 2) & ((1LL << 32) - 1);
long long midy = (bbox[1] / 2 + bbox[3] / 2) & ((1LL << 32) - 1);
bbox_index = encode(midx, midy);
for (size_t i = 0; i < m; i++) {
sf.full_keys.push_back(metakey[i]);
if (additional[A_DROP_DENSEST_AS_NEEDED] || additional[A_CALCULATE_FEATURE_DENSITY] || additional[A_INCREASE_GAMMA_AS_NEEDED] || uses_gamma) {
sf.index = bbox_index;
serial_val sv;
sv.type = metatype[i];
sv.s = metaval[i];
sf.full_values.push_back(sv);
}
if (inline_meta) {
sf.metapos = -1;
for (size_t i = 0; i < m; i++) {
sf.keys.push_back(addpool(poolfile, treefile, metakey[i], VT_STRING));
sf.values.push_back(addpool(poolfile, treefile, metaval[i].c_str(), metatype[i]));
}
} else {
sf.metapos = *metapos;
for (size_t i = 0; i < m; i++) {
serialize_long_long(metafile, addpool(poolfile, treefile, metakey[i], VT_STRING), metapos, fname);
serialize_long_long(metafile, addpool(poolfile, treefile, metaval[i].c_str(), metatype[i]), metapos, fname);
}
}
serialize_feature(geomfile, &sf, geompos, fname, *initial_x >> geometry_scale, *initial_y >> geometry_scale, false);
struct index index;
index.start = geomstart;
index.end = *geompos;
index.segment = segment;
index.seq = *layer_seq;
index.t = sf.t;
index.index = bbox_index;
fwrite_check(&index, sizeof(struct index), 1, indexfile, fname);
*indexpos += sizeof(struct index);
for (size_t i = 0; i < 2; i++) {
if (bbox[i] < file_bbox[i]) {
file_bbox[i] = bbox[i];
}
}
for (size_t i = 2; i < 4; i++) {
if (bbox[i] > file_bbox[i]) {
file_bbox[i] = bbox[i];
}
}
if (*progress_seq % 10000 == 0) {
checkdisk(readers, CPUS);
if (!quiet) {
fprintf(stderr, "Read %.2f million features\r", *progress_seq / 1000000.0);
}
}
(*progress_seq)++;
(*layer_seq)++;
return 1;
return serialize_feature(sst, sf);
}
void check_crs(json_object *j, const char *reading) {
@ -484,14 +223,17 @@ void check_crs(json_object *j, const char *reading) {
json_object *name = json_hash_get(properties, "name");
if (name->type == JSON_STRING) {
if (strcmp(name->string, projection->alias) != 0) {
fprintf(stderr, "%s: Warning: GeoJSON specified projection \"%s\", not \"%s\".\n", reading, name->string, projection->alias);
if (!quiet) {
fprintf(stderr, "%s: Warning: GeoJSON specified projection \"%s\", not the expected \"%s\".\n", reading, name->string, projection->alias);
fprintf(stderr, "%s: If \"%s\" is not the expected projection, use -s to specify the right one.\n", reading, projection->alias);
}
}
}
}
}
}
void parse_json(json_pull *jp, const char *reading, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set<std::string> *exclude, std::set<std::string> *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, char *fname, int basezoom, int layer, double droprate, long long *file_bbox, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, std::map<std::string, layermap_entry> *layermap, std::string layername, bool uses_gamma) {
void parse_json(struct serialization_state *sst, json_pull *jp, int layer, std::string layername) {
long long found_hashes = 0;
long long found_features = 0;
long long found_geometries = 0;
@ -500,7 +242,7 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se
json_object *j = json_read(jp);
if (j == NULL) {
if (jp->error != NULL) {
fprintf(stderr, "%s:%d: %s\n", reading, jp->line, jp->error);
fprintf(stderr, "%s:%d: %s\n", sst->fname, jp->line, jp->error);
if (jp->root != NULL) {
json_context(jp->root);
}
@ -514,7 +256,7 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se
found_hashes++;
if (found_hashes == 50 && found_features == 0 && found_geometries == 0) {
fprintf(stderr, "%s:%d: Warning: not finding any GeoJSON features or geometries in input yet after 50 objects.\n", reading, jp->line);
fprintf(stderr, "%s:%d: Warning: not finding any GeoJSON features or geometries in input yet after 50 objects.\n", sst->fname, jp->line);
}
}
@ -535,7 +277,7 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se
if (is_geometry) {
if (j->parent != NULL) {
if (j->parent->type == JSON_ARRAY) {
if (j->parent->type == JSON_ARRAY && j->parent->parent != NULL) {
if (j->parent->parent->type == JSON_HASH) {
json_object *geometries = json_hash_get(j->parent->parent, "geometries");
if (geometries != NULL) {
@ -555,11 +297,11 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se
if (is_geometry) {
if (found_features != 0 && found_geometries == 0) {
fprintf(stderr, "%s:%d: Warning: found a mixture of features and bare geometries\n", reading, jp->line);
fprintf(stderr, "%s:%d: Warning: found a mixture of features and bare geometries\n", sst->fname, jp->line);
}
found_geometries++;
serialize_geometry(j, NULL, NULL, reading, jp->line, layer_seq, progress_seq, metapos, geompos, indexpos, exclude, include, exclude_all, metafile, geomfile, indexfile, poolfile, treefile, fname, basezoom, layer, droprate, file_bbox, NULL, segment, initialized, initial_x, initial_y, readers, maxzoom, j, layermap, layername, uses_gamma);
serialize_geojson_feature(sst, j, NULL, NULL, layer, NULL, j, layername);
json_free(j);
continue;
}
@ -567,20 +309,21 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se
if (strcmp(type->string, "Feature") != 0) {
if (strcmp(type->string, "FeatureCollection") == 0) {
check_crs(j, reading);
check_crs(j, sst->fname);
json_free(j);
}
continue;
}
if (found_features == 0 && found_geometries != 0) {
fprintf(stderr, "%s:%d: Warning: found a mixture of features and bare geometries\n", reading, jp->line);
fprintf(stderr, "%s:%d: Warning: found a mixture of features and bare geometries\n", sst->fname, jp->line);
}
found_features++;
json_object *geometry = json_hash_get(j, "geometry");
if (geometry == NULL) {
fprintf(stderr, "%s:%d: feature with no geometry\n", reading, jp->line);
fprintf(stderr, "%s:%d: feature with no geometry\n", sst->fname, jp->line);
json_context(j);
json_free(j);
continue;
@ -588,7 +331,7 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se
json_object *properties = json_hash_get(j, "properties");
if (properties == NULL || (properties->type != JSON_HASH && properties->type != JSON_NULL)) {
fprintf(stderr, "%s:%d: feature without properties hash\n", reading, jp->line);
fprintf(stderr, "%s:%d: feature without properties hash\n", sst->fname, jp->line);
json_context(j);
json_free(j);
continue;
@ -601,10 +344,10 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se
if (geometries != NULL) {
size_t g;
for (g = 0; g < geometries->length; g++) {
serialize_geometry(geometries->array[g], properties, id, reading, jp->line, layer_seq, progress_seq, metapos, geompos, indexpos, exclude, include, exclude_all, metafile, geomfile, indexfile, poolfile, treefile, fname, basezoom, layer, droprate, file_bbox, tippecanoe, segment, initialized, initial_x, initial_y, readers, maxzoom, j, layermap, layername, uses_gamma);
serialize_geojson_feature(sst, geometries->array[g], properties, id, layer, tippecanoe, j, layername);
}
} else {
serialize_geometry(geometry, properties, id, reading, jp->line, layer_seq, progress_seq, metapos, geompos, indexpos, exclude, include, exclude_all, metafile, geomfile, indexfile, poolfile, treefile, fname, basezoom, layer, droprate, file_bbox, tippecanoe, segment, initialized, initial_x, initial_y, readers, maxzoom, j, layermap, layername, uses_gamma);
serialize_geojson_feature(sst, geometry, properties, id, layer, tippecanoe, j, layername);
}
json_free(j);
@ -616,7 +359,7 @@ void parse_json(json_pull *jp, const char *reading, volatile long long *layer_se
void *run_parse_json(void *v) {
struct parse_json_args *pja = (struct parse_json_args *) v;
parse_json(pja->jp, pja->reading, pja->layer_seq, pja->progress_seq, pja->metapos, pja->geompos, pja->indexpos, pja->exclude, pja->include, pja->exclude_all, pja->metafile, pja->geomfile, pja->indexfile, pja->poolfile, pja->treefile, pja->fname, pja->basezoom, pja->layer, pja->droprate, pja->file_bbox, pja->segment, pja->initialized, pja->initial_x, pja->initial_y, pja->readers, pja->maxzoom, pja->layermap, *pja->layername, pja->uses_gamma);
parse_json(pja->sst, pja->jp, pja->layer, *pja->layername);
return NULL;
}

View File

@ -1,37 +1,30 @@
#ifndef GEOJSON_HPP
#define GEOJSON_HPP
#include <stdio.h>
#include <set>
#include <map>
#include <string>
#include "mbtiles.hpp"
#include "jsonpull/jsonpull.h"
#include "serial.hpp"
struct parse_json_args {
json_pull *jp;
const char *reading;
volatile long long *layer_seq;
volatile long long *progress_seq;
long long *metapos;
long long *geompos;
long long *indexpos;
std::set<std::string> *exclude;
std::set<std::string> *include;
int exclude_all;
FILE *metafile;
FILE *geomfile;
FILE *indexfile;
struct memfile *poolfile;
struct memfile *treefile;
char *fname;
int basezoom;
int layer;
double droprate;
long long *file_bbox;
int segment;
int *initialized;
unsigned *initial_x;
unsigned *initial_y;
struct reader *readers;
int maxzoom;
std::map<std::string, layermap_entry> *layermap;
std::string *layername;
bool uses_gamma;
struct serialization_state *sst;
parse_json_args(json_pull *jp1, int layer1, std::string *layername1, struct serialization_state *sst1)
: jp(jp1), layer(layer1), layername(layername1), sst(sst1) {
}
};
struct json_pull *json_begin_map(char *map, long long len);
void json_end_map(struct json_pull *jp);
void parse_json(json_pull *jp, const char *reading, volatile long long *layer_seq, volatile long long *progress_seq, long long *metapos, long long *geompos, long long *indexpos, std::set<std::string> *exclude, std::set<std::string> *include, int exclude_all, FILE *metafile, FILE *geomfile, FILE *indexfile, struct memfile *poolfile, struct memfile *treefile, char *fname, int basezoom, int layer, double droprate, long long *file_bbox, int segment, int *initialized, unsigned *initial_x, unsigned *initial_y, struct reader *readers, int maxzoom, std::map<std::string, layermap_entry> *layermap, std::string layername, bool uses_gamma);
void parse_json(struct serialization_state *sst, json_pull *jp, int layer, std::string layername);
void *run_parse_json(void *v);
#endif

View File

@ -3,15 +3,18 @@
#include <string>
#include <stack>
#include <vector>
#include <map>
#include <algorithm>
#include <cstdio>
#include <unistd.h>
#include <cmath>
#include <limits.h>
#include <sqlite3.h>
#include <mapbox/geometry.hpp>
#include <mapbox/geometry/point.hpp>
#include <mapbox/geometry/multi_polygon.hpp>
#include <mapbox/geometry/wagyu/wagyu.hpp>
#include <mapbox/geometry/wagyu/quick_clip.hpp>
#include <mapbox/geometry/snap_rounding.hpp>
#include "geometry.hpp"
#include "projection.hpp"
#include "serial.hpp"
@ -20,7 +23,7 @@
static int pnpoly(drawvec &vert, size_t start, size_t nvert, long long testx, long long testy);
static int clip(double *x0, double *y0, double *x1, double *y1, double xmin, double ymin, double xmax, double ymax);
drawvec decode_geometry(FILE *meta, long long *geompos, int z, unsigned tx, unsigned ty, int detail, long long *bbox, unsigned initial_x, unsigned initial_y) {
drawvec decode_geometry(FILE *meta, std::atomic<long long> *geompos, int z, unsigned tx, unsigned ty, long long *bbox, unsigned initial_x, unsigned initial_y) {
drawvec out;
bbox[0] = LLONG_MAX;
@ -165,6 +168,27 @@ double get_area(drawvec &geom, size_t i, size_t j) {
return area;
}
double get_mp_area(drawvec &geom) {
double ret = 0;
for (size_t i = 0; i < geom.size(); i++) {
if (geom[i].op == VT_MOVETO) {
size_t j;
for (j = i + 1; j < geom.size(); j++) {
if (geom[j].op != VT_LINETO) {
break;
}
}
ret += get_area(geom, i, j);
i = j - 1;
}
}
return ret;
}
static void decode_clipped(mapbox::geometry::multi_polygon<long long> &t, drawvec &out) {
out.clear();
@ -195,7 +219,7 @@ static void decode_clipped(mapbox::geometry::multi_polygon<long long> &t, drawve
}
}
drawvec clean_or_clip_poly(drawvec &geom, int z, int detail, int buffer, bool clip) {
drawvec clean_or_clip_poly(drawvec &geom, int z, int buffer, bool clip) {
mapbox::geometry::wagyu::wagyu<long long> wagyu;
geom = remove_noop(geom, VT_POLYGON, 0);
@ -321,30 +345,42 @@ static int pnpoly(drawvec &vert, size_t start, size_t nvert, long long testx, lo
return c;
}
void check_polygon(drawvec &geom, drawvec &before) {
for (size_t i = 0; i + 1 < geom.size(); i++) {
for (size_t j = i + 1; j + 1 < geom.size(); j++) {
if (geom[i + 1].op == VT_LINETO && geom[j + 1].op == VT_LINETO) {
double s1_x = geom[i + 1].x - geom[i + 0].x;
double s1_y = geom[i + 1].y - geom[i + 0].y;
double s2_x = geom[j + 1].x - geom[j + 0].x;
double s2_y = geom[j + 1].y - geom[j + 0].y;
void check_polygon(drawvec &geom) {
geom = remove_noop(geom, VT_POLYGON, 0);
double s, t;
s = (-s1_y * (geom[i + 0].x - geom[j + 0].x) + s1_x * (geom[i + 0].y - geom[j + 0].y)) / (-s2_x * s1_y + s1_x * s2_y);
t = (s2_x * (geom[i + 0].y - geom[j + 0].y) - s2_y * (geom[i + 0].x - geom[j + 0].x)) / (-s2_x * s1_y + s1_x * s2_y);
if (t > 0 && t < 1 && s > 0 && s < 1) {
printf("Internal error: self-intersecting polygon. %lld,%lld to %lld,%lld intersects %lld,%lld to %lld,%lld\n",
geom[i + 0].x, geom[i + 0].y,
geom[i + 1].x, geom[i + 1].y,
geom[j + 0].x, geom[j + 0].y,
geom[j + 1].x, geom[j + 1].y);
mapbox::geometry::multi_polygon<long long> mp;
for (size_t i = 0; i < geom.size(); i++) {
if (geom[i].op == VT_MOVETO) {
size_t j;
for (j = i + 1; j < geom.size(); j++) {
if (geom[j].op != VT_LINETO) {
break;
}
}
if (j >= i + 4) {
mapbox::geometry::linear_ring<long long> lr;
for (size_t k = i; k < j; k++) {
lr.push_back(mapbox::geometry::point<long long>(geom[k].x, geom[k].y));
}
if (lr.size() >= 3) {
mapbox::geometry::polygon<long long> p;
p.push_back(lr);
mp.push_back(p);
}
}
i = j - 1;
}
}
mapbox::geometry::multi_polygon<long long> mp2 = mapbox::geometry::snap_round(mp, true, true);
if (mp != mp2) {
fprintf(stderr, "Internal error: self-intersecting polygon\n");
}
size_t outer_start = -1;
size_t outer_len = 0;
@ -445,19 +481,19 @@ drawvec simple_clip_poly(drawvec &geom, long long minx, long long miny, long lon
ring.push_back(mapbox::geometry::point<long long>(geom[k].x, geom[k].y));
}
optional_linear_ring<long long> lr = mapbox::geometry::wagyu::quick_clip::quick_lr_clip(ring, bbox);
mapbox::geometry::linear_ring<long long> lr = mapbox::geometry::wagyu::quick_clip::quick_lr_clip(ring, bbox);
if (lr) {
for (size_t k = 0; k < lr->size(); k++) {
if (lr.size() > 0) {
for (size_t k = 0; k < lr.size(); k++) {
if (k == 0) {
out.push_back(draw(VT_MOVETO, (*lr)[k].x, (*lr)[k].y));
out.push_back(draw(VT_MOVETO, lr[k].x, lr[k].y));
} else {
out.push_back(draw(VT_LINETO, (*lr)[k].x, (*lr)[k].y));
out.push_back(draw(VT_LINETO, lr[k].x, lr[k].y));
}
}
if (lr->size() > 0 && (*lr)[0] != (*lr)[lr->size() - 1]) {
out.push_back(draw(VT_LINETO, (*lr)[0].x, (*lr)[0].y));
if (lr.size() > 0 && lr[0] != lr[lr.size() - 1]) {
out.push_back(draw(VT_LINETO, lr[0].x, lr[0].y));
}
}
@ -471,7 +507,7 @@ drawvec simple_clip_poly(drawvec &geom, long long minx, long long miny, long lon
return out;
}
drawvec simple_clip_poly(drawvec &geom, int z, int detail, int buffer) {
drawvec simple_clip_poly(drawvec &geom, int z, int buffer) {
long long area = 1LL << (32 - z);
long long clip_buffer = buffer * area / 256;
@ -557,7 +593,7 @@ drawvec reduce_tiny_poly(drawvec &geom, int z, int detail, bool *reduced, double
return out;
}
drawvec clip_point(drawvec &geom, int z, int detail, long long buffer) {
drawvec clip_point(drawvec &geom, int z, long long buffer) {
drawvec out;
long long min = 0;
@ -575,7 +611,7 @@ drawvec clip_point(drawvec &geom, int z, int detail, long long buffer) {
return out;
}
int quick_check(long long *bbox, int z, int detail, long long buffer) {
int quick_check(long long *bbox, int z, long long buffer) {
long long min = 0;
long long area = 1LL << (32 - z);
@ -599,7 +635,7 @@ int quick_check(long long *bbox, int z, int detail, long long buffer) {
return 2;
}
bool point_within_tile(long long x, long long y, int z, int detail, long long buffer) {
bool point_within_tile(long long x, long long y, int z) {
// No adjustment for buffer, because the point must be
// strictly within the tile to appear exactly once
@ -608,7 +644,7 @@ bool point_within_tile(long long x, long long y, int z, int detail, long long bu
return x >= 0 && y >= 0 && x < area && y < area;
}
drawvec clip_lines(drawvec &geom, int z, int detail, long long buffer) {
drawvec clip_lines(drawvec &geom, int z, long long buffer) {
drawvec out;
long long min = 0;

View File

@ -1,3 +1,10 @@
#ifndef GEOMETRY_HPP
#define GEOMETRY_HPP
#include <vector>
#include <atomic>
#include <sqlite3.h>
#define VT_POINT 1
#define VT_LINE 2
#define VT_POLYGON 3
@ -7,10 +14,6 @@
#define VT_LINETO 2
#define VT_CLOSEPATH 7
#define VT_STRING 1
#define VT_NUMBER 2
#define VT_BOOLEAN 7
// The bitfield is to make sizeof(draw) be 16 instead of 24
// at the cost, apparently, of a 0.7% increase in running time
// for packing and unpacking.
@ -20,18 +23,18 @@ struct draw {
long long y : 40;
signed char necessary;
draw(int nop, long long nx, long long ny) {
this->op = nop;
this->x = nx;
this->y = ny;
this->necessary = 0;
draw(int nop, long long nx, long long ny)
: x(nx),
op(nop),
y(ny),
necessary(0) {
}
draw() {
this->op = 0;
this->x = 0;
this->y = 0;
this->necessary = 0;
draw()
: x(0),
op(0),
y(0),
necessary(0) {
}
bool operator<(draw const &s) const {
@ -53,21 +56,24 @@ struct draw {
typedef std::vector<draw> drawvec;
drawvec decode_geometry(FILE *meta, long long *geompos, int z, unsigned tx, unsigned ty, int detail, long long *bbox, unsigned initial_x, unsigned initial_y);
drawvec decode_geometry(FILE *meta, std::atomic<long long> *geompos, int z, unsigned tx, unsigned ty, long long *bbox, unsigned initial_x, unsigned initial_y);
void to_tile_scale(drawvec &geom, int z, int detail);
drawvec remove_noop(drawvec geom, int type, int shift);
drawvec clip_point(drawvec &geom, int z, int detail, long long buffer);
drawvec clean_or_clip_poly(drawvec &geom, int z, int detail, int buffer, bool clip);
drawvec simple_clip_poly(drawvec &geom, int z, int detail, int buffer);
drawvec clip_point(drawvec &geom, int z, long long buffer);
drawvec clean_or_clip_poly(drawvec &geom, int z, int buffer, bool clip);
drawvec simple_clip_poly(drawvec &geom, int z, int buffer);
drawvec close_poly(drawvec &geom);
drawvec reduce_tiny_poly(drawvec &geom, int z, int detail, bool *reduced, double *accum_area);
drawvec clip_lines(drawvec &geom, int z, int detail, long long buffer);
drawvec clip_lines(drawvec &geom, int z, long long buffer);
drawvec stairstep(drawvec &geom, int z, int detail);
bool point_within_tile(long long x, long long y, int z, int detail, long long buffer);
int quick_check(long long *bbox, int z, int detail, long long buffer);
bool point_within_tile(long long x, long long y, int z);
int quick_check(long long *bbox, int z, long long buffer);
drawvec simplify_lines(drawvec &geom, int z, int detail, bool mark_tile_bounds, double simplification, size_t retain);
drawvec reorder_lines(drawvec &geom);
drawvec fix_polygon(drawvec &geom);
std::vector<drawvec> chop_polygon(std::vector<drawvec> &geoms);
void check_polygon(drawvec &geom, drawvec &before);
void check_polygon(drawvec &geom);
double get_area(drawvec &geom, size_t i, size_t j);
double get_mp_area(drawvec &geom);
#endif

View File

@ -36,14 +36,14 @@ json_pull *json_begin(ssize_t (*read)(struct json_pull *, char *buffer, size_t n
static inline int peek(json_pull *j) {
if (j->buffer_head < j->buffer_tail) {
return j->buffer[j->buffer_head];
return (unsigned char) j->buffer[j->buffer_head];
} else {
j->buffer_head = 0;
j->buffer_tail = j->read(j, j->buffer, BUFFER);
if (j->buffer_head >= j->buffer_tail) {
return EOF;
}
return j->buffer[j->buffer_head];
return (unsigned char) j->buffer[j->buffer_head];
}
}
@ -69,7 +69,7 @@ json_pull *json_begin_file(FILE *f) {
}
static ssize_t read_string(json_pull *j, char *buffer, size_t n) {
char *cp = j->source;
const char *cp = j->source;
size_t out = 0;
while (out < n && cp[out] != '\0') {
@ -77,12 +77,12 @@ static ssize_t read_string(json_pull *j, char *buffer, size_t n) {
out++;
}
j->source = cp + out;
j->source = (void *) (cp + out);
return out;
}
json_pull *json_begin_string(char *s) {
return json_begin(read_string, s);
json_pull *json_begin_string(const char *s) {
return json_begin(read_string, (void *) s);
}
void json_end(json_pull *p) {
@ -295,7 +295,23 @@ again:
return NULL;
}
} while (c == ' ' || c == '\t' || c == '\r' || c == '\n');
// Byte-order mark
if (c == 0xEF) {
int c2 = peek(j);
if (c2 == 0xBB) {
c2 = read_wrap(j);
c2 = peek(j);
if (c2 == 0xBF) {
c2 = read_wrap(j);
c = ' ';
continue;
}
}
j->error = "Corrupt byte-order mark found";
return NULL;
}
} while (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == 0x1E);
/////////////////////////// Arrays
@ -384,6 +400,32 @@ again:
return add_object(j, JSON_NULL);
}
/////////////////////////// NaN
if (c == 'N') {
if (read_wrap(j) != 'a' || read_wrap(j) != 'N') {
j->error = "Found misspelling of NaN";
return NULL;
}
j->error = "JSON does not allow NaN";
return NULL;
}
/////////////////////////// Infinity
if (c == 'I') {
if (read_wrap(j) != 'n' || read_wrap(j) != 'f' || read_wrap(j) != 'i' ||
read_wrap(j) != 'n' || read_wrap(j) != 'i' || read_wrap(j) != 't' ||
read_wrap(j) != 'y') {
j->error = "Found misspelling of Infinity";
return NULL;
}
j->error = "JSON does not allow Infinity";
return NULL;
}
/////////////////////////// True
if (c == 't') {
@ -527,29 +569,21 @@ again:
struct string val;
string_init(&val);
int surrogate = -1;
while ((c = read_wrap(j)) != EOF) {
if (c == '"') {
if (surrogate >= 0) {
string_append(&val, 0xE0 | (surrogate >> 12));
string_append(&val, 0x80 | ((surrogate >> 6) & 0x3F));
string_append(&val, 0x80 | (surrogate & 0x3F));
surrogate = -1;
}
break;
} else if (c == '\\') {
c = read_wrap(j);
if (c == '"') {
string_append(&val, '"');
} else if (c == '\\') {
string_append(&val, '\\');
} else if (c == '/') {
string_append(&val, '/');
} else if (c == 'b') {
string_append(&val, '\b');
} else if (c == 'f') {
string_append(&val, '\f');
} else if (c == 'n') {
string_append(&val, '\n');
} else if (c == 'r') {
string_append(&val, '\r');
} else if (c == 't') {
string_append(&val, '\t');
} else if (c == 'u') {
if (c == 'u') {
char hex[5] = "aaaa";
int i;
for (i = 0; i < 4; i++) {
@ -560,27 +594,93 @@ again:
return NULL;
}
}
unsigned long ch = strtoul(hex, NULL, 16);
if (ch >= 0xd800 && ch <= 0xdbff) {
if (surrogate < 0) {
surrogate = ch;
} else {
// Impossible surrogate, so output the first half,
// keep what might be a legitimate new first half.
string_append(&val, 0xE0 | (surrogate >> 12));
string_append(&val, 0x80 | ((surrogate >> 6) & 0x3F));
string_append(&val, 0x80 | (surrogate & 0x3F));
surrogate = ch;
}
continue;
} else if (ch >= 0xdc00 && c <= 0xdfff) {
if (surrogate >= 0) {
long c1 = surrogate - 0xd800;
long c2 = ch - 0xdc00;
ch = ((c1 << 10) | c2) + 0x010000;
surrogate = -1;
}
}
if (surrogate >= 0) {
string_append(&val, 0xE0 | (surrogate >> 12));
string_append(&val, 0x80 | ((surrogate >> 6) & 0x3F));
string_append(&val, 0x80 | (surrogate & 0x3F));
surrogate = -1;
}
if (ch <= 0x7F) {
string_append(&val, ch);
} else if (ch <= 0x7FF) {
string_append(&val, 0xC0 | (ch >> 6));
string_append(&val, 0x80 | (ch & 0x3F));
} else {
} else if (ch < 0xFFFF) {
string_append(&val, 0xE0 | (ch >> 12));
string_append(&val, 0x80 | ((ch >> 6) & 0x3F));
string_append(&val, 0x80 | (ch & 0x3F));
} else {
string_append(&val, 0xF0 | (ch >> 18));
string_append(&val, 0x80 | ((ch >> 12) & 0x3F));
string_append(&val, 0x80 | ((ch >> 6) & 0x3F));
string_append(&val, 0x80 | (ch & 0x3F));
}
} else {
j->error = "Found backslash followed by unknown character";
string_free(&val);
return NULL;
if (surrogate >= 0) {
string_append(&val, 0xE0 | (surrogate >> 12));
string_append(&val, 0x80 | ((surrogate >> 6) & 0x3F));
string_append(&val, 0x80 | (surrogate & 0x3F));
surrogate = -1;
}
if (c == '"') {
string_append(&val, '"');
} else if (c == '\\') {
string_append(&val, '\\');
} else if (c == '/') {
string_append(&val, '/');
} else if (c == 'b') {
string_append(&val, '\b');
} else if (c == 'f') {
string_append(&val, '\f');
} else if (c == 'n') {
string_append(&val, '\n');
} else if (c == 'r') {
string_append(&val, '\r');
} else if (c == 't') {
string_append(&val, '\t');
} else {
j->error = "Found backslash followed by unknown character";
string_free(&val);
return NULL;
}
}
} else if (c < ' ') {
j->error = "Found control character in string";
string_free(&val);
return NULL;
} else {
if (surrogate >= 0) {
string_append(&val, 0xE0 | (surrogate >> 12));
string_append(&val, 0x80 | ((surrogate >> 6) & 0x3F));
string_append(&val, 0x80 | (surrogate & 0x3F));
surrogate = -1;
}
string_append(&val, c);
}
}
@ -666,6 +766,23 @@ void json_free(json_object *o) {
free(o);
}
static void json_disconnect_parser(json_object *o) {
if (o->type == JSON_HASH) {
size_t i;
for (i = 0; i < o->length; i++) {
json_disconnect_parser(o->keys[i]);
json_disconnect_parser(o->values[i]);
}
} else if (o->type == JSON_ARRAY) {
size_t i;
for (i = 0; i < o->length; i++) {
json_disconnect_parser(o->array[i]);
}
}
o->parser = NULL;
}
void json_disconnect(json_object *o) {
// Expunge references to this as an array element
// or a hash key or value.
@ -719,12 +836,13 @@ void json_disconnect(json_object *o) {
o->parser->root = NULL;
}
json_disconnect_parser(o);
o->parent = NULL;
}
static void json_print_one(struct string *val, json_object *o) {
if (o == NULL) {
string_append_string(val, "NULL");
string_append_string(val, "...");
} else if (o->type == JSON_STRING) {
string_append(val, '\"');
@ -763,7 +881,7 @@ static void json_print_one(struct string *val, json_object *o) {
static void json_print(struct string *val, json_object *o) {
if (o == NULL) {
// Hash value in incompletely read hash
string_append_string(val, "NULL");
string_append_string(val, "...");
} else if (o->type == JSON_HASH) {
string_append(val, '{');

View File

@ -1,3 +1,10 @@
#ifndef JSONPULL_H
#define JSONPULL_H
#ifdef __cplusplus
extern "C" {
#endif
typedef enum json_type {
// These types can be returned by json_read()
JSON_HASH,
@ -49,7 +56,7 @@ typedef struct json_pull {
} json_pull;
json_pull *json_begin_file(FILE *f);
json_pull *json_begin_string(char *s);
json_pull *json_begin_string(const char *s);
json_pull *json_begin(ssize_t (*read)(struct json_pull *, char *buffer, size_t n), void *source);
void json_end(json_pull *p);
@ -65,3 +72,9 @@ void json_disconnect(json_object *j);
json_object *json_hash_get(json_object *o, const char *s);
char *json_stringify(json_object *o);
#ifdef __cplusplus
}
#endif
#endif

516
jsontool.cpp Normal file
View File

@ -0,0 +1,516 @@
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdarg.h>
#include <unistd.h>
#include <string>
#include <getopt.h>
#include <vector>
#include "jsonpull/jsonpull.h"
#include "csv.hpp"
#include "text.hpp"
int fail = EXIT_SUCCESS;
bool wrap = false;
const char *extract = NULL;
FILE *csvfile = NULL;
std::vector<std::string> header;
std::vector<std::string> fields;
std::string buffered;
int buffered_type = -1;
// 0: nothing yet
// 1: buffered a line
// 2: wrote the line and the wrapper
int buffer_state = 0;
std::vector<unsigned long> decode32(const char *s) {
std::vector<unsigned long> utf32;
while (*s != '\0') {
unsigned long b = *(s++) & 0xFF;
if (b < 0x80) {
utf32.push_back(b);
} else if ((b & 0xe0) == 0xc0) {
unsigned long c = (b & 0x1f) << 6;
unsigned long b1 = *(s++) & 0xFF;
if ((b1 & 0xc0) == 0x80) {
c |= b1 & 0x3f;
utf32.push_back(c);
} else {
s--;
utf32.push_back(0xfffd);
}
} else if ((b & 0xf0) == 0xe0) {
unsigned long c = (b & 0x0f) << 12;
unsigned long b1 = *(s++) & 0xFF;
if ((b1 & 0xc0) == 0x80) {
c |= (b1 & 0x3f) << 6;
unsigned long b2 = *(s++) & 0xFF;
if ((b2 & 0xc0) == 0x80) {
c |= b2 & 0x3f;
utf32.push_back(c);
} else {
s -= 2;
utf32.push_back(0xfffd);
}
} else {
s--;
utf32.push_back(0xfffd);
}
} else if ((b & 0xf8) == 0xf0) {
unsigned long c = (b & 0x07) << 18;
unsigned long b1 = *(s++) & 0xFF;
if ((b1 & 0xc0) == 0x80) {
c |= (b1 & 0x3f) << 12;
unsigned long b2 = *(s++) & 0xFF;
if ((b2 & 0xc0) == 0x80) {
c |= (b2 & 0x3f) << 6;
unsigned long b3 = *(s++) & 0xFF;
if ((b3 & 0xc0) == 0x80) {
c |= b3 & 0x3f;
utf32.push_back(c);
} else {
s -= 3;
utf32.push_back(0xfffd);
}
} else {
s -= 2;
utf32.push_back(0xfffd);
}
} else {
s -= 1;
utf32.push_back(0xfffd);
}
} else {
utf32.push_back(0xfffd);
}
}
return utf32;
}
// This uses a really weird encoding for strings
// so that they will sort in UTF-32 order in spite of quoting
std::string sort_quote(const char *s) {
std::vector<unsigned long> utf32 = decode32(s);
std::string ret;
for (size_t i = 0; i < utf32.size(); i++) {
if (utf32[i] < 0xD800) {
char buf[7];
sprintf(buf, "\\u%04lu", utf32[i]);
ret.append(std::string(buf));
} else {
unsigned long c = utf32[i];
if (c <= 0x7f) {
ret.push_back(c);
} else if (c <= 0x7ff) {
ret.push_back(0xc0 | (c >> 6));
ret.push_back(0x80 | (c & 0x3f));
} else if (c <= 0xffff) {
ret.push_back(0xe0 | (c >> 12));
ret.push_back(0x80 | ((c >> 6) & 0x3f));
ret.push_back(0x80 | (c & 0x3f));
} else {
ret.push_back(0xf0 | (c >> 18));
ret.push_back(0x80 | ((c >> 12) & 0x3f));
ret.push_back(0x80 | ((c >> 6) & 0x3f));
ret.push_back(0x80 | (c & 0x3f));
}
}
}
return ret;
}
void out(std::string const &s, int type, json_object *properties) {
if (extract != NULL) {
std::string extracted = sort_quote("null");
bool found = false;
json_object *o = json_hash_get(properties, extract);
if (o != NULL) {
found = true;
if (o->type == JSON_STRING || o->type == JSON_NUMBER) {
extracted = sort_quote(o->string);
} else {
// Don't really know what to do about sort quoting
// for arbitrary objects
const char *out = json_stringify(o);
extracted = sort_quote(out);
free((void *) out);
}
}
if (!found) {
static bool warned = false;
if (!warned) {
fprintf(stderr, "Warning: extract key \"%s\" not found in JSON\n", extract);
warned = true;
}
}
printf("{\"%s\":%s}\n", extracted.c_str(), s.c_str());
return;
}
if (!wrap) {
printf("%s\n", s.c_str());
return;
}
if (buffer_state == 0) {
buffered = s;
buffered_type = type;
buffer_state = 1;
return;
}
if (buffer_state == 1) {
if (buffered_type == 1) {
printf("{\"type\":\"FeatureCollection\",\"features\":[\n");
} else {
printf("{\"type\":\"GeometryCollection\",\"geometries\":[\n");
}
printf("%s\n", buffered.c_str());
buffer_state = 2;
}
printf(",\n%s\n", s.c_str());
if (type != buffered_type) {
fprintf(stderr, "Error: mix of bare geometries and features\n");
exit(EXIT_FAILURE);
}
}
std::string prev_joinkey;
void join_csv(json_object *j) {
if (header.size() == 0) {
std::string s = csv_getline(csvfile);
if (s.size() == 0) {
fprintf(stderr, "Couldn't get column header from CSV file\n");
exit(EXIT_FAILURE);
}
std::string err = check_utf8(s);
if (err != "") {
fprintf(stderr, "%s\n", err.c_str());
exit(EXIT_FAILURE);
}
header = csv_split(s.c_str());
for (size_t i = 0; i < header.size(); i++) {
header[i] = csv_dequote(header[i]);
}
if (header.size() == 0) {
fprintf(stderr, "No columns in CSV header \"%s\"\n", s.c_str());
exit(EXIT_FAILURE);
}
}
json_object *properties = json_hash_get(j, "properties");
json_object *key = NULL;
if (properties != NULL) {
key = json_hash_get(properties, header[0].c_str());
}
if (key == NULL) {
static bool warned = false;
if (!warned) {
fprintf(stderr, "Warning: couldn't find CSV key \"%s\" in JSON\n", header[0].c_str());
warned = true;
}
return;
}
std::string joinkey;
if (key->type == JSON_STRING || key->type == JSON_NUMBER) {
joinkey = key->string;
} else {
const char *s = json_stringify(key);
joinkey = s;
free((void *) s);
}
if (joinkey < prev_joinkey) {
fprintf(stderr, "GeoJSON file is out of sort: \"%s\" follows \"%s\"\n", joinkey.c_str(), prev_joinkey.c_str());
exit(EXIT_FAILURE);
}
prev_joinkey = joinkey;
if (fields.size() == 0 || joinkey > fields[0]) {
std::string prevkey;
if (fields.size() > 0) {
prevkey = fields[0];
}
while (true) {
std::string s = csv_getline(csvfile);
if (s.size() == 0) {
fields.clear();
break;
}
std::string err = check_utf8(s);
if (err != "") {
fprintf(stderr, "%s\n", err.c_str());
exit(EXIT_FAILURE);
}
fields = csv_split(s.c_str());
for (size_t i = 0; i < fields.size(); i++) {
fields[i] = csv_dequote(fields[i]);
}
if (fields.size() > 0 && fields[0] < prevkey) {
fprintf(stderr, "CSV file is out of sort: \"%s\" follows \"%s\"\n", fields[0].c_str(), prevkey.c_str());
exit(EXIT_FAILURE);
}
if (fields.size() > 0 && fields[0] >= joinkey) {
break;
}
if (fields.size() > 0) {
prevkey = fields[0];
}
}
}
if (fields.size() > 0 && joinkey == fields[0]) {
// This knows more about the structure of JSON objects than it ought to
properties->keys = (json_object **) realloc((void *) properties->keys, (properties->length + 32 + fields.size()) * sizeof(json_object *));
properties->values = (json_object **) realloc((void *) properties->values, (properties->length + 32 + fields.size()) * sizeof(json_object *));
if (properties->keys == NULL || properties->values == NULL) {
perror("realloc");
exit(EXIT_FAILURE);
}
for (size_t i = 1; i < fields.size(); i++) {
std::string k = header[i];
std::string v = fields[i];
json_type attr_type = JSON_STRING;
if (v.size() > 0) {
if (v[0] == '"') {
v = csv_dequote(v);
} else if (is_number(v)) {
attr_type = JSON_NUMBER;
}
}
{
// This knows more about the structure of JSON objects than it ought to
json_object *ko = (json_object *) malloc(sizeof(json_object));
json_object *vo = (json_object *) malloc(sizeof(json_object));
if (ko == NULL || vo == NULL) {
perror("malloc");
exit(EXIT_FAILURE);
}
ko->type = JSON_STRING;
vo->type = attr_type;
ko->parent = vo->parent = properties;
ko->array = vo->array = NULL;
ko->keys = vo->keys = NULL;
ko->values = vo->values = NULL;
ko->parser = vo->parser = properties->parser;
ko->string = strdup(k.c_str());
vo->string = strdup(v.c_str());
if (ko->string == NULL || vo->string == NULL) {
perror("strdup");
exit(EXIT_FAILURE);
}
ko->length = strlen(ko->string);
vo->length = strlen(vo->string);
vo->number = atof(vo->string);
properties->keys[properties->length] = ko;
properties->values[properties->length] = vo;
properties->length++;
}
}
}
}
void process(FILE *fp, const char *fname) {
json_pull *jp = json_begin_file(fp);
while (1) {
json_object *j = json_read(jp);
if (j == NULL) {
if (jp->error != NULL) {
fprintf(stderr, "%s:%d: %s\n", fname, jp->line, jp->error);
}
json_free(jp->root);
break;
}
json_object *type = json_hash_get(j, "type");
if (type == NULL || type->type != JSON_STRING) {
continue;
}
if (strcmp(type->string, "Feature") == 0) {
if (csvfile != NULL) {
join_csv(j);
}
char *s = json_stringify(j);
out(s, 1, json_hash_get(j, "properties"));
free(s);
json_free(j);
} else if (strcmp(type->string, "Point") == 0 ||
strcmp(type->string, "MultiPoint") == 0 ||
strcmp(type->string, "LineString") == 0 ||
strcmp(type->string, "MultiLineString") == 0 ||
strcmp(type->string, "MultiPolygon") == 0) {
int is_geometry = 1;
if (j->parent != NULL) {
if (j->parent->type == JSON_ARRAY && j->parent->parent != NULL) {
if (j->parent->parent->type == JSON_HASH) {
json_object *geometries = json_hash_get(j->parent->parent, "geometries");
if (geometries != NULL) {
// Parent of Parent must be a GeometryCollection
is_geometry = 0;
}
}
} else if (j->parent->type == JSON_HASH) {
json_object *geometry = json_hash_get(j->parent, "geometry");
if (geometry != NULL) {
// Parent must be a Feature
is_geometry = 0;
}
}
}
if (is_geometry) {
char *s = json_stringify(j);
out(s, 2, NULL);
free(s);
json_free(j);
}
} else if (strcmp(type->string, "FeatureCollection") == 0) {
json_free(j);
}
}
json_end(jp);
}
int main(int argc, char **argv) {
const char *csv = NULL;
struct option long_options[] = {
{"wrap", no_argument, 0, 'w'},
{"extract", required_argument, 0, 'e'},
{"csv", required_argument, 0, 'c'},
{0, 0, 0, 0},
};
std::string getopt_str;
for (size_t lo = 0; long_options[lo].name != NULL; lo++) {
if (long_options[lo].val > ' ') {
getopt_str.push_back(long_options[lo].val);
if (long_options[lo].has_arg == required_argument) {
getopt_str.push_back(':');
}
}
}
extern int optind;
int i;
while ((i = getopt_long(argc, argv, getopt_str.c_str(), long_options, NULL)) != -1) {
switch (i) {
case 'w':
wrap = true;
break;
case 'e':
extract = optarg;
break;
case 'c':
csv = optarg;
break;
default:
fprintf(stderr, "Unexpected option -%c\n", i);
exit(EXIT_FAILURE);
}
}
if (extract != NULL && wrap) {
fprintf(stderr, "%s: --wrap and --extract not supported together\n", argv[0]);
exit(EXIT_FAILURE);
}
if (csv != NULL) {
csvfile = fopen(csv, "r");
if (csvfile == NULL) {
perror(csv);
exit(EXIT_FAILURE);
}
}
if (optind >= argc) {
process(stdin, "standard input");
} else {
for (i = optind; i < argc; i++) {
FILE *f = fopen(argv[i], "r");
if (f == NULL) {
perror(argv[i]);
exit(EXIT_FAILURE);
}
process(f, argv[i]);
fclose(f);
}
}
if (buffer_state == 1) {
printf("%s\n", buffered.c_str());
} else if (buffer_state == 2) {
printf("]}\n");
}
if (csvfile != NULL) {
if (fclose(csvfile) != 0) {
perror("close");
exit(EXIT_FAILURE);
}
}
return fail;
}

1772
main.cpp

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +1,42 @@
#ifndef MAIN_HPP
#define MAIN_HPP
#include <stddef.h>
#include <atomic>
struct index {
long long start;
long long end;
unsigned long long index;
short segment;
long long start = 0;
long long end = 0;
unsigned long long ix = 0;
short segment = 0;
unsigned short t : 2;
unsigned long long seq : (64 - 18); // pack with segment and t to stay in 32 bytes
index()
: t(0),
seq(0) {
}
};
void checkdisk(struct reader *r, int nreader);
void checkdisk(std::vector<struct reader> *r);
extern int geometry_scale;
extern int quiet;
extern int quiet_progress;
extern double progress_interval;
extern std::atomic<double> last_progress;
extern size_t CPUS;
extern size_t TEMP_FILES;
extern size_t max_tile_size;
extern size_t max_tile_features;
extern int cluster_distance;
int mkstemp_cloexec(char *name);
FILE *fopen_oflag(const char *name, const char *mode, int oflag);
bool progress_time();
#define MAX_ZOOM 24
#endif

View File

@ -1,10 +1,12 @@
.TH tippecanoe
.PP
Builds vector tilesets \[la]https://www.mapbox.com/developers/vector-tiles/\[ra] from large (or small) collections of GeoJSON \[la]http://geojson.org/\[ra] features,
Builds vector tilesets \[la]https://www.mapbox.com/developers/vector-tiles/\[ra] from large (or small) collections of GeoJSON \[la]http://geojson.org/\[ra], Geobuf \[la]https://github.com/mapbox/geobuf\[ra], or CSV \[la]https://en.wikipedia.org/wiki/Comma-separated_values\[ra] features,
like these \[la]MADE_WITH.md\[ra]\&.
.PP
[Mapbox Tippecanoe](\[la]https://user-images.githubusercontent.com/1951835/36568734-ede27ec0-17df-11e8-8c22-ffaaebb8daf4.JPG\[ra])
.PP
[Build Status](https://travis\-ci.org/mapbox/tippecanoe.svg) \[la]https://travis-ci.org/mapbox/tippecanoe\[ra]
[Coverage Status](https://coveralls.io/repos/mapbox/tippecanoe/badge.svg?branch=master&service=github) \[la]https://coveralls.io/github/mapbox/tippecanoe?branch=master\[ra]
[Coverage Status](https://codecov.io/gh/mapbox/tippecanoe/branch/master/graph/badge.svg) \[la]https://codecov.io/gh/mapbox/tippecanoe\[ra]
.SH Intent
.PP
The goal of Tippecanoe is to enable making a scale\-independent view of your data,
@ -33,11 +35,26 @@ The easiest way to install tippecanoe on OSX is with Homebrew \[la]http://brew.s
$ brew install tippecanoe
.fi
.RE
.PP
On Ubuntu it will usually be easiest to build from the source repository:
.PP
.RS
.nf
$ git clone git@github.com:mapbox/tippecanoe.git
$ cd tippecanoe
$ make \-j
$ make install
.fi
.RE
.PP
See Development \[la]#development\[ra] below for how to upgrade your
C++ compiler or install prerequisite packages if you get
compiler errors.
.SH Usage
.PP
.RS
.nf
$ tippecanoe \-o file.mbtiles [file.json ...]
$ tippecanoe \-o file.mbtiles [options] [file.json file.json.gz file.geobuf ...]
.fi
.RE
.PP
@ -48,147 +65,27 @@ The GeoJSON features need not be wrapped in a FeatureCollection.
You can concatenate multiple GeoJSON features or files together,
and it will parse out the features and ignore whatever other objects
it encounters.
.SH Options
.SS Naming
.SH Try this first
.PP
If you aren't sure what options to use, try this:
.PP
.RS
.IP \(bu 2
\-l \fIname\fP or \-\-layer=\fIname\fP: Layer name (default "file" if source is file.json or output is file.mbtiles). If there are multiple input files
specified, the files are all merged into the single named layer, even if they try to specify individual names with \-L.
.IP \(bu 2
\-L \fIname\fP:\fIfile.json\fP or \-\-named\-layer=\fIname\fP:\fIfile.json\fP: Specify layer names for individual files. If your shell supports it, you can use a subshell redirect like \-L \fIname\fP:<(cat dir/*.json) to specify a layer name for the output of streamed input.
.IP \(bu 2
\-n \fIname\fP or \-\-name=\fIname\fP: Human\-readable name for the tileset (default file.json)
.IP \(bu 2
\-A \fItext\fP or \-\-attribution=\fItext\fP: Attribution (HTML) to be shown with maps that use data from this tileset.
.RE
.SS File control
.RS
.IP \(bu 2
\-o \fIfile\fP\&.mbtiles or \-\-output=\fIfile\fP\&.mbtiles: Name the output file.
.IP \(bu 2
\-f or \-\-force: Delete the mbtiles file if it already exists instead of giving an error
.IP \(bu 2
\-F or \-\-allow\-existing: Proceed (without deleting existing data) if the metadata or tiles table already exists
or if metadata fields can't be set
.IP \(bu 2
\-t \fIdirectory\fP or \-\-temporary\-directory=\fIdirectory\fP: Put the temporary files in \fIdirectory\fP\&.
If you don't specify, it will use \fB\fC/tmp\fR\&.
.IP \(bu 2
\-P or \-\-read\-parallel: Use multiple threads to read different parts of each input file at once.
This will only work if the input is line\-delimited JSON with each Feature on its
own line, because it knows nothing of the top\-level structure around the Features. Spurious "EOF" error
messages may result otherwise.
Performance will be better if the input is a named file that can be mapped into memory
rather than a stream that can only be read sequentially.
.RE
.SS Zoom levels and resolution
.RS
.IP \(bu 2
\-z \fIzoom\fP or \-\-maximum\-zoom=\fIzoom\fP: Maxzoom: the highest zoom level for which tiles are generated (default 14)
.IP \(bu 2
\-Z \fIzoom\fP or \-\-minimum\-zoom=\fIzoom\fP: Minzoom: the lowest zoom level for which tiles are generated (default 0)
.IP \(bu 2
\-B \fIzoom\fP or \-\-base\-zoom=\fIzoom\fP: Base zoom, the level at and above which all points are included in the tiles (default maxzoom).
If you use \-Bg, it will guess a zoom level that will keep at most 50,000 features in the densest tile.
You can also specify a marker\-width with \-Bg\fIwidth\fP to allow fewer features in the densest tile to
compensate for the larger marker, or \-Bf\fInumber\fP to allow at most \fInumber\fP features in the densest tile.
.IP \(bu 2
\-d \fIdetail\fP or \-\-full\-detail=\fIdetail\fP: Detail at max zoom level (default 12, for tile resolution of 4096)
.IP \(bu 2
\-D \fIdetail\fP or \-\-low\-detail=\fIdetail\fP: Detail at lower zoom levels (default 12, for tile resolution of 4096)
.IP \(bu 2
\-m \fIdetail\fP or \-\-minimum\-detail=\fIdetail\fP: Minimum detail that it will try if tiles are too big at regular detail (default 7)
.IP \(bu 2
\-b \fIpixels\fP or \-\-buffer=\fIpixels\fP: Buffer size where features are duplicated from adjacent tiles. Units are "screen pixels"\-\-1/256th of the tile width or height. (default 5)
.IP \(bu 2
\-s \fIprojection\fP or \-\-projection=\fIprojection\fP: Specify the projection of the input data. Currently supported are EPSG:4326 (WGS84, the default) and EPSG:3857 (Web Mercator).
.IP \(bu 2
\-M \fIbytes\fP or \-\-maximum\-tile\-bytes=\fIbytes\fP: Use the specified number of \fIbytes\fP as the maximum compressed tile size instead of 500K.
.nf
$ tippecanoe \-o out.mbtiles \-zg \-\-drop\-densest\-as\-needed in.geojson
.fi
.RE
.PP
All internal math is done in terms of a 32\-bit tile coordinate system, so 1/(2 of the size of Earth,
or about 1cm, is the smallest distinguishable distance. If \fImaxzoom\fP + \fIdetail\fP > 32, no additional
resolution is obtained than by using a smaller \fImaxzoom\fP or \fIdetail\fP\&.
.SS Properties
.RS
.IP \(bu 2
\-x \fIname\fP or \-\-exclude=\fIname\fP: Exclude the named properties from all features
.IP \(bu 2
\-y \fIname\fP or \-\-include=\fIname\fP: Include the named properties in all features, excluding all those not explicitly named
.IP \(bu 2
\-X or \-\-exclude\-all: Exclude all properties and encode only geometries
.RE
.SS Point simplification
.RS
.IP \(bu 2
\-r \fIrate\fP or \-\-drop\-rate=\fIrate\fP: Rate at which dots are dropped at zoom levels below basezoom (default 2.5).
If you use \-rg, it will guess a drop rate that will keep at most 50,000 features in the densest tile.
You can also specify a marker\-width with \-rg\fIwidth\fP to allow fewer features in the densest tile to
compensate for the larger marker, or \-rf\fInumber\fP to allow at most \fInumber\fP features in the densest tile.
.IP \(bu 2
\-g \fIgamma\fP or \-\-gamma=\fIgamma\fP: Rate at which especially dense dots are dropped (default 0, for no effect). A gamma of 2 reduces the number of dots less than a pixel apart to the square root of their original number.
.RE
.SS Line and polygon simplification
.RS
.IP \(bu 2
\-S \fIscale\fP or \-\-simplification=\fIscale\fP: Multiply the tolerance for line and polygon simplification by \fIscale\fP\&. The standard tolerance tries to keep
the line or polygon within one tile unit of its proper location. You can probably go up to about 10 without too much visible difference.
.RE
.SS Doing more
.RS
.IP \(bu 2
\-ac or \-\-coalesce: Coalesce adjacent line and polygon features that have the same properties.
Note that when overlapping polygons are coalesced, the overlapping region is treated as a hole,
which may not be what you want.
.IP \(bu 2
\-ar or \-\-reverse: Try reversing the directions of lines to make them coalesce and compress better
.IP \(bu 2
\-ao or \-\-reorder: Reorder features to put ones with the same properties in sequence, to try to get them to coalesce
.IP \(bu 2
\-al or \-\-drop\-lines: Let "dot" dropping at lower zooms apply to lines too
.IP \(bu 2
\-ap or \-\-drop\-polygons: Let "dot" dropping at lower zooms apply to polygons too
.IP \(bu 2
\-ag or \-\-calculate\-feature\-density: Add a new attribute, \fB\fCtippecanoe_feature_density\fR, to each feature, to record how densely features are spaced in that area of the tile. You can use this attribute in the style to produce a glowing effect where points are densely packed. It can range from 0 in the sparsest areas to 255 in the densest.
.IP \(bu 2
\-ab or \-\-detect\-shared\-borders: In the manner of TopoJSON \[la]https://github.com/mbostock/topojson/wiki/Introduction\[ra], detect borders that are shared between multiple polygons and simplify them identically in each polygon. This takes more time and memory than considering each polygon individually.
.IP \(bu 2
\-aG or \-\-increase\-gamma\-as\-needed: If a tile is too large, try to reduce it to under 500K by increasing the \fB\fC\-g\fR gamma. The discovered gamma applies to the entire zoom level.
.IP \(bu 2
\-as or \-\-drop\-densest\-as\-needed: If a tile is too large, try to reduce it to under 500K by increasing the minimum spacing between features. The discovered spacing applies to the entire zoom level.
.IP \(bu 2
\-ad or \-\-drop\-fraction\-as\-needed: Dynamically drop some fraction of features from each zoom level to keep large tiles under the 500K size limit. (This is like \fB\fC\-pd\fR but applies to the entire zoom level, not to each tile.)
.IP \(bu 2
\-an or \-\-drop\-smallest\-as\-needed: Dynamically drop the smallest features (physically smallest: the shortest lines or the smallest polygons) from each zoom level to keep large tiles under the 500K size limit. This option will not work for point features.
.IP \(bu 2
\-aL or \-\-grid\-low\-zooms: At all zoom levels below \fImaxzoom\fP, snap all lines and polygons to a stairstep grid instead of allowing diagonals. You will also want to specify a tile resolution, probably \fB\fC\-D8\fR\&. This option provides a way to display continuous parcel, gridded, or binned data at low zooms without overwhelming the tiles with tiny polygons, since features will either get stretched out to the grid unit or lost entirely, depending on how they happened to be aligned in the original data.
.RE
.SS Doing less
.RS
.IP \(bu 2
\-ps or \-\-no\-line\-simplification: Don't simplify lines
.IP \(bu 2
\-pS or \-\-simplify\-only\-low\-zooms: Don't simplify lines at maxzoom (but do simplify at lower zooms)
.IP \(bu 2
\-pf or \-\-no\-feature\-limit: Don't limit tiles to 200,000 features
.IP \(bu 2
\-pk or \-\-no\-tile\-size\-limit: Don't limit tiles to 500K bytes
.IP \(bu 2
\-pd or \-\-force\-feature\-limit: Dynamically drop some fraction of features from large tiles to keep them under the 500K size limit. It will probably look ugly at the tile boundaries. (This is like \fB\fC\-ad\fR but applies to each tile individually, not to the entire zoom level.)
.IP \(bu 2
\-pi or \-\-preserve\-input\-order: Preserve the original input order of features as the drawing order instead of ordering geographically. (This is implemented as a restoration of the original order at the end, so that dot\-dropping is still geographic, which means it also undoes \-ao).
.IP \(bu 2
\-pp or \-\-no\-polygon\-splitting: Don't split complex polygons (over 700 vertices after simplification) into multiple features.
.IP \(bu 2
\-pc or \-\-no\-clipping: Don't clip features to the size of the tile. If a feature overlaps the tile's bounds or buffer at all, it is included completely. Be careful: this can produce very large tilesets, especially with large polygons.
.IP \(bu 2
\-pD or \-\-no\-duplication: As with \-\-no\-clipping, each feature is included intact instead of cut to tile boundaries. In addition, it is included only in a single tile per zoom level rather than potentially in multiple copies. Clients of the tileset must check adjacent tiles (possibly some distance away) to ensure they have all features.
.IP \(bu 2
\-pt or \-\-no\-tiny\-polygon\-reduction: Don't combine the area of very small polygons into small squares that represent their combined area.
.IP \(bu 2
\-q or \-\-quiet: Work quietly instead of reporting progress
.RE
.SH Example
The \fB\fC\-zg\fR option will make Tippecanoe choose a maximum zoom level that should be
high enough to reflect the precision of the original data. (If it turns out still
not to be as detailed as you want, use \fB\fC\-z\fR manually with a higher number.)
.PP
If the tiles come out too big, the \fB\fC\-\-drop\-densest\-as\-needed\fR option will make
Tippecanoe try dropping what should be the least visible features at each zoom level.
(If it drops too many features, use \fB\fC\-x\fR to leave out some feature attributes that
you didn't really need.)
.SH Examples
.PP
Create a tileset of TIGER roads for Alameda County, to zoom level 13, with a custom layer name and description:
.PP
.RS
.nf
@ -196,11 +93,391 @@ $ tippecanoe \-o alameda.mbtiles \-l alameda \-n "Alameda County from TIGER" \-z
.fi
.RE
.PP
Create a tileset of all TIGER roads, at only zoom level 12, but with higher detail than normal,
with a custom layer name and description, and leaving out the \fB\fCLINEARID\fR and \fB\fCRTTYP\fR attributes:
.PP
.RS
.nf
$ cat tiger/tl_2014_*_roads.json | tippecanoe \-o tiger.mbtiles \-l roads \-n "All TIGER roads, one zoom" \-z12 \-Z12 \-d14 \-x LINEARID \-x RTTYP
.fi
.RE
.SH Options
.PP
There are a lot of options. A lot of the time you won't want to use any of them
other than \fB\fC\-o\fR \fIoutput\fP\fB\fC\&.mbtiles\fR to name the output file, and probably \fB\fC\-f\fR to
delete the file that already exists with that name.
.PP
If you aren't sure what the right maxzoom is for your data, \fB\fC\-zg\fR will guess one for you
based on the density of features.
.PP
Tippecanoe will normally drop a fraction of point features at zooms below the maxzoom,
to keep the low\-zoom tiles from getting too big. If you have a smaller data set where
all the points would fit without dropping any of them, use \fB\fC\-r1\fR to keep them all.
If you do want point dropping, but you still want the tiles to be denser than \fB\fC\-zg\fR
thinks they should be, use \fB\fC\-B\fR to set a basezoom lower than the maxzoom.
.PP
If some of your tiles are coming out too big in spite of the settings above, you will
often want to use \fB\fC\-\-drop\-densest\-as\-needed\fR to drop whatever fraction of the features
is necessary at each zoom level to make that zoom level's tiles work.
.PP
If your features have a lot of attributes, use \fB\fC\-y\fR to keep only the ones you really need.
.PP
If your input is formatted as newline\-delimited GeoJSON, use \fB\fC\-P\fR to make input parsing a lot faster.
.SS Output tileset
.RS
.IP \(bu 2
\fB\fC\-o\fR \fIfile\fP\fB\fC\&.mbtiles\fR or \fB\fC\-\-output=\fR\fIfile\fP\fB\fC\&.mbtiles\fR: Name the output file.
.IP \(bu 2
\fB\fC\-e\fR \fIdirectory\fP or \fB\fC\-\-output\-to\-directory\fR=\fIdirectory\fP: Write tiles to the specified \fIdirectory\fP instead of to an mbtiles file.
.IP \(bu 2
\fB\fC\-f\fR or \fB\fC\-\-force\fR: Delete the mbtiles file if it already exists instead of giving an error
.IP \(bu 2
\fB\fC\-F\fR or \fB\fC\-\-allow\-existing\fR: Proceed (without deleting existing data) if the metadata or tiles table already exists
or if metadata fields can't be set. You probably don't want to use this.
.RE
.SS Tileset description and attribution
.RS
.IP \(bu 2
\fB\fC\-n\fR \fIname\fP or \fB\fC\-\-name=\fR\fIname\fP: Human\-readable name for the tileset (default file.json)
.IP \(bu 2
\fB\fC\-A\fR \fItext\fP or \fB\fC\-\-attribution=\fR\fItext\fP: Attribution (HTML) to be shown with maps that use data from this tileset.
.IP \(bu 2
\fB\fC\-N\fR \fIdescription\fP or \fB\fC\-\-description=\fR\fIdescription\fP: Description for the tileset (default file.mbtiles)
.RE
.SS Input files and layer names
.RS
.IP \(bu 2
\fIname\fP\fB\fC\&.json\fR or \fIname\fP\fB\fC\&.geojson\fR: Read the named GeoJSON input file into a layer called \fIname\fP\&.
.IP \(bu 2
\fIname\fP\fB\fC\&.json.gz\fR or \fIname\fP\fB\fC\&.geojson.gz\fR: Read the named gzipped GeoJSON input file into a layer called \fIname\fP\&.
.IP \(bu 2
\fIname\fP\fB\fC\&.geobuf\fR: Read the named Geobuf input file into a layer called \fIname\fP\&.
.IP \(bu 2
\fIname\fP\fB\fC\&.csv\fR: Read the named CSV input file into a layer called \fIname\fP\&.
.IP \(bu 2
\fB\fC\-l\fR \fIname\fP or \fB\fC\-\-layer=\fR\fIname\fP: Use the specified layer name instead of deriving a name from the input filename or output tileset. If there are multiple input files
specified, the files are all merged into the single named layer, even if they try to specify individual names with \fB\fC\-L\fR\&.
.IP \(bu 2
\fB\fC\-L\fR \fIname\fP\fB\fC:\fR\fIfile.json\fP or \fB\fC\-\-named\-layer=\fR\fIname\fP\fB\fC:\fR\fIfile.json\fP: Specify layer names for individual files. If your shell supports it, you can use a subshell redirect like \fB\fC\-L\fR \fIname\fP\fB\fC:<(cat dir/*.json)\fR to specify a layer name for the output of streamed input.
.IP \(bu 2
\fB\fC\-I\fR \fIfile.json\fP\fB\fCor\fR\-\-input\-file=\fB\fC_file.json_\fR: Specify an input file as if it were named as a separate command line argument
.IP \(bu 2
\fB\fC\-L{\fR\fIlayer\-json\fP\fB\fC}\fR or \fB\fC\-\-named\-layer={\fR\fIlayer\-json\fP\fB\fC}\fR: Specify an input file and layer options by a JSON object. The JSON object must contain a \fB\fC"file"\fR key to specify the filename to read from. It may also contain a \fB\fC"layer"\fR field to specify the name of the layer, and/or a \fB\fC"description"\fR field to specify the layer's description in the tileset metadata. Example:
.RE
.PP
.RS
.nf
tippecanoe \-z5 \-o world.mbtiles \-L'{"file":"ne_10m_admin_0_countries.json", "layer":"countries", "description":"Natural Earth countries"}'
.fi
.RE
.PP
CSV input files currently support only Point geometries, from columns named \fB\fClatitude\fR, \fB\fClongitude\fR, \fB\fClat\fR, \fB\fClon\fR, \fB\fClong\fR, \fB\fClng\fR, \fB\fCx\fR, or \fB\fCy\fR\&.
.SS Parallel processing of input
.RS
.IP \(bu 2
\fB\fC\-P\fR or \fB\fC\-\-read\-parallel\fR: Use multiple threads to read different parts of each GeoJSON input file at once.
This will only work if the input is line\-delimited JSON with each Feature on its
own line, because it knows nothing of the top\-level structure around the Features. Spurious "EOF" error
messages may result otherwise.
Performance will be better if the input is a named file that can be mapped into memory
rather than a stream that can only be read sequentially.
.RE
.PP
If the input file begins with the RFC 8142 \[la]https://tools.ietf.org/html/rfc8142\[ra] record separator,
parallel processing of input will be invoked automatically, splitting at record separators rather
than at all newlines.
.PP
Parallel processing will also be automatic if the input file is in Geobuf format.
.SS Projection of input
.RS
.IP \(bu 2
\fB\fC\-s\fR \fIprojection\fP or \fB\fC\-\-projection=\fR\fIprojection\fP: Specify the projection of the input data. Currently supported are \fB\fCEPSG:4326\fR (WGS84, the default) and \fB\fCEPSG:3857\fR (Web Mercator). In general you should use WGS84 for your input files if at all possible.
.RE
.SS Zoom levels
.RS
.IP \(bu 2
\fB\fC\-z\fR \fIzoom\fP or \fB\fC\-\-maximum\-zoom=\fR\fIzoom\fP: Maxzoom: the highest zoom level for which tiles are generated (default 14)
.IP \(bu 2
\fB\fC\-zg\fR or \fB\fC\-\-maximum\-zoom=g\fR: Guess what is probably a reasonable maxzoom based on the spacing of features.
.IP \(bu 2
\fB\fC\-Z\fR \fIzoom\fP or \fB\fC\-\-minimum\-zoom=\fR\fIzoom\fP: Minzoom: the lowest zoom level for which tiles are generated (default 0)
.IP \(bu 2
\fB\fC\-ae\fR or \fB\fC\-\-extend\-zooms\-if\-still\-dropping\fR: Increase the maxzoom if features are still being dropped at that zoom level.
The detail and simplification options that ordinarily apply only to the maximum zoom level will apply both to the originally
specified maximum zoom and to any levels added beyond that.
.IP \(bu 2
\fB\fC\-R\fR \fIzoom\fP\fB\fC/\fR\fIx\fP\fB\fC/\fR\fIy\fP or \fB\fC\-\-one\-tile=\fR\fIzoom\fP\fB\fC/\fR\fIx\fP\fB\fC/\fR\fIy\fP: Set the minzoom and maxzoom to \fIzoom\fP and produce only
the single specified tile at that zoom level.
.RE
.SS Tile resolution
.RS
.IP \(bu 2
\fB\fC\-d\fR \fIdetail\fP or \fB\fC\-\-full\-detail=\fR\fIdetail\fP: Detail at max zoom level (default 12, for tile resolution of 2
.IP \(bu 2
\fB\fC\-D\fR \fIdetail\fP or \fB\fC\-\-low\-detail=\fR\fIdetail\fP: Detail at lower zoom levels (default 12, for tile resolution of 2
.IP \(bu 2
\fB\fC\-m\fR \fIdetail\fP or \fB\fC\-\-minimum\-detail=\fR\fIdetail\fP: Minimum detail that it will try if tiles are too big at regular detail (default 7)
.RE
.PP
All internal math is done in terms of a 32\-bit tile coordinate system, so 1/(2 of the size of Earth,
or about 1cm, is the smallest distinguishable distance. If \fImaxzoom\fP + \fIdetail\fP > 32, no additional
resolution is obtained than by using a smaller \fImaxzoom\fP or \fIdetail\fP\&.
.SS Filtering feature attributes
.RS
.IP \(bu 2
\fB\fC\-x\fR \fIname\fP or \fB\fC\-\-exclude=\fR\fIname\fP: Exclude the named properties from all features
.IP \(bu 2
\fB\fC\-y\fR \fIname\fP or \fB\fC\-\-include=\fR\fIname\fP: Include the named properties in all features, excluding all those not explicitly named
.IP \(bu 2
\fB\fC\-X\fR or \fB\fC\-\-exclude\-all\fR: Exclude all properties and encode only geometries
.RE
.SS Modifying feature attributes
.RS
.IP \(bu 2
\fB\fC\-T\fR\fIattribute\fP\fB\fC:\fR\fItype\fP or \fB\fC\-\-attribute\-type=\fR\fIattribute\fP\fB\fC:\fR\fItype\fP: Coerce the named feature \fIattribute\fP to be of the specified \fItype\fP\&.
The \fItype\fP may be \fB\fCstring\fR, \fB\fCfloat\fR, \fB\fCint\fR, or \fB\fCbool\fR\&.
If the type is \fB\fCbool\fR, then original attributes of \fB\fC0\fR (or, if numeric, \fB\fC0.0\fR, etc.), \fB\fCfalse\fR, \fB\fCnull\fR, or the empty string become \fB\fCfalse\fR, and otherwise become \fB\fCtrue\fR\&.
If the type is \fB\fCfloat\fR or \fB\fCint\fR and the original attribute was non\-numeric, it becomes \fB\fC0\fR\&.
If the type is \fB\fCint\fR and the original attribute was floating\-point, it is rounded to the nearest integer.
.IP \(bu 2
\fB\fC\-Y\fR\fIattribute\fP\fB\fC:\fR\fIdescription\fP or \fB\fC\-\-attribute\-description=\fR\fIattribute\fP\fB\fC:\fR\fIdescription\fP: Set the \fB\fCdescription\fR for the specified attribute in the tileset metadata to \fIdescription\fP instead of the usual \fB\fCString\fR, \fB\fCNumber\fR, or \fB\fCBoolean\fR\&.
.IP \(bu 2
\fB\fC\-E\fR\fIattribute\fP\fB\fC:\fR\fIoperation\fP or \fB\fC\-\-accumulate\-attribute=\fR\fIattribute\fP\fB\fC:\fR\fIoperation\fP: Preserve the named \fIattribute\fP from features
that are dropped, coalesced\-as\-needed, or clustered. The \fIoperation\fP may be
\fB\fCsum\fR, \fB\fCproduct\fR, \fB\fCmean\fR, \fB\fCmax\fR, \fB\fCmin\fR, \fB\fCconcat\fR, or \fB\fCcomma\fR
to specify how the named \fIattribute\fP is accumulated onto the attribute of the same name in a feature that does survive.
.RE
.SS Filtering features by attributes
.RS
.IP \(bu 2
\fB\fC\-j\fR \fIfilter\fP or \fB\fC\-\-feature\-filter\fR=\fIfilter\fP: Check features against a per\-layer filter (as defined in the Mapbox GL Style Specification \[la]https://www.mapbox.com/mapbox-gl-js/style-spec/#types-filter\[ra]) and only include those that match. Any features in layers that have no filter specified will be passed through. Filters for the layer \fB\fC"*"\fR apply to all layers. The special variable \fB\fC$zoom\fR refers to the current zoom level.
.IP \(bu 2
\fB\fC\-J\fR \fIfilter\-file\fP or \fB\fC\-\-feature\-filter\-file\fR=\fIfilter\-file\fP: Like \fB\fC\-j\fR, but read the filter from a file.
.RE
.PP
Example: to find the Natural Earth countries with low \fB\fCscalerank\fR but high \fB\fCLABELRANK\fR:
.PP
.RS
.nf
tippecanoe \-z5 \-o filtered.mbtiles \-j '{ "ne_10m_admin_0_countries": [ "all", [ "<", "scalerank", 3 ], [ ">", "LABELRANK", 5 ] ] }' ne_10m_admin_0_countries.geojson
.fi
.RE
.PP
Example: to retain only major TIGER roads at low zoom levels:
.PP
.RS
.nf
\&./tippecanoe \-o roads.mbtiles \-j '{ "*": [ "any", [ ">=", "$zoom", 11 ], [ "in", "MTFCC", "S1100", "S1200" ] ] }' tl_2015_06001_roads.json
.fi
.RE
.SS Dropping a fixed fraction of features by zoom level
.RS
.IP \(bu 2
\fB\fC\-r\fR \fIrate\fP or \fB\fC\-\-drop\-rate=\fR\fIrate\fP: Rate at which dots are dropped at zoom levels below basezoom (default 2.5).
If you use \fB\fC\-rg\fR, it will guess a drop rate that will keep at most 50,000 features in the densest tile.
You can also specify a marker\-width with \fB\fC\-rg\fR\fIwidth\fP to allow fewer features in the densest tile to
compensate for the larger marker, or \fB\fC\-rf\fR\fInumber\fP to allow at most \fInumber\fP features in the densest tile.
.IP \(bu 2
\fB\fC\-B\fR \fIzoom\fP or \fB\fC\-\-base\-zoom=\fR\fIzoom\fP: Base zoom, the level at and above which all points are included in the tiles (default maxzoom).
If you use \fB\fC\-Bg\fR, it will guess a zoom level that will keep at most 50,000 features in the densest tile.
You can also specify a marker\-width with \fB\fC\-Bg\fR\fIwidth\fP to allow fewer features in the densest tile to
compensate for the larger marker, or \fB\fC\-Bf\fR\fInumber\fP to allow at most \fInumber\fP features in the densest tile.
.IP \(bu 2
\fB\fC\-al\fR or \fB\fC\-\-drop\-lines\fR: Let "dot" dropping at lower zooms apply to lines too
.IP \(bu 2
\fB\fC\-ap\fR or \fB\fC\-\-drop\-polygons\fR: Let "dot" dropping at lower zooms apply to polygons too
.IP \(bu 2
\fB\fC\-K\fR \fIdistance\fP or \fB\fC\-\-cluster\-distance=\fR\fIdistance\fP: Cluster points (as with \fB\fC\-\-cluster\-densest\-as\-needed\fR, but without the experimental discovery process) that are approximately within \fIdistance\fP of each other. The units are tile coordinates within a nominally 256\-pixel tile, so the maximum value of 255 allows only one feature per tile. Values around 10 are probably appropriate for typical marker sizes. See \fB\fC\-\-cluster\-densest\-as\-needed\fR below for behavior.
.RE
.SS Dropping a fraction of features to keep under tile size limits
.RS
.IP \(bu 2
\fB\fC\-as\fR or \fB\fC\-\-drop\-densest\-as\-needed\fR: If a tile is too large, try to reduce it to under 500K by increasing the minimum spacing between features. The discovered spacing applies to the entire zoom level.
.IP \(bu 2
\fB\fC\-ad\fR or \fB\fC\-\-drop\-fraction\-as\-needed\fR: Dynamically drop some fraction of features from each zoom level to keep large tiles under the 500K size limit. (This is like \fB\fC\-pd\fR but applies to the entire zoom level, not to each tile.)
.IP \(bu 2
\fB\fC\-an\fR or \fB\fC\-\-drop\-smallest\-as\-needed\fR: Dynamically drop the smallest features (physically smallest: the shortest lines or the smallest polygons) from each zoom level to keep large tiles under the 500K size limit. This option will not work for point features.
.IP \(bu 2
\fB\fC\-aN\fR or \fB\fC\-\-coalesce\-smallest\-as\-needed\fR: Dynamically combine the smallest features (physically smallest: the shortest lines or the smallest polygons) from each zoom level into other nearby features to keep large tiles under the 500K size limit. This option will not work for point features, and will probably not help very much with LineStrings. It is mostly intended for polygons, to maintain the full original area covered by polygons while still reducing the feature count somehow. The attributes of the small polygons are \fInot\fP preserved into the combined features, only their geometry.
.IP \(bu 2
\fB\fC\-aD\fR or \fB\fC\-\-coalesce\-densest\-as\-needed\fR: Dynamically combine the densest features from each zoom level into other nearby features to keep large tiles under the 500K size limit. (Again, mostly useful for polygons.)
.IP \(bu 2
\fB\fC\-aS\fR or \fB\fC\-\-coalesce\-fraction\-as\-needed\fR: Dynamically combine a fraction of features from each zoom level into other nearby features to keep large tiles under the 500K size limit. (Again, mostly useful for polygons.)
.IP \(bu 2
\fB\fC\-pd\fR or \fB\fC\-\-force\-feature\-limit\fR: Dynamically drop some fraction of features from large tiles to keep them under the 500K size limit. It will probably look ugly at the tile boundaries. (This is like \fB\fC\-ad\fR but applies to each tile individually, not to the entire zoom level.) You probably don't want to use this.
.IP \(bu 2
\fB\fC\-aC\fR or \fB\fC\-\-cluster\-densest\-as\-needed\fR: If a tile is too large, try to reduce its size by increasing the minimum spacing between features, and leaving one placeholder feature from each group. The remaining feature will be given a \fB\fC"cluster": true\fR attribute to indicate that it represents a cluster, a \fB\fC"point_count"\fR attribute to indicate the number of features that were clustered into it, and a \fB\fC"sqrt_point_count"\fR attribute to indicate the relative width of a feature to represent the cluster. If the features being clustered are points, the representative feature will be located at the average of the original points' locations; otherwise, one of the original features will be left as the representative.
.RE
.SS Dropping tightly overlapping features
.RS
.IP \(bu 2
\fB\fC\-g\fR \fIgamma\fP or \fB\fC\-\-gamma=_gamma\fR_: Rate at which especially dense dots are dropped (default 0, for no effect). A gamma of 2 reduces the number of dots less than a pixel apart to the square root of their original number.
.IP \(bu 2
\fB\fC\-aG\fR or \fB\fC\-\-increase\-gamma\-as\-needed\fR: If a tile is too large, try to reduce it to under 500K by increasing the \fB\fC\-g\fR gamma. The discovered gamma applies to the entire zoom level. You probably want to use \fB\fC\-\-drop\-densest\-as\-needed\fR instead.
.RE
.SS Line and polygon simplification
.RS
.IP \(bu 2
\fB\fC\-S\fR \fIscale\fP or \fB\fC\-\-simplification=\fR\fIscale\fP: Multiply the tolerance for line and polygon simplification by \fIscale\fP\&. The standard tolerance tries to keep
the line or polygon within one tile unit of its proper location. You can probably go up to about 10 without too much visible difference.
.IP \(bu 2
\fB\fC\-ps\fR or \fB\fC\-\-no\-line\-simplification\fR: Don't simplify lines and polygons
.IP \(bu 2
\fB\fC\-pS\fR or \fB\fC\-\-simplify\-only\-low\-zooms\fR: Don't simplify lines and polygons at maxzoom (but do simplify at lower zooms)
.IP \(bu 2
\fB\fC\-pt\fR or \fB\fC\-\-no\-tiny\-polygon\-reduction\fR: Don't combine the area of very small polygons into small squares that represent their combined area.
.RE
.SS Attempts to improve shared polygon boundaries
.RS
.IP \(bu 2
\fB\fC\-ab\fR or \fB\fC\-\-detect\-shared\-borders\fR: In the manner of TopoJSON \[la]https://github.com/mbostock/topojson/wiki/Introduction\[ra], detect borders that are shared between multiple polygons and simplify them identically in each polygon. This takes more time and memory than considering each polygon individually.
.IP \(bu 2
\fB\fC\-aL\fR or \fB\fC\-\-grid\-low\-zooms\fR: At all zoom levels below \fImaxzoom\fP, snap all lines and polygons to a stairstep grid instead of allowing diagonals. You will also want to specify a tile resolution, probably \fB\fC\-D8\fR\&. This option provides a way to display continuous parcel, gridded, or binned data at low zooms without overwhelming the tiles with tiny polygons, since features will either get stretched out to the grid unit or lost entirely, depending on how they happened to be aligned in the original data. You probably don't want to use this.
.RE
.SS Controlling clipping to tile boundaries
.RS
.IP \(bu 2
\fB\fC\-b\fR \fIpixels\fP or \fB\fC\-\-buffer=\fR\fIpixels\fP: Buffer size where features are duplicated from adjacent tiles. Units are "screen pixels"—1/256th of the tile width or height. (default 5)
.IP \(bu 2
\fB\fC\-pc\fR or \fB\fC\-\-no\-clipping\fR: Don't clip features to the size of the tile. If a feature overlaps the tile's bounds or buffer at all, it is included completely. Be careful: this can produce very large tilesets, especially with large polygons.
.IP \(bu 2
\fB\fC\-pD\fR or \fB\fC\-\-no\-duplication\fR: As with \fB\fC\-\-no\-clipping\fR, each feature is included intact instead of cut to tile boundaries. In addition, it is included only in a single tile per zoom level rather than potentially in multiple copies. Clients of the tileset must check adjacent tiles (possibly some distance away) to ensure they have all features.
.RE
.SS Reordering features within each tile
.RS
.IP \(bu 2
\fB\fC\-pi\fR or \fB\fC\-\-preserve\-input\-order\fR: Preserve the original input order of features as the drawing order instead of ordering geographically. (This is implemented as a restoration of the original order at the end, so that dot\-dropping is still geographic, which means it also undoes \fB\fC\-ao\fR).
.IP \(bu 2
\fB\fC\-ao\fR or \fB\fC\-\-reorder\fR: Reorder features to put ones with the same properties in sequence, to try to get them to coalesce. You probably want to use this if you use \fB\fC\-\-coalesce\fR\&.
.IP \(bu 2
\fB\fC\-ac\fR or \fB\fC\-\-coalesce\fR: Coalesce adjacent line and polygon features that have the same properties. This can be useful if you have lots of small polygons with identical attributes and you would like to merge them together.
.IP \(bu 2
\fB\fC\-ar\fR or \fB\fC\-\-reverse\fR: Try reversing the directions of lines to make them coalesce and compress better. You probably don't want to use this.
.RE
.SS Adding calculated attributes
.RS
.IP \(bu 2
\fB\fC\-ag\fR or \fB\fC\-\-calculate\-feature\-density\fR: Add a new attribute, \fB\fCtippecanoe_feature_density\fR, to each feature, to record how densely features are spaced in that area of the tile. You can use this attribute in the style to produce a glowing effect where points are densely packed. It can range from 0 in the sparsest areas to 255 in the densest.
.RE
.SS Trying to correct bad source geometry
.RS
.IP \(bu 2
\fB\fC\-aw\fR or \fB\fC\-\-detect\-longitude\-wraparound\fR: Detect when adjacent points within a feature jump to the other side of the world, and try to fix the geometry.
.RE
.SS Setting or disabling tile size limits
.RS
.IP \(bu 2
\fB\fC\-M\fR \fIbytes\fP or \fB\fC\-\-maximum\-tile\-bytes=\fR\fIbytes\fP: Use the specified number of \fIbytes\fP as the maximum compressed tile size instead of 500K.
.IP \(bu 2
\fB\fC\-O\fR \fIfeatures\fP or \fB\fC\-\-maximum\-tile\-features=\fR\fIfeatures\fP: Use the specified number of \fIfeatures\fP as the maximum in a tile instead of 200,000.
.IP \(bu 2
\fB\fC\-pf\fR or \fB\fC\-\-no\-feature\-limit\fR: Don't limit tiles to 200,000 features
.IP \(bu 2
\fB\fC\-pk\fR or \fB\fC\-\-no\-tile\-size\-limit\fR: Don't limit tiles to 500K bytes
.IP \(bu 2
\fB\fC\-pC\fR or \fB\fC\-\-no\-tile\-compression\fR: Don't compress the PBF vector tile data.
.IP \(bu 2
\fB\fC\-pg\fR or \fB\fC\-\-no\-tile\-stats\fR: Don't generate the \fB\fCtilestats\fR row in the tileset metadata. Uploads without tilestats \[la]https://github.com/mapbox/mapbox-geostats\[ra] will take longer to process.
.RE
.SS Temporary storage
.RS
.IP \(bu 2
\fB\fC\-t\fR \fIdirectory\fP or \fB\fC\-\-temporary\-directory=\fR\fIdirectory\fP: Put the temporary files in \fIdirectory\fP\&.
If you don't specify, it will use \fB\fC/tmp\fR\&.
.RE
.SS Progress indicator
.RS
.IP \(bu 2
\fB\fC\-q\fR or \fB\fC\-\-quiet\fR: Work quietly instead of reporting progress or warning messages
.IP \(bu 2
\fB\fC\-Q\fR or \fB\fC\-\-no\-progress\-indicator\fR: Don't report progress, but still give warnings
.IP \(bu 2
\fB\fC\-U\fR \fIseconds\fP or \fB\fC\-\-progress\-interval=\fR\fIseconds\fP: Don't report progress more often than the specified number of \fIseconds\fP\&.
.IP \(bu 2
\fB\fC\-v\fR or \fB\fC\-\-version\fR: Report Tippecanoe's version number
.RE
.SS Meta\-options
.RS
.IP \(bu 2
\fB\fC\-h\fR \fIoptions\fP or \fB\fC\-\-options=\fR\fIoptions\fP: Process additional options from the specified literal JSON object.
.IP \(bu 2
\fB\fC\-H\fR \fIconfig.json\fP or \fB\fC\-\-options\-from\-file=\fR\fIconfig.json\fP: Read additional options from the specified \fIconfig.json\fP file.
The file should contain one JSON object.
.RE
.PP
Either with directly\-specified options or options from a file, the options should be a single JSON object.
Its keys must be long or short option names. The value corresponding
to each key should be a string or number, for options with arguments, or \fB\fCnull\fR or \fB\fCtrue\fR for options that do not take arguments.
.PP
Example:
.PP
.RS
.nf
tippecanoe \-h '{ "maximum\-zoom": "g", "force": true, "output": "countries.mbtiles" }' ne_10m_admin_0_countries.json
.fi
.RE
.SS Filters
.RS
.IP \(bu 2
\fB\fC\-C\fR \fIcommand\fP or \fB\fC\-\-prefilter=\fR\fIcommand\fP: Specify a shell filter command to be run at the start of assembling each tile
.IP \(bu 2
\fB\fC\-c\fR \fIcommand\fP or \fB\fC\-\-postfilter=\fR\fIcommand\fP: Specify a shell filter command to be run at the end of assembling each tile
.RE
.PP
The pre\- and post\-filter commands allow you to do optional filtering or transformation on the features of each tile
as it is created. They are shell commands, run with the zoom level, X, and Y as the \fB\fC$1\fR, \fB\fC$2\fR, and \fB\fC$3\fR arguments.
Future versions of Tippecanoe may add additional arguments for more context.
.PP
The features are provided to the filter
as a series of newline\-delimited GeoJSON objects on the standard input, and \fB\fCtippecanoe\fR expects to read another
set of GeoJSON features from the filter's standard output.
.PP
The prefilter receives the features at the highest available resolution, before line simplification,
polygon topology repair, gamma calculation, dynamic feature dropping, or other internal processing.
The postfilter receives the features at tile resolution, after simplification, cleaning, and dropping.
.PP
The layer name is provided as part of the \fB\fCtippecanoe\fR element of the feature and must be passed through
to keep the feature in its correct layer. In the case of the prefilter, the \fB\fCtippecanoe\fR element may also
contain \fB\fCindex\fR, \fB\fCsequence\fR, \fB\fCextent\fR, and \fB\fCdropped\fR, elements, which must be passed through for internal operations like
\fB\fC\-\-drop\-densest\-as\-needed\fR, \fB\fC\-\-drop\-smallest\-as\-needed\fR, and \fB\fC\-\-preserve\-input\-order\fR to work.
.SS Examples:
.RS
.IP \(bu 2
Make a tileset of the Natural Earth countries to zoom level 5, and also copy the GeoJSON features
to files in a \fB\fCtiles/z/x/y.geojson\fR directory hierarchy.
.RE
.PP
.RS
.nf
tippecanoe \-o countries.mbtiles \-z5 \-C 'mkdir \-p tiles/$1/$2; tee tiles/$1/$2/$3.geojson' ne_10m_admin_0_countries.json
.fi
.RE
.RS
.IP \(bu 2
Make a tileset of the Natural Earth countries to zoom level 5, but including only those tiles that
intersect the bounding box of Germany \[la]https://www.flickr.com/places/info/23424829\[ra]\&.
(The \fB\fClimit\-tiles\-to\-bbox\fR script is in the Tippecanoe source directory \[la]filters/limit-tiles-to-bbox\[ra]\&.)
.RE
.PP
.RS
.nf
tippecanoe \-o countries.mbtiles \-z5 \-C './filters/limit\-tiles\-to\-bbox 5.8662 47.2702 15.0421 55.0581 $*' ne_10m_admin_0_countries.json
.fi
.RE
.RS
.IP \(bu 2
Make a tileset of TIGER roads in Tippecanoe County, leaving out all but primary and secondary roads (as classified by TIGER \[la]https://www.census.gov/geo/reference/mtfcc.html\[ra]) below zoom level 11.
.RE
.PP
.RS
.nf
tippecanoe \-o roads.mbtiles \-c 'if [ $1 \-lt 11 ]; then grep "\\"MTFCC\\": \\"S1[12]00\\""; else cat; fi' tl_2016_18157_roads.json
.fi
.RE
.SH Environment
.PP
Tippecanoe ordinarily uses as many parallel threads as the operating system claims that CPUs are available.
You can override this number by setting the \fB\fCTIPPECANOE_MAX_THREADS\fR environmental variable.
.SH GeoJSON extension
.PP
Tippecanoe defines a GeoJSON extension that you can use to specify the minimum and/or maximum zoom level
@ -243,35 +520,6 @@ the filename or name specified using \fB\fC\-\-layer\fR, like this:
}
.fi
.RE
.SH Point styling
.PP
To provide a consistent density gradient as you zoom, the Mapbox Studio style needs to be
coordinated with the base zoom level and dot\-dropping rate. You can use this shell script to
calculate the appropriate marker\-width at high zoom levels to match the fraction of dots
that were dropped at low zoom levels.
.PP
If you used \fB\fC\-B\fR or \fB\fC\-z\fR to change the base zoom level or \fB\fC\-r\fR to change the
dot\-dropping rate, replace them in the \fB\fCbasezoom\fR and \fB\fCrate\fR below.
.PP
.RS
.nf
awk 'BEGIN {
dotsize = 2; # up to you to decide
basezoom = 14; # tippecanoe \-z 14
rate = 2.5; # tippecanoe \-r 2.5
print " marker\-line\-width: 0;";
print " marker\-ignore\-placement: true;";
print " marker\-allow\-overlap: true;";
print " marker\-width: " dotsize ";";
for (i = basezoom + 1; i <= 22; i++) {
print " [zoom >= " i "] { marker\-width: " (dotsize * exp(log(sqrt(rate)) * (i \- basezoom))) "; }";
}
exit(0);
}'
.fi
.RE
.SH Geometric simplifications
.PP
At every zoom level, line and polygon features are subjected to Douglas\-Peucker
@ -297,9 +545,6 @@ have their probability diffused, so that some of them will be drawn as a square
this minimum size and others will not be drawn at all, preserving the total area that
all of them should have had together.
.PP
Any polygons that have over 700 vertices after line simplification will be split into
multiple features so they can be rendered efficiently, unless you use \-pp to prevent this.
.PP
Features in the same tile that share the same type and attributes are coalesced
together into a single geometry if you use \fB\fC\-\-coalesce\fR\&. You are strongly encouraged to use \-x to exclude
any unnecessary properties to reduce wasted file size.
@ -335,7 +580,7 @@ make install
.fi
.RE
.PP
Tippecanoe now requires features from the 2014 C++ standard. If your compiler is older than
Tippecanoe now requires features from the 2011 C++ standard. If your compiler is older than
that, you will need to install a newer one. On MacOS, updating to the lastest XCode should
get you a new enough version of \fB\fCclang++\fR\&. On Linux, you should be able to upgrade \fB\fCg++\fR with
.PP
@ -347,6 +592,24 @@ sudo apt\-get install \-y g++\-5
export CXX=g++\-5
.fi
.RE
.SH Docker Image
.PP
A tippecanoe Docker image can be built from source and executed as a task to
automatically install dependencies and allow tippecanoe to run on any system
supported by Docker.
.PP
.RS
.nf
$ docker build \-t tippecanoe:latest .
$ docker run \-it \-\-rm \\
\-v /tiledata:/data \\
tippecanoe:latest \\
tippecanoe \-\-output=/data/output.mbtiles /data/example.geojson
.fi
.RE
.PP
The commands above will build a Docker image from the source and compile the
latest version. The image supports all tippecanoe flags and options.
.SH Examples
.PP
Check out some examples of maps made with tippecanoe \[la]MADE_WITH.md\[ra]
@ -355,28 +618,77 @@ Check out some examples of maps made with tippecanoe \[la]MADE_WITH.md\[ra]
The name is a joking reference \[la]http://en.wikipedia.org/wiki/Tippecanoe_and_Tyler_Too\[ra] to a "tiler" for making map tiles.
.SH tile\-join
.PP
Tile\-join is a tool for joining new attributes from a CSV file to features that
have already been tiled with tippecanoe. It reads the tiles from an existing .mbtiles
file, matches them against the records of the CSV, and writes out a new tileset.
Tile\-join is a tool for copying and merging vector mbtiles files and for
joining new attributes from a CSV file to existing features in them.
.PP
If you specify multiple source mbtiles files, they are all read and their combined
contents are written to the new mbtiles output. If they define the same layers or
the same tiles, the layers or tiles are merged.
It reads the tiles from an
existing .mbtiles file or a directory of tiles, matches them against the
records of the CSV (if one is specified), and writes out a new tileset.
.PP
If you specify multiple source mbtiles files or source directories of tiles,
all the sources are read and their combined contents are written to the new
mbtiles output. If they define the same layers or the same tiles, the layers
or tiles are merged.
.PP
The options are:
.SS Output tileset
.RS
.IP \(bu 2
\-o \fIout.mbtiles\fP: Write the new tiles to the specified .mbtiles file
\fB\fC\-o\fR \fIout.mbtiles\fP or \fB\fC\-\-output=\fR\fIout.mbtiles\fP: Write the new tiles to the specified .mbtiles file.
.IP \(bu 2
\-f: Remove \fIout.mbtiles\fP if it already exists
\fB\fC\-e\fR \fIdirectory\fP or \fB\fC\-\-output\-to\-directory=\fR\fIdirectory\fP: Write the new tiles to the specified directory instead of to an mbtiles file.
.IP \(bu 2
\-c \fImatch.csv\fP: Use \fImatch.csv\fP as the source for new attributes to join to the features. The first line of the file should be the key names; the other lines are values. The first column is the one to match against the existing features; the other columns are the new data to add.
\fB\fC\-f\fR or \fB\fC\-\-force\fR: Remove \fIout.mbtiles\fP if it already exists.
.RE
.SS Tileset description and attribution
.RS
.IP \(bu 2
\-x \fIkey\fP: Remove attributes of type \fIkey\fP from the output. You can use this to remove the field you are matching against if you no longer need it after joining, or to remove any other attributes you don't want.
\fB\fC\-A\fR \fIattribution\fP or \fB\fC\-\-attribution=\fR\fIattribution\fP: Set the attribution string.
.IP \(bu 2
\-i: Only include features that matched the CSV.
\fB\fC\-n\fR \fIname\fP or \fB\fC\-\-name=\fR\fIname\fP: Set the tileset name.
.IP \(bu 2
\-pk: Don't skip tiles larger than 500K.
\fB\fC\-N\fR \fIdescription\fP or \fB\fC\-\-description=\fR\fIdescription\fP: Set the tileset description.
.RE
.SS Layer filtering and naming
.RS
.IP \(bu 2
\fB\fC\-l\fR \fIlayer\fP or \fB\fC\-\-layer=\fR\fIlayer\fP: Include the named layer in the output. You can specify multiple \fB\fC\-l\fR options to keep multiple layers. If you don't specify, they will all be retained.
.IP \(bu 2
\fB\fC\-L\fR \fIlayer\fP or \fB\fC\-\-exclude\-layer=\fR\fIlayer\fP: Remove the named layer from the output. You can specify multiple \fB\fC\-L\fR options to remove multiple layers.
.IP \(bu 2
\fB\fC\-R\fR\fIold\fP\fB\fC:\fR\fInew\fP or \fB\fC\-\-rename\-layer=\fR\fIold\fP\fB\fC:\fR\fInew\fP: Rename the layer named \fIold\fP to be named \fInew\fP instead. You can specify multiple \fB\fC\-R\fR options to rename multiple layers. Renaming happens before filtering.
.RE
.SS Zoom levels
.RS
.IP \(bu 2
\fB\fC\-z\fR \fIzoom\fP or \fB\fC\-\-maximum\-zoom=\fR\fIzoom\fP: Don't copy tiles from higher zoom levels than the specified zoom
.IP \(bu 2
\fB\fC\-Z\fR \fIzoom\fP or \fB\fC\-\-minimum\-zoom=\fR\fIzoom\fP: Don't copy tiles from lower zoom levels than the specified zoom
.RE
.SS Merging attributes from a CSV file
.RS
.IP \(bu 2
\fB\fC\-c\fR \fImatch\fP\fB\fC\&.csv\fR or \fB\fC\-\-csv=\fR\fImatch\fP\fB\fC\&.csv\fR: Use \fImatch\fP\fB\fC\&.csv\fR as the source for new attributes to join to the features. The first line of the file should be the key names; the other lines are values. The first column is the one to match against the existing features; the other columns are the new data to add.
.RE
.SS Filtering features and feature attributes
.RS
.IP \(bu 2
\fB\fC\-x\fR \fIkey\fP or \fB\fC\-\-exclude=\fR\fIkey\fP: Remove attributes of type \fIkey\fP from the output. You can use this to remove the field you are matching against if you no longer need it after joining, or to remove any other attributes you don't want.
.IP \(bu 2
\fB\fC\-i\fR or \fB\fC\-\-if\-matched\fR: Only include features that matched the CSV.
.IP \(bu 2
\fB\fC\-j\fR \fIfilter\fP or \fB\fC\-\-feature\-filter\fR=\fIfilter\fP: Check features against a per\-layer filter (as defined in the Mapbox GL Style Specification \[la]https://www.mapbox.com/mapbox-gl-js/style-spec/#types-filter\[ra]) and only include those that match. Any features in layers that have no filter specified will be passed through. Filters for the layer \fB\fC"*"\fR apply to all layers.
.IP \(bu 2
\fB\fC\-J\fR \fIfilter\-file\fP or \fB\fC\-\-feature\-filter\-file\fR=\fIfilter\-file\fP: Like \fB\fC\-j\fR, but read the filter from a file.
.RE
.SS Setting or disabling tile size limits
.RS
.IP \(bu 2
\fB\fC\-pk\fR or \fB\fC\-\-no\-tile\-size\-limit\fR: Don't skip tiles larger than 500K.
.IP \(bu 2
\fB\fC\-pC\fR or \fB\fC\-\-no\-tile\-compression\fR: Don't compress the PBF vector tile data.
.IP \(bu 2
\fB\fC\-pg\fR or \fB\fC\-\-no\-tile\-stats\fR: Don't generate the \fB\fCtilestats\fR row in the tileset metadata. Uploads without tilestats \[la]https://github.com/mapbox/mapbox-geostats\[ra] will take longer to process.
.RE
.PP
Because tile\-join just copies the geometries to the new .mbtiles without processing them
@ -468,12 +780,98 @@ tippecanoe\-decode file.vector.pbf zoom x y
.fi
.RE
.PP
If you decode an entire file, you get a nested \fB\fCFeatureCollection\fR identifying each
Unless you use \fB\fC\-c\fR, the output is a set of nested FeatureCollections identifying each
tile and layer separately. Note that the same features generally appear at all zooms,
so the output for the file will have many copies of the same features at different
resolutions.
.SS Options
.RS
.IP \(bu 2
\-t \fIprojection\fP: Specify the projection of the output data. Currently supported are EPSG:4326 (WGS84, the default) and EPSG:3857 (Web Mercator).
\fB\fC\-s\fR \fIprojection\fP or \fB\fC\-\-projection=\fR\fIprojection\fP: Specify the projection of the output data. Currently supported are EPSG:4326 (WGS84, the default) and EPSG:3857 (Web Mercator).
.IP \(bu 2
\fB\fC\-z\fR \fImaxzoom\fP or \fB\fC\-\-maximum\-zoom=\fR\fImaxzoom\fP: Specify the highest zoom level to decode from the tileset
.IP \(bu 2
\fB\fC\-Z\fR \fIminzoom\fP or \fB\fC\-\-minimum\-zoom=\fR\fIminzoom\fP: Specify the lowest zoom level to decode from the tileset
.IP \(bu 2
\fB\fC\-l\fR \fIlayer\fP or \fB\fC\-\-layer=\fR\fIlayer\fP: Decode only layers with the specified names. (Multiple \fB\fC\-l\fR options can be specified.)
.IP \(bu 2
\fB\fC\-c\fR or \fB\fC\-\-tag\-layer\-and\-zoom\fR: Include each feature's layer and zoom level as part of its \fB\fCtippecanoe\fR object rather than as a FeatureCollection wrapper
.IP \(bu 2
\fB\fC\-S\fR or \fB\fC\-\-stats\fR: Just report statistics about each tile's size and the number of features in it, as a JSON structure.
.IP \(bu 2
\fB\fC\-f\fR or \fB\fC\-\-force\fR: Decode tiles even if polygon ring order or closure problems are detected
.RE
.SH tippecanoe\-json\-tool
.PP
Extracts GeoJSON features or standalone geometries as line\-delimited JSON objects from a larger JSON file,
following the same extraction rules that Tippecanoe uses when parsing JSON.
.PP
.RS
.nf
tippecanoe\-json\-tool file.json [... file.json]
.fi
.RE
.PP
Optionally also wraps them in a FeatureCollection or GeometryCollection as appropriate.
.PP
Optionally extracts an attribute from the GeoJSON \fB\fCproperties\fR for sorting.
.PP
Optionally joins a sorted CSV of new attributes to a sorted GeoJSON file.
.PP
The reason for requiring sorting is so that it is possible to work on CSV and GeoJSON files that are larger
than can comfortably fit in memory by streaming through them in parallel, in the same way that the Unix
\fB\fCjoin\fR command does. The Unix \fB\fCsort\fR command can be used to sort large files to prepare them for joining.
.PP
The sorting interface is weird, and future version of \fB\fCtippecanoe\-json\-tool\fR will replace it with
something better.
.SS Options
.RS
.IP \(bu 2
\fB\fC\-w\fR or \fB\fC\-\-wrap\fR: Add the FeatureCollection or GeometryCollection wrapper.
.IP \(bu 2
\fB\fC\-e\fR \fIattribute\fP or \fB\fC\-\-extract=\fR\fIattribute\fP: Extract the named attribute as a prefix to each feature.
The formatting makes excessive use of \fB\fC\\u\fR quoting so that it follows JSON string rules but will still
be sorted correctly by tools that just do ASCII comparisons.
.IP \(bu 2
\fB\fC\-c\fR \fIfile.csv\fP or \fB\fC\-\-csv=\fR\fIfile.csv\fP: Join properties from the named sorted CSV file, using its first column as the join key. Geometries will be passed through even if they do not match the CSV; CSV lines that do not match a geometry will be discarded.
.RE
.SS Example
.PP
Join Census LEHD (Longitudinal Employer\-Household Dynamics \[la]https://lehd.ces.census.gov/\[ra]) employment data to a file of Census block geography
for Tippecanoe County, Indiana.
.PP
Download Census block geometry, and convert to GeoJSON:
.PP
.RS
.nf
$ curl \-L \-O https://www2.census.gov/geo/tiger/TIGER2010/TABBLOCK/2010/tl_2010_18157_tabblock10.zip
$ unzip tl_2010_18157_tabblock10.zip
$ ogr2ogr \-f GeoJSON tl_2010_18157_tabblock10.json tl_2010_18157_tabblock10.shp
.fi
.RE
.PP
Download Indiana employment data, and fix name of join key in header
.PP
.RS
.nf
$ curl \-L \-O https://lehd.ces.census.gov/data/lodes/LODES7/in/wac/in_wac_S000_JT00_2015.csv.gz
$ gzip \-dc in_wac_S000_JT00_2015.csv.gz | sed '1s/w_geocode/GEOID10/' > in_wac_S000_JT00_2015.csv
.fi
.RE
.PP
Sort GeoJSON block geometry so it is ordered by block ID. If you don't do this, you will get a
"GeoJSON file is out of sort" error.
.PP
.RS
.nf
$ tippecanoe\-json\-tool \-e GEOID10 tl_2010_18157_tabblock10.json | LC_ALL=C sort > tl_2010_18157_tabblock10.sort.json
.fi
.RE
.PP
Join block geometries to employment properties:
.PP
.RS
.nf
$ tippecanoe\-json\-tool \-c in_wac_S000_JT00_2015.csv tl_2010_18157_tabblock10.sort.json > blocks\-wac.json
.fi
.RE

View File

@ -0,0 +1,466 @@
#include <mapbox/geometry/geometry.hpp>
#include <math.h>
#include <map>
#include <set>
#include <vector>
#include <algorithm>
#include <cmath>
namespace mapbox {
namespace geometry {
template <typename T>
void add_vertical(size_t intermediate, size_t which_end, size_t into, std::vector<std::vector<point<T>>> &segments, bool &again, std::vector<size_t> &nexts) {
again = true;
std::vector<point<T>> dv;
dv.push_back(segments[intermediate][which_end]);
dv.push_back(segments[into][1]);
segments.push_back(dv);
segments[into][1] = segments[intermediate][which_end];
nexts.push_back(nexts[into]);
nexts[into] = nexts.size() - 1;
}
template <typename T>
void add_horizontal(size_t intermediate, size_t which_end, size_t into, std::vector<std::vector<point<T>>> &segments, bool &again, std::vector<size_t> &nexts) {
again = true;
T x = segments[intermediate][which_end].x;
T y = segments[intermediate][0].y +
(segments[intermediate][which_end].x - segments[intermediate][0].x) *
(segments[intermediate][1].y - segments[intermediate][0].y) /
(segments[intermediate][1].x - segments[intermediate][0].x);
point<T> d(x, y);
std::vector<point<T>> dv;
dv.push_back(d);
dv.push_back(segments[into][1]);
segments.push_back(dv);
segments[into][1] = d;
nexts.push_back(nexts[into]);
nexts[into] = nexts.size() - 1;
}
template <typename T>
void warn(std::vector<std::vector<point<T>>> &segments, size_t a, size_t b, bool do_warn) {
if (do_warn) {
fprintf(stderr, "%lld,%lld to %lld,%lld intersects %lld,%lld to %lld,%lld\n",
(long long) segments[a][0].x, (long long) segments[a][0].y,
(long long) segments[a][1].x, (long long) segments[a][1].y,
(long long) segments[b][0].x, (long long) segments[b][0].y,
(long long) segments[b][1].x, (long long) segments[b][1].y);
}
}
template <typename T>
void check_intersection(std::vector<std::vector<point<T>>> &segments, size_t a, size_t b, bool &again, std::vector<size_t> &nexts, bool do_warn, bool endpoint_ok) {
T s10_x = segments[a][1].x - segments[a][0].x;
T s10_y = segments[a][1].y - segments[a][0].y;
T s32_x = segments[b][1].x - segments[b][0].x;
T s32_y = segments[b][1].y - segments[b][0].y;
// http://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect
T denom = s10_x * s32_y - s32_x * s10_y;
if (denom == 0) {
// They are parallel or collinear. Find out if they are collinear.
// http://www.cpsc.ucalgary.ca/~marina/papers/Segment_intersection.ps
T ccw =
segments[a][0].x * segments[a][1].y +
segments[a][1].x * segments[b][0].y +
segments[b][0].x * segments[a][0].y -
segments[a][0].x * segments[b][0].y -
segments[a][1].x * segments[a][0].y -
segments[b][0].x * segments[a][1].y;
if (ccw == 0) {
if (segments[a][0].x == segments[a][1].x) {
// Vertical
T amin, amax, bmin, bmax;
if (segments[a][0].y < segments[a][1].y) {
amin = segments[a][0].y;
amax = segments[a][1].y;
} else {
amin = segments[a][1].y;
amax = segments[a][0].y;
}
if (segments[b][0].y < segments[b][1].y) {
bmin = segments[b][0].y;
bmax = segments[b][1].y;
} else {
bmin = segments[b][1].y;
bmax = segments[b][0].y;
}
// All of these transformations preserve verticality so we can check multiple cases
if (segments[b][0].y > amin && segments[b][0].y < amax) {
// B0 is in A
warn(segments, a, b, do_warn);
add_vertical(b, 0, a, segments, again, nexts);
}
if (segments[b][1].y > amin && segments[b][1].y < amax) {
// B1 is in A
warn(segments, a, b, do_warn);
add_vertical(b, 1, a, segments, again, nexts);
}
if (segments[a][0].y > bmin && segments[a][0].y < bmax) {
// A0 is in B
warn(segments, a, b, do_warn);
add_vertical(a, 0, b, segments, again, nexts);
}
if (segments[a][1].y > bmin && segments[a][1].y < bmax) {
// A1 is in B
warn(segments, a, b, do_warn);
add_vertical(a, 1, b, segments, again, nexts);
}
} else {
// Horizontal or diagonal
T amin, amax, bmin, bmax;
if (segments[a][0].x < segments[a][1].x) {
amin = segments[a][0].x;
amax = segments[a][1].x;
} else {
amin = segments[a][1].x;
amax = segments[a][0].x;
}
if (segments[b][0].x < segments[b][1].x) {
bmin = segments[b][0].x;
bmax = segments[b][1].x;
} else {
bmin = segments[b][1].x;
bmax = segments[b][0].x;
}
// Don't check multiples, because rounding may corrupt collinearity
if (segments[b][0].x > amin && segments[b][0].x < amax) {
// B0 is in A
add_horizontal(b, 0, a, segments, again, nexts);
warn(segments, a, b, do_warn);
} else if (segments[b][1].x > amin && segments[b][1].x < amax) {
// B1 is in A
add_horizontal(b, 1, a, segments, again, nexts);
warn(segments, a, b, do_warn);
} else if (segments[a][0].x > bmin && segments[a][0].x < bmax) {
// A0 is in B
warn(segments, a, b, do_warn);
add_horizontal(a, 0, b, segments, again, nexts);
} else if (segments[a][1].x > bmin && segments[a][1].x < bmax) {
// A1 is in B
warn(segments, a, b, do_warn);
add_horizontal(a, 1, b, segments, again, nexts);
}
}
}
} else {
// Neither parallel nor collinear, so may intersect at a single point
T s02_x = segments[a][0].x - segments[b][0].x;
T s02_y = segments[a][0].y - segments[b][0].y;
double s = (s10_x * s02_y - s10_y * s02_x) / (long double) denom;
double t = (s32_x * s02_y - s32_y * s02_x) / (long double) denom;
if (t >= 0 && t <= 1 && s >= 0 && s <= 1) {
T x = (T) round(segments[a][0].x + t * s10_x);
T y = (T) round(segments[a][0].y + t * s10_y);
if ((t > 0 && t < 1 && s > 0 && s < 1) || !endpoint_ok) {
if (t >= 0 && t <= 1) {
if ((x != segments[a][0].x || y != segments[a][0].y) && (x != segments[a][1].x || y != segments[a][1].y)) {
warn(segments, a, b, do_warn);
// splitting a
std::vector<point<T>> dv;
dv.push_back(point<T>(x, y));
dv.push_back(segments[a][1]);
segments.push_back(dv);
segments[a][1] = point<T>(x, y);
nexts.push_back(nexts[a]);
nexts[a] = nexts.size() - 1;
again = true;
}
}
if (s >= 0 && s <= 1) {
if ((x != segments[b][0].x || y != segments[b][0].y) && (x != segments[b][1].x || y != segments[b][1].y)) {
// splitting b
warn(segments, a, b, do_warn);
std::vector<point<T>> dv;
dv.push_back(point<T>(x, y));
dv.push_back(segments[b][1]);
segments.push_back(dv);
segments[b][1] = point<T>(x, y);
nexts.push_back(nexts[b]);
nexts[b] = nexts.size() - 1;
again = true;
}
}
}
}
}
}
template <typename T>
void partition(std::vector<std::vector<point<T>>> &segs, std::vector<size_t> &subset, int direction, std::set<std::pair<size_t, size_t>> &possible) {
std::vector<T> points;
// List of X or Y midpoints of edges, so we can find the median
if (direction == 0) {
for (size_t i = 0; i < subset.size(); i++) {
points.push_back((segs[subset[i]][0].x + segs[subset[i]][1].x) / 2);
}
} else {
for (size_t i = 0; i < subset.size(); i++) {
points.push_back((segs[subset[i]][0].y + segs[subset[i]][1].y) / 2);
}
}
if (points.size() == 0) {
return;
}
size_t mid = points.size() / 2;
std::nth_element(points.begin(), points.begin() + mid, points.end());
T median = points[mid];
// Partition into sets that are above or below, or to the left or to the right of, the median.
// Segments that cross the median appear in both.
std::vector<size_t> one;
std::vector<size_t> two;
if (direction == 0) {
for (size_t i = 0; i < subset.size(); i++) {
if (segs[subset[i]][0].x <= median || segs[subset[i]][1].x <= median) {
one.push_back(subset[i]);
}
if (segs[subset[i]][0].x >= median || segs[subset[i]][1].x >= median) {
two.push_back(subset[i]);
}
}
} else {
for (size_t i = 0; i < subset.size(); i++) {
if (segs[subset[i]][0].y <= median || segs[subset[i]][1].y <= median) {
one.push_back(subset[i]);
}
if (segs[subset[i]][0].y >= median || segs[subset[i]][1].y >= median) {
two.push_back(subset[i]);
}
}
}
if (one.size() >= subset.size() || two.size() >= subset.size()) {
for (size_t i = 0; i < subset.size(); i++) {
for (size_t j = i + 1; j < subset.size(); j++) {
possible.insert(std::pair<size_t, size_t>(subset[i], subset[j]));
}
}
} else {
// By experiment, stopping at 10 is a little faster than either 5 or 20
if (one.size() < 10) {
for (size_t i = 0; i < one.size(); i++) {
for (size_t j = i + 1; j < one.size(); j++) {
possible.insert(std::pair<size_t, size_t>(one[i], one[j]));
}
}
} else {
partition(segs, one, !direction, possible);
}
if (two.size() < 10) {
for (size_t i = 0; i < two.size(); i++) {
for (size_t j = i + 1; j < two.size(); j++) {
possible.insert(std::pair<size_t, size_t>(two[i], two[j]));
}
}
} else {
partition(segs, two, !direction, possible);
}
}
}
template <typename T>
std::vector<std::vector<point<T>>> intersect_segments(std::vector<std::vector<point<T>>> segments, std::vector<size_t> &nexts, bool do_warn, bool endpoint_ok) {
bool again = true;
while (again) {
again = false;
std::set<std::pair<size_t, size_t>> possible;
std::vector<size_t> subset;
for (size_t i = 0; i < segments.size(); i++) {
subset.push_back(i);
}
partition(segments, subset, 0, possible);
for (auto it = possible.begin(); it != possible.end(); ++it) {
check_intersection(segments, it->first, it->second, again, nexts, do_warn, endpoint_ok);
}
}
return segments;
}
template <typename T>
linear_ring<T> remove_collinear(linear_ring<T> ring) {
linear_ring<T> out;
size_t len = ring.size() - 1; // Exclude duplicated last point
for (size_t j = 0; j < len; j++) {
long long ccw =
ring[(j + len - 1) % len].x * ring[(j + len - 0) % len].y +
ring[(j + len - 0) % len].x * ring[(j + len + 1) % len].y +
ring[(j + len + 1) % len].x * ring[(j + len - 1) % len].y -
ring[(j + len - 1) % len].x * ring[(j + len + 1) % len].y -
ring[(j + len - 0) % len].x * ring[(j + len - 1) % len].y -
ring[(j + len + 1) % len].x * ring[(j + len - 0) % len].y;
if (ccw != 0) {
out.push_back(ring[j]);
}
if (ring.size() > 0 && ring[0] != ring[ring.size() - 1]) {
ring.push_back(ring[0]);
}
}
return out;
}
template <typename T>
multi_polygon<T> snap_round(multi_polygon<T> geom, bool do_warn, bool endpoint_ok) {
std::vector<std::vector<point<T>>> segments;
std::vector<size_t> nexts;
std::vector<std::vector<size_t>> ring_starts;
// Crunch out any 0-length segments
for (size_t i = 0; i < geom.size(); i++) {
for (size_t j = 0; j < geom[i].size(); j++) {
for (ssize_t k = geom[i][j].size() - 1; k > 0; k--) {
if (geom[i][j][k] == geom[i][j][k - 1]) {
geom[i][j].erase(geom[i][j].begin() + k);
}
}
}
}
for (size_t i = 0; i < geom.size(); i++) {
ring_starts.push_back(std::vector<size_t>());
for (size_t j = 0; j < geom[i].size(); j++) {
size_t s = geom[i][j].size();
if (s > 1) {
ring_starts[i].push_back(segments.size());
size_t first = nexts.size();
for (size_t k = 0; k + 1 < s; k++) {
std::vector<point<T>> dv;
dv.push_back(geom[i][j][k]);
dv.push_back(geom[i][j][k + 1]);
segments.push_back(dv);
nexts.push_back(nexts.size() + 1);
}
// Fabricate a point if ring was not closed
if (geom[i][j][0] != geom[i][j][s - 1]) {
std::vector<point<T>> dv;
dv.push_back(geom[i][j][s - 1]);
dv.push_back(geom[i][j][0]);
segments.push_back(dv);
nexts.push_back(nexts.size() + 1);
}
// Last point of ring points back to first
nexts[nexts.size() - 1] = first;
}
}
}
segments = intersect_segments(segments, nexts, do_warn, endpoint_ok);
multi_polygon<T> mp;
for (size_t i = 0; i < ring_starts.size(); i++) {
mp.push_back(polygon<T>());
for (size_t j = 0; j < ring_starts[i].size(); j++) {
mp[i].push_back(linear_ring<T>());
size_t k = ring_starts[i][j];
do {
mp[i][j].push_back(segments[k][0]);
k = nexts[k];
} while (k != ring_starts[i][j]);
mp[i][j].push_back(segments[ring_starts[i][j]][0]);
}
}
return mp;
}
template <typename T>
multi_line_string<T> snap_round(multi_line_string<T> geom, bool do_warn, bool endpoint_ok) {
std::vector<std::vector<point<T>>> segments;
std::vector<size_t> nexts;
std::vector<size_t> ring_starts;
// Crunch out any 0-length segments
for (size_t j = 0; j < geom.size(); j++) {
for (ssize_t k = geom[j].size() - 1; k > 0; k--) {
if (geom[j][k] == geom[j][k - 1]) {
geom[j].erase(geom[j].begin() + k);
}
}
}
for (size_t j = 0; j < geom.size(); j++) {
size_t s = geom[j].size();
if (s > 1) {
ring_starts.push_back(segments.size());
size_t first = nexts.size();
for (size_t k = 0; k + 1 < s; k++) {
std::vector<point<T>> dv;
dv.push_back(geom[j][k]);
dv.push_back(geom[j][k + 1]);
segments.push_back(dv);
nexts.push_back(nexts.size() + 1);
}
// Last point of ring points back to first
nexts[nexts.size() - 1] = first;
}
}
segments = intersect_segments(segments, nexts, do_warn, endpoint_ok);
multi_line_string<T> mp;
for (size_t j = 0; j < ring_starts.size(); j++) {
mp.push_back(line_string<T>());
size_t k = ring_starts[j];
size_t last = k;
do {
mp[j].push_back(segments[k][0]);
last = k;
k = nexts[k];
} while (k != ring_starts[j]);
mp[j].push_back(segments[last][1]);
}
return mp;
}
}
}

View File

@ -5,11 +5,6 @@
#include <mapbox/geometry/polygon.hpp>
#include <mapbox/geometry/wagyu/wagyu.hpp>
#include <experimental/optional>
template <typename T>
using optional_linear_ring = std::experimental::optional<mapbox::geometry::linear_ring<T>>;
namespace mapbox {
namespace geometry {
namespace wagyu {
@ -61,7 +56,7 @@ bool inside(mapbox::geometry::point<T> p, size_t edge, mapbox::geometry::box<T>
}
template <typename T>
optional_linear_ring<T> quick_lr_clip(mapbox::geometry::linear_ring<T> const& ring,
mapbox::geometry::linear_ring<T> quick_lr_clip(mapbox::geometry::linear_ring<T> const& ring,
mapbox::geometry::box<T> const& b) {
mapbox::geometry::linear_ring<T> out = ring;
@ -89,13 +84,14 @@ optional_linear_ring<T> quick_lr_clip(mapbox::geometry::linear_ring<T> const& ri
}
if (out.size() < 3) {
return optional_linear_ring<T>();
out.clear();
return out;
}
// Close the ring if the first/last point was outside
if (out[0] != out[out.size() - 1]) {
out.push_back(out[0]);
}
return optional_linear_ring<T>(std::move(out));
return out;
}
}
@ -107,8 +103,8 @@ mapbox::geometry::multi_polygon<T> clip(mapbox::geometry::polygon<T> const& poly
wagyu<T> clipper;
for (auto const& lr : poly) {
auto new_lr = quick_clip::quick_lr_clip(lr, b);
if (new_lr) {
clipper.add_ring(*new_lr, polygon_type_subject);
if (!new_lr.empty()) {
clipper.add_ring(new_lr, polygon_type_subject);
}
}
clipper.execute(clip_type_union, result, subject_fill_type, fill_type_even_odd);
@ -124,8 +120,8 @@ mapbox::geometry::multi_polygon<T> clip(mapbox::geometry::multi_polygon<T> const
for (auto const& poly : mp) {
for (auto const& lr : poly) {
auto new_lr = quick_clip::quick_lr_clip(lr, b);
if (new_lr) {
clipper.add_ring(*new_lr, polygon_type_subject);
if (!new_lr.empty()) {
clipper.add_ring(new_lr, polygon_type_subject);
}
}
}

View File

@ -15,6 +15,12 @@
#include <mapbox/geometry/wagyu/topology_correction.hpp>
#include <mapbox/geometry/wagyu/vatti.hpp>
#define WAGYU_MAJOR_VERSION 0
#define WAGYU_MINOR_VERSION 3
#define WAGYU_PATCH_VERSION 0
#define WAGYU_VERSION (WAGYU_MAJOR_VERSION * 100000) + (WAGYU_MINOR_VERSION * 100) + (WAGYU_PATCH_VERSION)
namespace mapbox {
namespace geometry {
namespace wagyu {

View File

@ -11,10 +11,12 @@
#include <string>
#include <set>
#include <map>
#include "main.hpp"
#include "pool.hpp"
#include <sys/stat.h>
#include "mvt.hpp"
#include "mbtiles.hpp"
#include "geometry.hpp"
#include "text.hpp"
#include "milo/dtoa_milo.h"
#include "write_json.hpp"
sqlite3 *mbtiles_open(char *dbname, char **argv, int forcetable) {
sqlite3 *outdb;
@ -86,43 +88,6 @@ void mbtiles_write_tile(sqlite3 *outdb, int z, int tx, int ty, const char *data,
}
}
static void quote(std::string *buf, const char *s) {
char tmp[strlen(s) * 8 + 1];
char *out = tmp;
for (; *s != '\0'; s++) {
unsigned char ch = (unsigned char) *s;
if (ch == '\\' || ch == '\"') {
*out++ = '\\';
*out++ = ch;
} else if (ch < ' ') {
sprintf(out, "\\u%04x", ch);
out = out + strlen(out);
} else {
*out++ = ch;
}
}
*out = '\0';
buf->append(tmp, strlen(tmp));
}
void aprintf(std::string *buf, const char *format, ...) {
va_list ap;
char *tmp;
va_start(ap, format);
if (vasprintf(&tmp, format, ap) < 0) {
fprintf(stderr, "memory allocation failure\n");
exit(EXIT_FAILURE);
}
va_end(ap);
buf->append(tmp, strlen(tmp));
free(tmp);
}
bool type_and_string::operator<(const type_and_string &o) const {
if (string < o.string) {
return true;
@ -133,11 +98,189 @@ bool type_and_string::operator<(const type_and_string &o) const {
return false;
}
void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int maxzoom, double minlat, double minlon, double maxlat, double maxlon, double midlat, double midlon, int forcetable, const char *attribution, std::map<std::string, layermap_entry> const &layermap) {
bool type_and_string::operator!=(const type_and_string &o) const {
if (type != o.type) {
return true;
}
if (string != o.string) {
return true;
}
return false;
}
void tilestats(std::map<std::string, layermap_entry> const &layermap1, size_t elements, json_writer &state) {
// Consolidate layers/attributes whose names are truncated
std::vector<std::map<std::string, layermap_entry>> lmv;
lmv.push_back(layermap1);
std::map<std::string, layermap_entry> layermap = merge_layermaps(lmv, true);
state.json_write_hash();
state.nospace = true;
state.json_write_string("layerCount");
state.json_write_unsigned(layermap.size());
state.nospace = true;
state.json_write_string("layers");
state.json_write_array();
bool first = true;
for (auto layer : layermap) {
first = false;
state.nospace = true;
state.json_write_hash();
state.nospace = true;
state.json_write_string("layer");
state.json_write_string(layer.first);
state.nospace = true;
state.json_write_string("count");
state.json_write_unsigned(layer.second.points + layer.second.lines + layer.second.polygons);
std::string geomtype = "Polygon";
if (layer.second.points >= layer.second.lines && layer.second.points >= layer.second.polygons) {
geomtype = "Point";
} else if (layer.second.lines >= layer.second.polygons && layer.second.lines >= layer.second.points) {
geomtype = "LineString";
}
state.nospace = true;
state.json_write_string("geometry");
state.json_write_string(geomtype);
size_t attrib_count = layer.second.file_keys.size();
if (attrib_count > 1000) {
attrib_count = 1000;
}
state.nospace = true;
state.json_write_string("attributeCount");
state.json_write_unsigned(attrib_count);
state.nospace = true;
state.json_write_string("attributes");
state.nospace = true;
state.json_write_array();
size_t attrs = 0;
for (auto attribute : layer.second.file_keys) {
if (attrs == elements) {
break;
}
attrs++;
state.nospace = true;
state.json_write_hash();
state.nospace = true;
state.json_write_string("attribute");
state.json_write_string(attribute.first);
size_t val_count = attribute.second.sample_values.size();
if (val_count > 1000) {
val_count = 1000;
}
state.nospace = true;
state.json_write_string("count");
state.json_write_unsigned(val_count);
int type = 0;
for (auto s : attribute.second.sample_values) {
type |= (1 << s.type);
}
std::string type_str;
// No "null" because null attributes are dropped
if (type == (1 << mvt_double)) {
type_str = "number";
} else if (type == (1 << mvt_bool)) {
type_str = "boolean";
} else if (type == (1 << mvt_string)) {
type_str = "string";
} else {
type_str = "mixed";
}
state.nospace = true;
state.json_write_string("type");
state.json_write_string(type_str);
state.nospace = true;
state.json_write_string("values");
state.json_write_array();
size_t vals = 0;
for (auto value : attribute.second.sample_values) {
if (vals == elements) {
break;
}
state.nospace = true;
if (value.type == mvt_double || value.type == mvt_bool) {
vals++;
state.json_write_stringified(value.string);
} else {
std::string trunc = truncate16(value.string, 256);
if (trunc.size() == value.string.size()) {
vals++;
state.json_write_string(value.string);
}
}
}
state.nospace = true;
state.json_end_array();
if ((type & (1 << mvt_double)) != 0) {
state.nospace = true;
state.json_write_string("min");
state.json_write_number(attribute.second.min);
state.nospace = true;
state.json_write_string("max");
state.json_write_number(attribute.second.max);
}
state.nospace = true;
state.json_end_hash();
}
state.nospace = true;
state.json_end_array();
state.nospace = true;
state.json_end_hash();
}
state.nospace = true;
state.json_end_array();
state.nospace = true;
state.json_end_hash();
}
void mbtiles_write_metadata(sqlite3 *outdb, const char *outdir, const char *fname, int minzoom, int maxzoom, double minlat, double minlon, double maxlat, double maxlon, double midlat, double midlon, int forcetable, const char *attribution, std::map<std::string, layermap_entry> const &layermap, bool vector, const char *description, bool do_tilestats, std::map<std::string, std::string> const &attribute_descriptions) {
char *sql, *err;
sqlite3 *db = outdb;
if (outdb == NULL) {
if (sqlite3_open("", &db) != SQLITE_OK) {
fprintf(stderr, "Temporary db: %s\n", sqlite3_errmsg(db));
exit(EXIT_FAILURE);
}
if (sqlite3_exec(db, "CREATE TABLE metadata (name text, value text);", NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "Create metadata table: %s\n", err);
exit(EXIT_FAILURE);
}
}
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('name', %Q);", fname);
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set name in metadata: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -145,8 +288,8 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
}
sqlite3_free(sql);
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('description', %Q);", fname);
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('description', %Q);", description != NULL ? description : fname);
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set description in metadata: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -155,7 +298,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
sqlite3_free(sql);
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('version', %d);", 2);
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set version : %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -164,7 +307,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
sqlite3_free(sql);
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('minzoom', %d);", minzoom);
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set minzoom: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -173,7 +316,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
sqlite3_free(sql);
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('maxzoom', %d);", maxzoom);
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set maxzoom: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -182,7 +325,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
sqlite3_free(sql);
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('center', '%f,%f,%d');", midlon, midlat, maxzoom);
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set center: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -191,7 +334,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
sqlite3_free(sql);
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('bounds', '%f,%f,%f,%f');", minlon, minlat, maxlon, maxlat);
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set bounds: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -200,7 +343,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
sqlite3_free(sql);
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('type', %Q);", "overlay");
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set type: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -210,7 +353,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
if (attribution != NULL) {
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('attribution', %Q);", attribution);
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set type: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -219,8 +362,8 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
sqlite3_free(sql);
}
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('format', %Q);", "pbf");
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('format', %Q);", vector ? "pbf" : "png");
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set format: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
@ -228,93 +371,230 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
}
sqlite3_free(sql);
std::string buf("{");
aprintf(&buf, "\"vector_layers\": [ ");
if (vector) {
size_t elements = 100;
std::string buf;
std::vector<std::string> lnames;
for (auto ai = layermap.begin(); ai != layermap.end(); ++ai) {
lnames.push_back(ai->first);
}
{
json_writer state(&buf);
for (size_t i = 0; i < lnames.size(); i++) {
if (i != 0) {
aprintf(&buf, ", ");
}
state.json_write_hash();
state.nospace = true;
auto fk = layermap.find(lnames[i]);
aprintf(&buf, "{ \"id\": \"");
quote(&buf, lnames[i].c_str());
aprintf(&buf, "\", \"description\": \"\", \"minzoom\": %d, \"maxzoom\": %d, \"fields\": {", fk->second.minzoom, fk->second.maxzoom);
state.json_write_string("vector_layers");
state.json_write_array();
std::set<type_and_string>::iterator j;
bool first = true;
for (j = fk->second.file_keys.begin(); j != fk->second.file_keys.end(); ++j) {
if (first) {
first = false;
} else {
aprintf(&buf, ", ");
std::vector<std::string> lnames;
for (auto ai = layermap.begin(); ai != layermap.end(); ++ai) {
lnames.push_back(ai->first);
}
aprintf(&buf, "\"");
quote(&buf, j->string.c_str());
for (size_t i = 0; i < lnames.size(); i++) {
auto fk = layermap.find(lnames[i]);
state.json_write_hash();
if (j->type == VT_NUMBER) {
aprintf(&buf, "\": \"Number\"");
} else if (j->type == VT_BOOLEAN) {
aprintf(&buf, "\": \"Boolean\"");
} else {
aprintf(&buf, "\": \"String\"");
state.json_write_string("id");
state.json_write_string(lnames[i]);
state.json_write_string("description");
state.json_write_string(fk->second.description);
state.json_write_string("minzoom");
state.json_write_signed(fk->second.minzoom);
state.json_write_string("maxzoom");
state.json_write_signed(fk->second.maxzoom);
state.json_write_string("fields");
state.json_write_hash();
state.nospace = true;
bool first = true;
for (auto j = fk->second.file_keys.begin(); j != fk->second.file_keys.end(); ++j) {
if (first) {
first = false;
}
state.json_write_string(j->first);
auto f = attribute_descriptions.find(j->first);
if (f == attribute_descriptions.end()) {
int type = 0;
for (auto s : j->second.sample_values) {
type |= (1 << s.type);
}
if (type == (1 << mvt_double)) {
state.json_write_string("Number");
} else if (type == (1 << mvt_bool)) {
state.json_write_string("Boolean");
} else if (type == (1 << mvt_string)) {
state.json_write_string("String");
} else {
state.json_write_string("Mixed");
}
} else {
state.json_write_string(f->second);
}
}
state.nospace = true;
state.json_end_hash();
state.json_end_hash();
}
state.json_end_array();
if (do_tilestats && elements > 0) {
state.nospace = true;
state.json_write_string("tilestats");
tilestats(layermap, elements, state);
}
state.nospace = true;
state.json_end_hash();
}
aprintf(&buf, "} }");
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('json', %Q);", buf.c_str());
if (sqlite3_exec(db, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set json: %s\n", err);
if (!forcetable) {
exit(EXIT_FAILURE);
}
}
sqlite3_free(sql);
}
aprintf(&buf, " ] }");
if (outdir != NULL) {
std::string metadata = std::string(outdir) + "/metadata.json";
sql = sqlite3_mprintf("INSERT INTO metadata (name, value) VALUES ('json', %Q);", buf.c_str());
if (sqlite3_exec(outdb, sql, NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "set json: %s\n", err);
if (!forcetable) {
struct stat st;
if (stat(metadata.c_str(), &st) == 0) {
// Leave existing metadata in place with --allow-existing
} else {
FILE *fp = fopen(metadata.c_str(), "w");
if (fp == NULL) {
perror(metadata.c_str());
exit(EXIT_FAILURE);
}
json_writer state(fp);
state.json_write_hash();
state.json_write_newline();
sqlite3_stmt *stmt;
bool first = true;
if (sqlite3_prepare_v2(db, "SELECT name, value from metadata;", -1, &stmt, NULL) == SQLITE_OK) {
while (sqlite3_step(stmt) == SQLITE_ROW) {
std::string key, value;
const char *k = (const char *) sqlite3_column_text(stmt, 0);
const char *v = (const char *) sqlite3_column_text(stmt, 1);
if (k == NULL || v == NULL) {
fprintf(stderr, "Corrupt mbtiles file: null metadata\n");
exit(EXIT_FAILURE);
}
state.json_comma_newline();
state.json_write_string(k);
state.json_write_string(v);
first = false;
}
sqlite3_finalize(stmt);
}
state.json_write_newline();
state.json_end_hash();
state.json_write_newline();
fclose(fp);
}
}
if (outdb == NULL) {
if (sqlite3_close(db) != SQLITE_OK) {
fprintf(stderr, "Could not close temp database: %s\n", sqlite3_errmsg(db));
exit(EXIT_FAILURE);
}
}
sqlite3_free(sql);
}
void mbtiles_close(sqlite3 *outdb, char **argv) {
void mbtiles_close(sqlite3 *outdb, const char *pgm) {
char *err;
if (sqlite3_exec(outdb, "ANALYZE;", NULL, NULL, &err) != SQLITE_OK) {
fprintf(stderr, "%s: ANALYZE failed: %s\n", argv[0], err);
fprintf(stderr, "%s: ANALYZE failed: %s\n", pgm, err);
exit(EXIT_FAILURE);
}
if (sqlite3_close(outdb) != SQLITE_OK) {
fprintf(stderr, "%s: could not close database: %s\n", argv[0], sqlite3_errmsg(outdb));
fprintf(stderr, "%s: could not close database: %s\n", pgm, sqlite3_errmsg(outdb));
exit(EXIT_FAILURE);
}
}
std::map<std::string, layermap_entry> merge_layermaps(std::vector<std::map<std::string, layermap_entry> > const &maps) {
std::map<std::string, layermap_entry> merge_layermaps(std::vector<std::map<std::string, layermap_entry>> const &maps) {
return merge_layermaps(maps, false);
}
std::map<std::string, layermap_entry> merge_layermaps(std::vector<std::map<std::string, layermap_entry>> const &maps, bool trunc) {
std::map<std::string, layermap_entry> out;
for (size_t i = 0; i < maps.size(); i++) {
for (auto map = maps[i].begin(); map != maps[i].end(); ++map) {
if (out.count(map->first) == 0) {
out.insert(std::pair<std::string, layermap_entry>(map->first, layermap_entry(out.size())));
auto out_entry = out.find(map->first);
out_entry->second.minzoom = map->second.minzoom;
out_entry->second.maxzoom = map->second.maxzoom;
if (map->second.points + map->second.lines + map->second.polygons + map->second.retain == 0) {
continue;
}
auto out_entry = out.find(map->first);
std::string layername = map->first;
if (trunc) {
layername = truncate16(layername, 256);
}
if (out.count(layername) == 0) {
out.insert(std::pair<std::string, layermap_entry>(layername, layermap_entry(out.size())));
auto out_entry = out.find(layername);
out_entry->second.minzoom = map->second.minzoom;
out_entry->second.maxzoom = map->second.maxzoom;
out_entry->second.description = map->second.description;
}
auto out_entry = out.find(layername);
if (out_entry == out.end()) {
fprintf(stderr, "Internal error merging layers\n");
exit(EXIT_FAILURE);
}
for (auto fk = map->second.file_keys.begin(); fk != map->second.file_keys.end(); ++fk) {
out_entry->second.file_keys.insert(*fk);
std::string attribname = fk->first;
if (trunc) {
attribname = truncate16(attribname, 256);
}
auto fk2 = out_entry->second.file_keys.find(attribname);
if (fk2 == out_entry->second.file_keys.end()) {
out_entry->second.file_keys.insert(std::pair<std::string, type_and_string_stats>(attribname, fk->second));
} else {
for (auto val : fk->second.sample_values) {
auto pt = std::lower_bound(fk2->second.sample_values.begin(), fk2->second.sample_values.end(), val);
if (pt == fk2->second.sample_values.end() || *pt != val) { // not found
fk2->second.sample_values.insert(pt, val);
if (fk2->second.sample_values.size() > 1000) {
fk2->second.sample_values.pop_back();
}
}
}
fk2->second.type |= fk->second.type;
if (fk->second.min < fk2->second.min) {
fk2->second.min = fk->second.min;
}
if (fk->second.max > fk2->second.max) {
fk2->second.max = fk->second.max;
}
}
}
if (map->second.minzoom < out_entry->second.minzoom) {
@ -323,8 +603,51 @@ std::map<std::string, layermap_entry> merge_layermaps(std::vector<std::map<std::
if (map->second.maxzoom > out_entry->second.maxzoom) {
out_entry->second.maxzoom = map->second.maxzoom;
}
out_entry->second.points += map->second.points;
out_entry->second.lines += map->second.lines;
out_entry->second.polygons += map->second.polygons;
}
}
return out;
}
void add_to_file_keys(std::map<std::string, type_and_string_stats> &file_keys, std::string const &attrib, type_and_string const &val) {
if (val.type == mvt_null) {
return;
}
auto fka = file_keys.find(attrib);
if (fka == file_keys.end()) {
file_keys.insert(std::pair<std::string, type_and_string_stats>(attrib, type_and_string_stats()));
fka = file_keys.find(attrib);
}
if (fka == file_keys.end()) {
fprintf(stderr, "Can't happen (tilestats)\n");
exit(EXIT_FAILURE);
}
if (val.type == mvt_double) {
double d = atof(val.string.c_str());
if (d < fka->second.min) {
fka->second.min = d;
}
if (d > fka->second.max) {
fka->second.max = d;
}
}
auto pt = std::lower_bound(fka->second.sample_values.begin(), fka->second.sample_values.end(), val);
if (pt == fka->second.sample_values.end() || *pt != val) { // not found
fka->second.sample_values.insert(pt, val);
if (fka->second.sample_values.size() > 1000) {
fka->second.sample_values.pop_back();
}
}
fka->second.type |= (1 << val.type);
}

View File

@ -1,15 +1,36 @@
#ifndef MBTILES_HPP
#define MBTILES_HPP
#include <math.h>
#include <map>
#include "mvt.hpp"
struct type_and_string {
int type;
std::string string;
int type = 0;
std::string string = "";
bool operator<(const type_and_string &o) const;
bool operator!=(const type_and_string &o) const;
};
struct type_and_string_stats {
std::vector<type_and_string> sample_values = std::vector<type_and_string>(); // sorted
double min = INFINITY;
double max = -INFINITY;
int type = 0;
};
struct layermap_entry {
size_t id;
std::set<type_and_string> file_keys;
int minzoom;
int maxzoom;
size_t id = 0;
std::map<std::string, type_and_string_stats> file_keys{};
int minzoom = 0;
int maxzoom = 0;
std::string description = "";
size_t points = 0;
size_t lines = 0;
size_t polygons = 0;
size_t retain = 0; // keep for tilestats, even if no features directly here
layermap_entry(size_t _id) {
id = _id;
@ -20,10 +41,13 @@ sqlite3 *mbtiles_open(char *dbname, char **argv, int forcetable);
void mbtiles_write_tile(sqlite3 *outdb, int z, int tx, int ty, const char *data, int size);
void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int maxzoom, double minlat, double minlon, double maxlat, double maxlon, double midlat, double midlon, int forcetable, const char *attribution, std::map<std::string, layermap_entry> const &layermap);
void mbtiles_write_metadata(sqlite3 *outdb, const char *outdir, const char *fname, int minzoom, int maxzoom, double minlat, double minlon, double maxlat, double maxlon, double midlat, double midlon, int forcetable, const char *attribution, std::map<std::string, layermap_entry> const &layermap, bool vector, const char *description, bool do_tilestats, std::map<std::string, std::string> const &attribute_descriptions);
void mbtiles_close(sqlite3 *outdb, char **argv);
void aprintf(std::string *buf, const char *format, ...);
void mbtiles_close(sqlite3 *outdb, const char *pgm);
std::map<std::string, layermap_entry> merge_layermaps(std::vector<std::map<std::string, layermap_entry> > const &maps);
std::map<std::string, layermap_entry> merge_layermaps(std::vector<std::map<std::string, layermap_entry> > const &maps, bool trunc);
void add_to_file_keys(std::map<std::string, type_and_string_stats> &file_keys, std::string const &layername, type_and_string const &val);
#endif

View File

@ -53,7 +53,7 @@ int memfile_write(struct memfile *file, void *s, long long len) {
return -1;
}
file->len += INCREMENT;
file->len += (len + INCREMENT + 1) / INCREMENT * INCREMENT;
if (ftruncate(file->fd, file->len) != 0) {
return -1;

View File

@ -1,11 +1,22 @@
#ifndef MEMFILE_HPP
#define MEMFILE_HPP
#include <atomic>
struct memfile {
int fd;
char *map;
long long len;
long long off;
long long tree;
int fd = 0;
char *map = NULL;
std::atomic<long long> len;
long long off = 0;
unsigned long tree = 0;
memfile()
: len(0) {
}
};
struct memfile *memfile_open(int fd);
int memfile_close(struct memfile *file);
int memfile_write(struct memfile *file, void *s, long long len);
#endif

19
milo/LICENSE.txt Normal file
View File

@ -0,0 +1,19 @@
Copyright (C) 2014 Milo Yip
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

415
milo/dtoa_milo.h Normal file
View File

@ -0,0 +1,415 @@
#pragma once
#include <assert.h>
#include <math.h>
#include <cmath>
#if defined(_MSC_VER)
#include "msinttypes/stdint.h"
#include <intrin.h>
#else
#include <stdint.h>
#endif
namespace milo {
#define UINT64_C2(h, l) ((static_cast<uint64_t>(h) << 32) | static_cast<uint64_t>(l))
struct DiyFp {
DiyFp() {}
DiyFp(uint64_t ff, int ee) : f(ff), e(ee) {}
DiyFp(double d) {
union {
double d;
uint64_t u64;
} u = { d };
int biased_e = (u.u64 & kDpExponentMask) >> kDpSignificandSize;
uint64_t significand = (u.u64 & kDpSignificandMask);
if (biased_e != 0) {
f = significand + kDpHiddenBit;
e = biased_e - kDpExponentBias;
}
else {
f = significand;
e = kDpMinExponent + 1;
}
}
DiyFp operator-(const DiyFp& rhs) const {
assert(e == rhs.e);
assert(f >= rhs.f);
return DiyFp(f - rhs.f, e);
}
DiyFp operator*(const DiyFp& rhs) const {
#if defined(_MSC_VER) && defined(_M_AMD64)
uint64_t h;
uint64_t l = _umul128(f, rhs.f, &h);
if (l & (uint64_t(1) << 63)) // rounding
h++;
return DiyFp(h, e + rhs.e + 64);
#elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(__x86_64__)
unsigned __int128 p = static_cast<unsigned __int128>(f) * static_cast<unsigned __int128>(rhs.f);
uint64_t h = p >> 64;
uint64_t l = static_cast<uint64_t>(p);
if (l & (uint64_t(1) << 63)) // rounding
h++;
return DiyFp(h, e + rhs.e + 64);
#else
const uint64_t M32 = 0xFFFFFFFF;
const uint64_t a = f >> 32;
const uint64_t b = f & M32;
const uint64_t c = rhs.f >> 32;
const uint64_t d = rhs.f & M32;
const uint64_t ac = a * c;
const uint64_t bc = b * c;
const uint64_t ad = a * d;
const uint64_t bd = b * d;
uint64_t tmp = (bd >> 32) + (ad & M32) + (bc & M32);
tmp += 1U << 31; /// mult_round
return DiyFp(ac + (ad >> 32) + (bc >> 32) + (tmp >> 32), e + rhs.e + 64);
#endif
}
DiyFp Normalize() const {
#if defined(_MSC_VER) && defined(_M_AMD64)
unsigned long index;
_BitScanReverse64(&index, f);
return DiyFp(f << (63 - index), e - (63 - index));
#elif defined(__GNUC__)
int s = __builtin_clzll(f);
return DiyFp(f << s, e - s);
#else
DiyFp res = *this;
while (!(res.f & kDpHiddenBit)) {
res.f <<= 1;
res.e--;
}
res.f <<= (kDiySignificandSize - kDpSignificandSize - 1);
res.e = res.e - (kDiySignificandSize - kDpSignificandSize - 1);
return res;
#endif
}
DiyFp NormalizeBoundary() const {
#if defined(_MSC_VER) && defined(_M_AMD64)
unsigned long index;
_BitScanReverse64(&index, f);
return DiyFp (f << (63 - index), e - (63 - index));
#else
DiyFp res = *this;
while (!(res.f & (kDpHiddenBit << 1))) {
res.f <<= 1;
res.e--;
}
res.f <<= (kDiySignificandSize - kDpSignificandSize - 2);
res.e = res.e - (kDiySignificandSize - kDpSignificandSize - 2);
return res;
#endif
}
void NormalizedBoundaries(DiyFp* minus, DiyFp* plus) const {
DiyFp pl = DiyFp((f << 1) + 1, e - 1).NormalizeBoundary();
DiyFp mi = (f == kDpHiddenBit) ? DiyFp((f << 2) - 1, e - 2) : DiyFp((f << 1) - 1, e - 1);
mi.f <<= mi.e - pl.e;
mi.e = pl.e;
*plus = pl;
*minus = mi;
}
static const int kDiySignificandSize = 64;
static const int kDpSignificandSize = 52;
static const int kDpExponentBias = 0x3FF + kDpSignificandSize;
static const int kDpMinExponent = -kDpExponentBias;
static const uint64_t kDpExponentMask = UINT64_C2(0x7FF00000, 0x00000000);
static const uint64_t kDpSignificandMask = UINT64_C2(0x000FFFFF, 0xFFFFFFFF);
static const uint64_t kDpHiddenBit = UINT64_C2(0x00100000, 0x00000000);
uint64_t f;
int e;
};
inline DiyFp GetCachedPower(int e, int* K) {
// 10^-348, 10^-340, ..., 10^340
static const uint64_t kCachedPowers_F[] = {
UINT64_C2(0xfa8fd5a0, 0x081c0288), UINT64_C2(0xbaaee17f, 0xa23ebf76),
UINT64_C2(0x8b16fb20, 0x3055ac76), UINT64_C2(0xcf42894a, 0x5dce35ea),
UINT64_C2(0x9a6bb0aa, 0x55653b2d), UINT64_C2(0xe61acf03, 0x3d1a45df),
UINT64_C2(0xab70fe17, 0xc79ac6ca), UINT64_C2(0xff77b1fc, 0xbebcdc4f),
UINT64_C2(0xbe5691ef, 0x416bd60c), UINT64_C2(0x8dd01fad, 0x907ffc3c),
UINT64_C2(0xd3515c28, 0x31559a83), UINT64_C2(0x9d71ac8f, 0xada6c9b5),
UINT64_C2(0xea9c2277, 0x23ee8bcb), UINT64_C2(0xaecc4991, 0x4078536d),
UINT64_C2(0x823c1279, 0x5db6ce57), UINT64_C2(0xc2109436, 0x4dfb5637),
UINT64_C2(0x9096ea6f, 0x3848984f), UINT64_C2(0xd77485cb, 0x25823ac7),
UINT64_C2(0xa086cfcd, 0x97bf97f4), UINT64_C2(0xef340a98, 0x172aace5),
UINT64_C2(0xb23867fb, 0x2a35b28e), UINT64_C2(0x84c8d4df, 0xd2c63f3b),
UINT64_C2(0xc5dd4427, 0x1ad3cdba), UINT64_C2(0x936b9fce, 0xbb25c996),
UINT64_C2(0xdbac6c24, 0x7d62a584), UINT64_C2(0xa3ab6658, 0x0d5fdaf6),
UINT64_C2(0xf3e2f893, 0xdec3f126), UINT64_C2(0xb5b5ada8, 0xaaff80b8),
UINT64_C2(0x87625f05, 0x6c7c4a8b), UINT64_C2(0xc9bcff60, 0x34c13053),
UINT64_C2(0x964e858c, 0x91ba2655), UINT64_C2(0xdff97724, 0x70297ebd),
UINT64_C2(0xa6dfbd9f, 0xb8e5b88f), UINT64_C2(0xf8a95fcf, 0x88747d94),
UINT64_C2(0xb9447093, 0x8fa89bcf), UINT64_C2(0x8a08f0f8, 0xbf0f156b),
UINT64_C2(0xcdb02555, 0x653131b6), UINT64_C2(0x993fe2c6, 0xd07b7fac),
UINT64_C2(0xe45c10c4, 0x2a2b3b06), UINT64_C2(0xaa242499, 0x697392d3),
UINT64_C2(0xfd87b5f2, 0x8300ca0e), UINT64_C2(0xbce50864, 0x92111aeb),
UINT64_C2(0x8cbccc09, 0x6f5088cc), UINT64_C2(0xd1b71758, 0xe219652c),
UINT64_C2(0x9c400000, 0x00000000), UINT64_C2(0xe8d4a510, 0x00000000),
UINT64_C2(0xad78ebc5, 0xac620000), UINT64_C2(0x813f3978, 0xf8940984),
UINT64_C2(0xc097ce7b, 0xc90715b3), UINT64_C2(0x8f7e32ce, 0x7bea5c70),
UINT64_C2(0xd5d238a4, 0xabe98068), UINT64_C2(0x9f4f2726, 0x179a2245),
UINT64_C2(0xed63a231, 0xd4c4fb27), UINT64_C2(0xb0de6538, 0x8cc8ada8),
UINT64_C2(0x83c7088e, 0x1aab65db), UINT64_C2(0xc45d1df9, 0x42711d9a),
UINT64_C2(0x924d692c, 0xa61be758), UINT64_C2(0xda01ee64, 0x1a708dea),
UINT64_C2(0xa26da399, 0x9aef774a), UINT64_C2(0xf209787b, 0xb47d6b85),
UINT64_C2(0xb454e4a1, 0x79dd1877), UINT64_C2(0x865b8692, 0x5b9bc5c2),
UINT64_C2(0xc83553c5, 0xc8965d3d), UINT64_C2(0x952ab45c, 0xfa97a0b3),
UINT64_C2(0xde469fbd, 0x99a05fe3), UINT64_C2(0xa59bc234, 0xdb398c25),
UINT64_C2(0xf6c69a72, 0xa3989f5c), UINT64_C2(0xb7dcbf53, 0x54e9bece),
UINT64_C2(0x88fcf317, 0xf22241e2), UINT64_C2(0xcc20ce9b, 0xd35c78a5),
UINT64_C2(0x98165af3, 0x7b2153df), UINT64_C2(0xe2a0b5dc, 0x971f303a),
UINT64_C2(0xa8d9d153, 0x5ce3b396), UINT64_C2(0xfb9b7cd9, 0xa4a7443c),
UINT64_C2(0xbb764c4c, 0xa7a44410), UINT64_C2(0x8bab8eef, 0xb6409c1a),
UINT64_C2(0xd01fef10, 0xa657842c), UINT64_C2(0x9b10a4e5, 0xe9913129),
UINT64_C2(0xe7109bfb, 0xa19c0c9d), UINT64_C2(0xac2820d9, 0x623bf429),
UINT64_C2(0x80444b5e, 0x7aa7cf85), UINT64_C2(0xbf21e440, 0x03acdd2d),
UINT64_C2(0x8e679c2f, 0x5e44ff8f), UINT64_C2(0xd433179d, 0x9c8cb841),
UINT64_C2(0x9e19db92, 0xb4e31ba9), UINT64_C2(0xeb96bf6e, 0xbadf77d9),
UINT64_C2(0xaf87023b, 0x9bf0ee6b)
};
static const int16_t kCachedPowers_E[] = {
-1220, -1193, -1166, -1140, -1113, -1087, -1060, -1034, -1007, -980,
-954, -927, -901, -874, -847, -821, -794, -768, -741, -715,
-688, -661, -635, -608, -582, -555, -529, -502, -475, -449,
-422, -396, -369, -343, -316, -289, -263, -236, -210, -183,
-157, -130, -103, -77, -50, -24, 3, 30, 56, 83,
109, 136, 162, 189, 216, 242, 269, 295, 322, 348,
375, 402, 428, 455, 481, 508, 534, 561, 588, 614,
641, 667, 694, 720, 747, 774, 800, 827, 853, 880,
907, 933, 960, 986, 1013, 1039, 1066
};
//int k = static_cast<int>(ceil((-61 - e) * 0.30102999566398114)) + 374;
double dk = (-61 - e) * 0.30102999566398114 + 347; // dk must be positive, so can do ceiling in positive
int k = static_cast<int>(dk);
if (k != dk)
k++;
unsigned index = static_cast<unsigned>((k >> 3) + 1);
*K = -(-348 + static_cast<int>(index << 3)); // decimal exponent no need lookup table
assert(index < sizeof(kCachedPowers_F) / sizeof(kCachedPowers_F[0]));
return DiyFp(kCachedPowers_F[index], kCachedPowers_E[index]);
}
inline void GrisuRound(std::string &buffer, int len, uint64_t delta, uint64_t rest, uint64_t ten_kappa, uint64_t wp_w) {
while (rest < wp_w && delta - rest >= ten_kappa &&
(rest + ten_kappa < wp_w || /// closer
wp_w - rest > rest + ten_kappa - wp_w)) {
buffer[len - 1]--;
rest += ten_kappa;
}
}
inline unsigned CountDecimalDigit32(uint32_t n) {
// Simple pure C++ implementation was faster than __builtin_clz version in this situation.
if (n < 10) return 1;
if (n < 100) return 2;
if (n < 1000) return 3;
if (n < 10000) return 4;
if (n < 100000) return 5;
if (n < 1000000) return 6;
if (n < 10000000) return 7;
if (n < 100000000) return 8;
if (n < 1000000000) return 9;
return 10;
}
inline void DigitGen(const DiyFp& W, const DiyFp& Mp, uint64_t delta, std::string &buffer, int* len, int* K) {
static const uint32_t kPow10[] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000 };
const DiyFp one(uint64_t(1) << -Mp.e, Mp.e);
const DiyFp wp_w = Mp - W;
uint32_t p1 = static_cast<uint32_t>(Mp.f >> -one.e);
uint64_t p2 = Mp.f & (one.f - 1);
int kappa = static_cast<int>(CountDecimalDigit32(p1));
*len = 0;
while (kappa > 0) {
uint32_t d;
switch (kappa) {
case 10: d = p1 / 1000000000; p1 %= 1000000000; break;
case 9: d = p1 / 100000000; p1 %= 100000000; break;
case 8: d = p1 / 10000000; p1 %= 10000000; break;
case 7: d = p1 / 1000000; p1 %= 1000000; break;
case 6: d = p1 / 100000; p1 %= 100000; break;
case 5: d = p1 / 10000; p1 %= 10000; break;
case 4: d = p1 / 1000; p1 %= 1000; break;
case 3: d = p1 / 100; p1 %= 100; break;
case 2: d = p1 / 10; p1 %= 10; break;
case 1: d = p1; p1 = 0; break;
default:
#if defined(_MSC_VER)
__assume(0);
#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
__builtin_unreachable();
#else
d = 0;
#endif
}
if (d || *len) {
buffer.push_back('0' + static_cast<char>(d));
(*len)++;
}
kappa--;
uint64_t tmp = (static_cast<uint64_t>(p1) << -one.e) + p2;
if (tmp <= delta) {
*K += kappa;
GrisuRound(buffer, *len, delta, tmp, static_cast<uint64_t>(kPow10[kappa]) << -one.e, wp_w.f);
return;
}
}
// kappa = 0
for (;;) {
p2 *= 10;
delta *= 10;
char d = static_cast<char>(p2 >> -one.e);
if (d || *len) {
buffer.push_back('0' + d);
(*len)++;
}
p2 &= one.f - 1;
kappa--;
if (p2 < delta) {
*K += kappa;
int index = -static_cast<int>(kappa);
GrisuRound(buffer, *len, delta, p2, one.f, wp_w.f * (index < 9 ? kPow10[-static_cast<int>(kappa)] : 0));
return;
}
}
}
inline void Grisu2(double value, std::string &buffer, int* length, int* K) {
const DiyFp v(value);
DiyFp w_m, w_p;
v.NormalizedBoundaries(&w_m, &w_p);
const DiyFp c_mk = GetCachedPower(w_p.e, K);
const DiyFp W = v.Normalize() * c_mk;
DiyFp Wp = w_p * c_mk;
DiyFp Wm = w_m * c_mk;
Wm.f++;
Wp.f--;
DigitGen(W, Wp, Wp.f - Wm.f, buffer, length, K);
}
inline const char* GetDigitsLut() {
static const char cDigitsLut[200] = {
'0', '0', '0', '1', '0', '2', '0', '3', '0', '4', '0', '5', '0', '6', '0', '7', '0', '8', '0', '9',
'1', '0', '1', '1', '1', '2', '1', '3', '1', '4', '1', '5', '1', '6', '1', '7', '1', '8', '1', '9',
'2', '0', '2', '1', '2', '2', '2', '3', '2', '4', '2', '5', '2', '6', '2', '7', '2', '8', '2', '9',
'3', '0', '3', '1', '3', '2', '3', '3', '3', '4', '3', '5', '3', '6', '3', '7', '3', '8', '3', '9',
'4', '0', '4', '1', '4', '2', '4', '3', '4', '4', '4', '5', '4', '6', '4', '7', '4', '8', '4', '9',
'5', '0', '5', '1', '5', '2', '5', '3', '5', '4', '5', '5', '5', '6', '5', '7', '5', '8', '5', '9',
'6', '0', '6', '1', '6', '2', '6', '3', '6', '4', '6', '5', '6', '6', '6', '7', '6', '8', '6', '9',
'7', '0', '7', '1', '7', '2', '7', '3', '7', '4', '7', '5', '7', '6', '7', '7', '7', '8', '7', '9',
'8', '0', '8', '1', '8', '2', '8', '3', '8', '4', '8', '5', '8', '6', '8', '7', '8', '8', '8', '9',
'9', '0', '9', '1', '9', '2', '9', '3', '9', '4', '9', '5', '9', '6', '9', '7', '9', '8', '9', '9'
};
return cDigitsLut;
}
inline void WriteExponent(int K, std::string &buffer) {
if (K < 0) {
buffer.push_back('-');
K = -K;
} else {
buffer.push_back('+');
}
if (K >= 100) {
buffer.push_back('0' + static_cast<char>(K / 100));
K %= 100;
const char* d = GetDigitsLut() + K * 2;
buffer.push_back(d[0]);
buffer.push_back(d[1]);
}
else if (K >= 10) {
const char* d = GetDigitsLut() + K * 2;
buffer.push_back(d[0]);
buffer.push_back(d[1]);
}
else
buffer.push_back('0' + static_cast<char>(K));
}
inline void Prettify(std::string &buffer, int length, int k) {
const int kk = length + k; // 10^(kk-1) <= v < 10^kk
if (length <= kk && kk <= 21) {
// 1234e7 -> 12340000000
for (int i = length; i < kk; i++)
buffer.push_back('0');
}
else if (0 < kk && kk <= 21) {
// 1234e-2 -> 12.34
buffer.insert(buffer.begin() + kk, '.');
}
else if (-6 < kk && kk <= 0) {
// 1234e-6 -> 0.001234
const int offset = 2 - kk;
buffer.insert(buffer.begin(), '0');
buffer.insert(buffer.begin() + 1, '.');
for (int i = 2; i < offset; i++)
buffer.insert(buffer.begin() + 2, '0');
}
else if (length == 1) {
// 1e30
buffer.push_back('e');
WriteExponent(kk - 1, buffer);
}
else {
// 1234e30 -> 1.234e33
buffer.insert(buffer.begin() + 1, '.');
buffer.push_back('e');
WriteExponent(kk - 1, buffer);
}
}
inline std::string dtoa_milo(double value) {
std::string buffer;
if (std::isnan(value)) {
return "nan";
}
if (std::isinf(value)) {
if (value < 0) {
return "-inf";
} else {
return "inf";
}
}
if (value == 0) {
buffer = "0";
}
else {
bool minus = false;
if (value < 0) {
minus = true;
value = -value;
}
int length, K;
Grisu2(value, buffer, &length, &K);
Prettify(buffer, length, K);
if (minus) {
buffer.insert(buffer.begin(), '-');
}
}
return buffer;
}
}

191
mvt.cpp
View File

@ -4,10 +4,15 @@
#include <vector>
#include <map>
#include <zlib.h>
#include <errno.h>
#include <limits.h>
#include <ctype.h>
#include "mvt.hpp"
#include "geometry.hpp"
#include "protozero/varint.hpp"
#include "protozero/pbf_reader.hpp"
#include "protozero/pbf_writer.hpp"
#include "milo/dtoa_milo.h"
mvt_geometry::mvt_geometry(int nop, long long nx, long long ny) {
this->op = nop;
@ -79,7 +84,7 @@ int compress(std::string const &input, std::string &output) {
return 0;
}
bool mvt_tile::decode(std::string &message) {
bool mvt_tile::decode(std::string &message, bool &was_compressed) {
layers.clear();
std::string src;
@ -87,8 +92,10 @@ bool mvt_tile::decode(std::string &message) {
std::string uncompressed;
decompress(message, uncompressed);
src = uncompressed;
was_compressed = true;
} else {
src = message;
was_compressed = false;
}
protozero::pbf_reader reader(src);
@ -367,10 +374,7 @@ std::string mvt_tile::encode() {
writer.add_message(3, layer_string);
}
std::string compressed;
compress(data, compressed);
return compressed;
return data;
}
bool mvt_value::operator<(const mvt_value &o) const {
@ -392,6 +396,57 @@ bool mvt_value::operator<(const mvt_value &o) const {
return false;
}
static std::string quote(std::string const &s) {
std::string buf;
for (size_t i = 0; i < s.size(); i++) {
unsigned char ch = s[i];
if (ch == '\\' || ch == '\"') {
buf.push_back('\\');
buf.push_back(ch);
} else if (ch < ' ') {
char tmp[7];
sprintf(tmp, "\\u%04x", ch);
buf.append(std::string(tmp));
} else {
buf.push_back(ch);
}
}
return buf;
}
std::string mvt_value::toString() {
if (type == mvt_string) {
return quote(string_value);
} else if (type == mvt_int) {
return std::to_string(numeric_value.int_value);
} else if (type == mvt_double) {
double v = numeric_value.double_value;
if (v == (long long) v) {
return std::to_string((long long) v);
} else {
return milo::dtoa_milo(v);
}
} else if (type == mvt_float) {
double v = numeric_value.float_value;
if (v == (long long) v) {
return std::to_string((long long) v);
} else {
return milo::dtoa_milo(v);
}
} else if (type == mvt_sint) {
return std::to_string(numeric_value.sint_value);
} else if (type == mvt_uint) {
return std::to_string(numeric_value.uint_value);
} else if (type == mvt_bool) {
return numeric_value.bool_value ? "true" : "false";
} else {
return "unknown";
}
}
void mvt_layer::tag(mvt_feature &feature, std::string key, mvt_value value) {
size_t ko, vo;
@ -417,3 +472,129 @@ void mvt_layer::tag(mvt_feature &feature, std::string key, mvt_value value) {
feature.tags.push_back(ko);
feature.tags.push_back(vo);
}
bool is_integer(const char *s, long long *v) {
errno = 0;
char *endptr;
*v = strtoll(s, &endptr, 0);
if (*v == 0 && errno != 0) {
return 0;
}
if ((*v == LLONG_MIN || *v == LLONG_MAX) && (errno == ERANGE || errno == EINVAL)) {
return 0;
}
if (*endptr != '\0') {
// Special case: If it is an integer followed by .0000 or similar,
// it is still an integer
if (*endptr != '.') {
return 0;
}
endptr++;
for (; *endptr != '\0'; endptr++) {
if (*endptr != '0') {
return 0;
}
}
return 1;
}
return 1;
}
bool is_unsigned_integer(const char *s, unsigned long long *v) {
errno = 0;
char *endptr;
// Special check because MacOS stroull() returns 1
// for -18446744073709551615
while (isspace(*s)) {
s++;
}
if (*s == '-') {
return 0;
}
*v = strtoull(s, &endptr, 0);
if (*v == 0 && errno != 0) {
return 0;
}
if ((*v == ULLONG_MAX) && (errno == ERANGE || errno == EINVAL)) {
return 0;
}
if (*endptr != '\0') {
// Special case: If it is an integer followed by .0000 or similar,
// it is still an integer
if (*endptr != '.') {
return 0;
}
endptr++;
for (; *endptr != '\0'; endptr++) {
if (*endptr != '0') {
return 0;
}
}
return 1;
}
return 1;
}
mvt_value stringified_to_mvt_value(int type, const char *s) {
mvt_value tv;
if (type == mvt_double) {
long long v;
unsigned long long uv;
if (is_unsigned_integer(s, &uv)) {
if (uv <= LLONG_MAX) {
tv.type = mvt_int;
tv.numeric_value.int_value = uv;
} else {
tv.type = mvt_uint;
tv.numeric_value.uint_value = uv;
}
} else if (is_integer(s, &v)) {
tv.type = mvt_sint;
tv.numeric_value.sint_value = v;
} else {
errno = 0;
char *endptr;
float f = strtof(s, &endptr);
if (endptr == s || ((f == HUGE_VAL || f == HUGE_VALF || f == HUGE_VALL) && errno == ERANGE)) {
double d = strtod(s, &endptr);
if (endptr == s || ((d == HUGE_VAL || d == HUGE_VALF || d == HUGE_VALL) && errno == ERANGE)) {
fprintf(stderr, "Warning: numeric value %s could not be represented\n", s);
}
tv.type = mvt_double;
tv.numeric_value.double_value = d;
} else {
double d = atof(s);
if (f == d) {
tv.type = mvt_float;
tv.numeric_value.float_value = f;
} else {
// Conversion succeeded, but lost precision, so use double
tv.type = mvt_double;
tv.numeric_value.double_value = d;
}
}
}
} else if (type == mvt_bool) {
tv.type = mvt_bool;
tv.numeric_value.bool_value = (s[0] == 't');
} else if (type == mvt_null) {
tv.type = mvt_null;
} else {
tv.type = mvt_string;
tv.string_value = s;
}
return tv;
}

74
mvt.hpp
View File

@ -1,3 +1,12 @@
#ifndef MVT_HPP
#define MVT_HPP
#include <sqlite3.h>
#include <string>
#include <map>
#include <set>
#include <vector>
struct mvt_value;
struct mvt_layer;
@ -8,11 +17,23 @@ enum mvt_operation {
};
struct mvt_geometry {
int x;
int y;
int /* mvt_operation */ op;
long long x = 0;
long long y = 0;
int /* mvt_operation */ op = 0;
mvt_geometry(int op, long long x, long long y);
bool operator<(mvt_geometry const &s) const {
if (y < s.y || (y == s.y && x < s.x)) {
return true;
} else {
return false;
}
}
bool operator==(mvt_geometry const &s) const {
return y == s.y && x == s.x;
}
};
enum mvt_geometry_type {
@ -22,11 +43,12 @@ enum mvt_geometry_type {
};
struct mvt_feature {
std::vector<unsigned> tags;
std::vector<mvt_geometry> geometry;
int /* mvt_geometry_type */ type;
unsigned long long id;
bool has_id;
std::vector<unsigned> tags{};
std::vector<mvt_geometry> geometry{};
int /* mvt_geometry_type */ type = 0;
unsigned long long id = 0;
bool has_id = false;
bool dropped = false;
mvt_feature() {
has_id = false;
@ -41,7 +63,8 @@ enum mvt_value_type {
mvt_int,
mvt_uint,
mvt_sint,
mvt_bool
mvt_bool,
mvt_null,
};
struct mvt_value {
@ -57,32 +80,45 @@ struct mvt_value {
} numeric_value;
bool operator<(const mvt_value &o) const;
std::string toString();
mvt_value() {
this->type = mvt_double;
this->string_value = "";
this->numeric_value.double_value = 0;
}
};
struct mvt_layer {
int version;
std::string name;
std::vector<mvt_feature> features;
std::vector<std::string> keys;
std::vector<mvt_value> values;
int extent;
int version = 0;
std::string name = "";
std::vector<mvt_feature> features{};
std::vector<std::string> keys{};
std::vector<mvt_value> values{};
long long extent = 0;
// Add a key-value pair to a feature, using this layer's constant pool
void tag(mvt_feature &feature, std::string key, mvt_value value);
// For tracking the key-value constants already used in this layer
std::map<std::string, size_t> key_map;
std::map<mvt_value, size_t> value_map;
std::map<std::string, size_t> key_map{};
std::map<mvt_value, size_t> value_map{};
};
struct mvt_tile {
std::vector<mvt_layer> layers;
std::vector<mvt_layer> layers{};
std::string encode();
bool decode(std::string &message);
bool decode(std::string &message, bool &was_compressed);
};
bool is_compressed(std::string const &data);
int decompress(std::string const &input, std::string &output);
int compress(std::string const &input, std::string &output);
int dezig(unsigned n);
mvt_value stringified_to_mvt_value(int type, const char *s);
bool is_integer(const char *s, long long *v);
bool is_unsigned_integer(const char *s, unsigned long long *v);
#endif

View File

@ -1,8 +1,11 @@
#ifndef OPTIONS_HPP
#define OPTIONS_HPP
#define A_COALESCE ((int) 'c')
#define A_REVERSE ((int) 'r')
#define A_REORDER ((int) 'o')
#define A_LINE_DROP ((int) 'l')
#define A_DEBUG_POLYGON ((int) 'D')
#define A_DEBUG_POLYGON ((int) '@')
#define A_POLYGON_DROP ((int) 'p')
#define A_DETECT_SHARED_BORDERS ((int) 'b')
#define A_PREFER_RADIX_SORT ((int) 'R')
@ -12,7 +15,13 @@
#define A_DROP_DENSEST_AS_NEEDED ((int) 's')
#define A_DROP_FRACTION_AS_NEEDED ((int) 'd')
#define A_DROP_SMALLEST_AS_NEEDED ((int) 'n')
#define A_COALESCE_DENSEST_AS_NEEDED ((int) 'S')
#define A_COALESCE_SMALLEST_AS_NEEDED ((int) 'N')
#define A_COALESCE_FRACTION_AS_NEEDED ((int) 'D')
#define A_GRID_LOW_ZOOMS ((int) 'L')
#define A_DETECT_WRAPAROUND ((int) 'w')
#define A_EXTEND_ZOOMS ((int) 'e')
#define A_CLUSTER_DENSEST_AS_NEEDED ((int) 'C')
#define P_SIMPLIFY ((int) 's')
#define P_SIMPLIFY_LOW ((int) 'S')
@ -24,6 +33,10 @@
#define P_CLIPPING ((int) 'c')
#define P_DUPLICATION ((int) 'D')
#define P_TINY_POLYGON_REDUCTION ((int) 't')
#define P_TILE_COMPRESSION ((int) 'C')
#define P_TILE_STATS ((int) 'g')
extern int prevent[256];
extern int additional[256];
#endif

653
plugin.cpp Normal file
View File

@ -0,0 +1,653 @@
#ifdef __APPLE__
#define _DARWIN_UNLIMITED_STREAMS
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <pthread.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <cmath>
#include <sys/types.h>
#include <sys/wait.h>
#include <sqlite3.h>
#include <limits.h>
#include "main.hpp"
#include "mvt.hpp"
#include "mbtiles.hpp"
#include "projection.hpp"
#include "geometry.hpp"
#include "serial.hpp"
extern "C" {
#include "jsonpull/jsonpull.h"
}
#include "plugin.hpp"
#include "write_json.hpp"
#include "read_json.hpp"
struct writer_arg {
int write_to;
std::vector<mvt_layer> *layers;
unsigned z;
unsigned x;
unsigned y;
int extent;
};
void *run_writer(void *a) {
writer_arg *wa = (writer_arg *) a;
FILE *fp = fdopen(wa->write_to, "w");
if (fp == NULL) {
perror("fdopen (pipe writer)");
exit(EXIT_FAILURE);
}
json_writer state(fp);
for (size_t i = 0; i < wa->layers->size(); i++) {
layer_to_geojson((*(wa->layers))[i], wa->z, wa->x, wa->y, false, true, false, true, 0, 0, 0, true, state);
}
if (fclose(fp) != 0) {
if (errno == EPIPE) {
static bool warned = false;
if (!warned) {
fprintf(stderr, "Warning: broken pipe in postfilter\n");
warned = true;
}
} else {
perror("fclose output to filter");
exit(EXIT_FAILURE);
}
}
return NULL;
}
// XXX deduplicate
static std::vector<mvt_geometry> to_feature(drawvec &geom) {
std::vector<mvt_geometry> out;
for (size_t i = 0; i < geom.size(); i++) {
out.push_back(mvt_geometry(geom[i].op, geom[i].x, geom[i].y));
}
return out;
}
// Reads from the postfilter
std::vector<mvt_layer> parse_layers(int fd, int z, unsigned x, unsigned y, std::vector<std::map<std::string, layermap_entry>> *layermaps, size_t tiling_seg, std::vector<std::vector<std::string>> *layer_unmaps, int extent) {
std::map<std::string, mvt_layer> ret;
FILE *f = fdopen(fd, "r");
if (f == NULL) {
perror("fdopen filter output");
exit(EXIT_FAILURE);
}
json_pull *jp = json_begin_file(f);
while (1) {
json_object *j = json_read(jp);
if (j == NULL) {
if (jp->error != NULL) {
fprintf(stderr, "Filter output:%d: %s\n", jp->line, jp->error);
if (jp->root != NULL) {
json_context(jp->root);
}
exit(EXIT_FAILURE);
}
json_free(jp->root);
break;
}
json_object *type = json_hash_get(j, "type");
if (type == NULL || type->type != JSON_STRING) {
continue;
}
if (strcmp(type->string, "Feature") != 0) {
continue;
}
json_object *geometry = json_hash_get(j, "geometry");
if (geometry == NULL) {
fprintf(stderr, "Filter output:%d: filtered feature with no geometry\n", jp->line);
json_context(j);
json_free(j);
exit(EXIT_FAILURE);
}
json_object *properties = json_hash_get(j, "properties");
if (properties == NULL || (properties->type != JSON_HASH && properties->type != JSON_NULL)) {
fprintf(stderr, "Filter output:%d: feature without properties hash\n", jp->line);
json_context(j);
json_free(j);
exit(EXIT_FAILURE);
}
json_object *geometry_type = json_hash_get(geometry, "type");
if (geometry_type == NULL) {
fprintf(stderr, "Filter output:%d: null geometry (additional not reported)\n", jp->line);
json_context(j);
exit(EXIT_FAILURE);
}
if (geometry_type->type != JSON_STRING) {
fprintf(stderr, "Filter output:%d: geometry type is not a string\n", jp->line);
json_context(j);
exit(EXIT_FAILURE);
}
json_object *coordinates = json_hash_get(geometry, "coordinates");
if (coordinates == NULL || coordinates->type != JSON_ARRAY) {
fprintf(stderr, "Filter output:%d: feature without coordinates array\n", jp->line);
json_context(j);
exit(EXIT_FAILURE);
}
int t;
for (t = 0; t < GEOM_TYPES; t++) {
if (strcmp(geometry_type->string, geometry_names[t]) == 0) {
break;
}
}
if (t >= GEOM_TYPES) {
fprintf(stderr, "Filter output:%d: Can't handle geometry type %s\n", jp->line, geometry_type->string);
json_context(j);
exit(EXIT_FAILURE);
}
std::string layername = "unknown";
json_object *tippecanoe = json_hash_get(j, "tippecanoe");
json_object *layer = NULL;
if (tippecanoe != NULL) {
layer = json_hash_get(tippecanoe, "layer");
if (layer != NULL && layer->type == JSON_STRING) {
layername = std::string(layer->string);
}
}
if (ret.count(layername) == 0) {
mvt_layer l;
l.name = layername;
l.version = 2;
l.extent = extent;
ret.insert(std::pair<std::string, mvt_layer>(layername, l));
}
auto l = ret.find(layername);
drawvec dv;
parse_geometry(t, coordinates, dv, VT_MOVETO, "Filter output", jp->line, j);
if (mb_geometry[t] == VT_POLYGON) {
dv = fix_polygon(dv);
}
// Scale and offset geometry from global to tile
for (size_t i = 0; i < dv.size(); i++) {
long long scale = 1LL << (32 - z);
dv[i].x = std::round((dv[i].x - scale * x) * extent / (double) scale);
dv[i].y = std::round((dv[i].y - scale * y) * extent / (double) scale);
}
if (mb_geometry[t] == VT_POLYGON) {
dv = clean_or_clip_poly(dv, 0, 0, false);
if (dv.size() < 3) {
dv.clear();
}
}
dv = remove_noop(dv, mb_geometry[t], 0);
if (mb_geometry[t] == VT_POLYGON) {
dv = close_poly(dv);
}
if (dv.size() > 0) {
mvt_feature feature;
feature.type = mb_geometry[t];
feature.geometry = to_feature(dv);
json_object *id = json_hash_get(j, "id");
if (id != NULL) {
feature.id = atoll(id->string);
feature.has_id = true;
}
std::map<std::string, layermap_entry> &layermap = (*layermaps)[tiling_seg];
if (layermap.count(layername) == 0) {
layermap_entry lme = layermap_entry(layermap.size());
lme.minzoom = z;
lme.maxzoom = z;
layermap.insert(std::pair<std::string, layermap_entry>(layername, lme));
if (lme.id >= (*layer_unmaps)[tiling_seg].size()) {
(*layer_unmaps)[tiling_seg].resize(lme.id + 1);
(*layer_unmaps)[tiling_seg][lme.id] = layername;
}
}
auto fk = layermap.find(layername);
if (fk == layermap.end()) {
fprintf(stderr, "Internal error: layer %s not found\n", layername.c_str());
exit(EXIT_FAILURE);
}
if (z < fk->second.minzoom) {
fk->second.minzoom = z;
}
if (z > fk->second.maxzoom) {
fk->second.maxzoom = z;
}
if (feature.type == mvt_point) {
fk->second.points++;
} else if (feature.type == mvt_linestring) {
fk->second.lines++;
} else if (feature.type == mvt_polygon) {
fk->second.polygons++;
}
for (size_t i = 0; i < properties->length; i++) {
int tp = -1;
std::string s;
stringify_value(properties->values[i], tp, s, "Filter output", jp->line, j);
if (tp >= 0) {
mvt_value v = stringified_to_mvt_value(tp, s.c_str());
l->second.tag(feature, std::string(properties->keys[i]->string), v);
type_and_string attrib;
attrib.type = tp;
attrib.string = s;
add_to_file_keys(fk->second.file_keys, std::string(properties->keys[i]->string), attrib);
}
}
l->second.features.push_back(feature);
}
json_free(j);
}
json_end(jp);
if (fclose(f) != 0) {
perror("fclose postfilter output");
exit(EXIT_FAILURE);
}
std::vector<mvt_layer> final;
for (auto a : ret) {
final.push_back(a.second);
}
return final;
}
// Reads from the prefilter
serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector<std::map<std::string, layermap_entry>> *layermaps, size_t tiling_seg, std::vector<std::vector<std::string>> *layer_unmaps, bool postfilter) {
serial_feature sf;
while (1) {
json_object *j = json_read(jp);
if (j == NULL) {
if (jp->error != NULL) {
fprintf(stderr, "Filter output:%d: %s\n", jp->line, jp->error);
if (jp->root != NULL) {
json_context(jp->root);
}
exit(EXIT_FAILURE);
}
json_free(jp->root);
sf.t = -1;
return sf;
}
json_object *type = json_hash_get(j, "type");
if (type == NULL || type->type != JSON_STRING) {
continue;
}
if (strcmp(type->string, "Feature") != 0) {
continue;
}
json_object *geometry = json_hash_get(j, "geometry");
if (geometry == NULL) {
fprintf(stderr, "Filter output:%d: filtered feature with no geometry\n", jp->line);
json_context(j);
json_free(j);
exit(EXIT_FAILURE);
}
json_object *properties = json_hash_get(j, "properties");
if (properties == NULL || (properties->type != JSON_HASH && properties->type != JSON_NULL)) {
fprintf(stderr, "Filter output:%d: feature without properties hash\n", jp->line);
json_context(j);
json_free(j);
exit(EXIT_FAILURE);
}
json_object *geometry_type = json_hash_get(geometry, "type");
if (geometry_type == NULL) {
fprintf(stderr, "Filter output:%d: null geometry (additional not reported)\n", jp->line);
json_context(j);
exit(EXIT_FAILURE);
}
if (geometry_type->type != JSON_STRING) {
fprintf(stderr, "Filter output:%d: geometry type is not a string\n", jp->line);
json_context(j);
exit(EXIT_FAILURE);
}
json_object *coordinates = json_hash_get(geometry, "coordinates");
if (coordinates == NULL || coordinates->type != JSON_ARRAY) {
fprintf(stderr, "Filter output:%d: feature without coordinates array\n", jp->line);
json_context(j);
exit(EXIT_FAILURE);
}
int t;
for (t = 0; t < GEOM_TYPES; t++) {
if (strcmp(geometry_type->string, geometry_names[t]) == 0) {
break;
}
}
if (t >= GEOM_TYPES) {
fprintf(stderr, "Filter output:%d: Can't handle geometry type %s\n", jp->line, geometry_type->string);
json_context(j);
exit(EXIT_FAILURE);
}
drawvec dv;
parse_geometry(t, coordinates, dv, VT_MOVETO, "Filter output", jp->line, j);
if (mb_geometry[t] == VT_POLYGON) {
dv = fix_polygon(dv);
}
// Scale and offset geometry from global to tile
double scale = 1LL << geometry_scale;
for (size_t i = 0; i < dv.size(); i++) {
unsigned sx = 0, sy = 0;
if (z != 0) {
sx = x << (32 - z);
sy = y << (32 - z);
}
dv[i].x = std::round(dv[i].x / scale) * scale - sx;
dv[i].y = std::round(dv[i].y / scale) * scale - sy;
}
if (dv.size() > 0) {
sf.t = mb_geometry[t];
sf.segment = tiling_seg;
sf.geometry = dv;
sf.seq = 0;
sf.index = 0;
sf.bbox[0] = sf.bbox[1] = LLONG_MAX;
sf.bbox[2] = sf.bbox[3] = LLONG_MIN;
sf.extent = 0;
sf.metapos = 0;
sf.has_id = false;
std::string layername = "unknown";
json_object *tippecanoe = json_hash_get(j, "tippecanoe");
if (tippecanoe != NULL) {
json_object *layer = json_hash_get(tippecanoe, "layer");
if (layer != NULL && layer->type == JSON_STRING) {
layername = std::string(layer->string);
}
json_object *index = json_hash_get(tippecanoe, "index");
if (index != NULL && index->type == JSON_NUMBER) {
sf.index = index->number;
}
json_object *sequence = json_hash_get(tippecanoe, "sequence");
if (sequence != NULL && sequence->type == JSON_NUMBER) {
sf.seq = sequence->number;
}
json_object *extent = json_hash_get(tippecanoe, "extent");
if (extent != NULL && sequence->type == JSON_NUMBER) {
sf.extent = extent->number;
}
json_object *dropped = json_hash_get(tippecanoe, "dropped");
if (dropped != NULL && dropped->type == JSON_TRUE) {
sf.dropped = true;
}
}
for (size_t i = 0; i < dv.size(); i++) {
if (dv[i].op == VT_MOVETO || dv[i].op == VT_LINETO) {
if (dv[i].x < sf.bbox[0]) {
sf.bbox[0] = dv[i].x;
}
if (dv[i].y < sf.bbox[1]) {
sf.bbox[1] = dv[i].y;
}
if (dv[i].x > sf.bbox[2]) {
sf.bbox[2] = dv[i].x;
}
if (dv[i].y > sf.bbox[3]) {
sf.bbox[3] = dv[i].y;
}
}
}
json_object *id = json_hash_get(j, "id");
if (id != NULL) {
sf.id = atoll(id->string);
sf.has_id = true;
}
std::map<std::string, layermap_entry> &layermap = (*layermaps)[tiling_seg];
if (layermap.count(layername) == 0) {
layermap_entry lme = layermap_entry(layermap.size());
lme.minzoom = z;
lme.maxzoom = z;
layermap.insert(std::pair<std::string, layermap_entry>(layername, lme));
if (lme.id >= (*layer_unmaps)[tiling_seg].size()) {
(*layer_unmaps)[tiling_seg].resize(lme.id + 1);
(*layer_unmaps)[tiling_seg][lme.id] = layername;
}
}
auto fk = layermap.find(layername);
if (fk == layermap.end()) {
fprintf(stderr, "Internal error: layer %s not found\n", layername.c_str());
exit(EXIT_FAILURE);
}
sf.layer = fk->second.id;
if (z < fk->second.minzoom) {
fk->second.minzoom = z;
}
if (z > fk->second.maxzoom) {
fk->second.maxzoom = z;
}
if (!postfilter) {
if (sf.t == mvt_point) {
fk->second.points++;
} else if (sf.t == mvt_linestring) {
fk->second.lines++;
} else if (sf.t == mvt_polygon) {
fk->second.polygons++;
}
}
for (size_t i = 0; i < properties->length; i++) {
serial_val v;
v.type = -1;
stringify_value(properties->values[i], v.type, v.s, "Filter output", jp->line, j);
if (v.type >= 0) {
sf.full_keys.push_back(std::string(properties->keys[i]->string));
sf.full_values.push_back(v);
type_and_string attrib;
attrib.string = v.s;
attrib.type = v.type;
if (!postfilter) {
add_to_file_keys(fk->second.file_keys, std::string(properties->keys[i]->string), attrib);
}
}
}
json_free(j);
return sf;
}
json_free(j);
}
}
static pthread_mutex_t pipe_lock = PTHREAD_MUTEX_INITIALIZER;
void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y) {
// This will create two pipes, a new thread, and a new process.
//
// The new process will read from one pipe and write to the other, and execute the filter.
// The new thread will write the GeoJSON to the pipe that leads to the filter.
// The original thread will read the GeoJSON from the filter and convert it back into vector tiles.
if (pthread_mutex_lock(&pipe_lock) != 0) {
perror("pthread_mutex_lock (pipe)");
exit(EXIT_FAILURE);
}
int pipe_orig[2], pipe_filtered[2];
if (pipe(pipe_orig) < 0) {
perror("pipe (original features)");
exit(EXIT_FAILURE);
}
if (pipe(pipe_filtered) < 0) {
perror("pipe (filtered features)");
exit(EXIT_FAILURE);
}
std::string z_str = std::to_string(z);
std::string x_str = std::to_string(x);
std::string y_str = std::to_string(y);
*pid = fork();
if (*pid < 0) {
perror("fork");
exit(EXIT_FAILURE);
} else if (*pid == 0) {
// child
if (dup2(pipe_orig[0], 0) < 0) {
perror("dup child stdin");
exit(EXIT_FAILURE);
}
if (dup2(pipe_filtered[1], 1) < 0) {
perror("dup child stdout");
exit(EXIT_FAILURE);
}
if (close(pipe_orig[1]) != 0) {
perror("close output to filter");
exit(EXIT_FAILURE);
}
if (close(pipe_filtered[0]) != 0) {
perror("close input from filter");
exit(EXIT_FAILURE);
}
if (close(pipe_orig[0]) != 0) {
perror("close dup input of filter");
exit(EXIT_FAILURE);
}
if (close(pipe_filtered[1]) != 0) {
perror("close dup output of filter");
exit(EXIT_FAILURE);
}
// XXX close other fds?
if (execlp("sh", "sh", "-c", filter, "sh", z_str.c_str(), x_str.c_str(), y_str.c_str(), NULL) != 0) {
perror("exec");
exit(EXIT_FAILURE);
}
} else {
// parent
if (close(pipe_orig[0]) != 0) {
perror("close filter-side reader");
exit(EXIT_FAILURE);
}
if (close(pipe_filtered[1]) != 0) {
perror("close filter-side writer");
exit(EXIT_FAILURE);
}
if (fcntl(pipe_orig[1], F_SETFD, FD_CLOEXEC) != 0) {
perror("cloxec output to filter");
exit(EXIT_FAILURE);
}
if (fcntl(pipe_filtered[0], F_SETFD, FD_CLOEXEC) != 0) {
perror("cloxec input from filter");
exit(EXIT_FAILURE);
}
if (pthread_mutex_unlock(&pipe_lock) != 0) {
perror("pthread_mutex_unlock (pipe_lock)");
exit(EXIT_FAILURE);
}
*write_to = pipe_orig[1];
*read_from = pipe_filtered[0];
}
}
std::vector<mvt_layer> filter_layers(const char *filter, std::vector<mvt_layer> &layers, unsigned z, unsigned x, unsigned y, std::vector<std::map<std::string, layermap_entry>> *layermaps, size_t tiling_seg, std::vector<std::vector<std::string>> *layer_unmaps, int extent) {
int write_to, read_from;
pid_t pid;
setup_filter(filter, &write_to, &read_from, &pid, z, x, y);
writer_arg wa;
wa.write_to = write_to;
wa.layers = &layers;
wa.z = z;
wa.x = x;
wa.y = y;
wa.extent = extent;
pthread_t writer;
if (pthread_create(&writer, NULL, run_writer, &wa) != 0) {
perror("pthread_create (filter writer)");
exit(EXIT_FAILURE);
}
std::vector<mvt_layer> nlayers = parse_layers(read_from, z, x, y, layermaps, tiling_seg, layer_unmaps, extent);
while (1) {
int stat_loc;
if (waitpid(pid, &stat_loc, 0) < 0) {
perror("waitpid for filter\n");
exit(EXIT_FAILURE);
}
if (WIFEXITED(stat_loc) || WIFSIGNALED(stat_loc)) {
break;
}
}
void *ret;
if (pthread_join(writer, &ret) != 0) {
perror("pthread_join filter writer");
exit(EXIT_FAILURE);
}
return nlayers;
}

3
plugin.hpp Normal file
View File

@ -0,0 +1,3 @@
std::vector<mvt_layer> filter_layers(const char *filter, std::vector<mvt_layer> &layer, unsigned z, unsigned x, unsigned y, std::vector<std::map<std::string, layermap_entry>> *layermaps, size_t tiling_seg, std::vector<std::vector<std::string>> *layer_unmaps, int extent);
void setup_filter(const char *filter, int *write_to, int *read_from, pid_t *pid, unsigned z, unsigned x, unsigned y);
serial_feature parse_feature(json_pull *jp, int z, unsigned x, unsigned y, std::vector<std::map<std::string, layermap_entry>> *layermaps, size_t tiling_seg, std::vector<std::vector<std::string>> *layer_unmaps, bool filters);

View File

@ -2,47 +2,43 @@
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <math.h>
#include "memfile.hpp"
#include "pool.hpp"
static unsigned char swizzle[256] = {
0x00, 0xBF, 0x18, 0xDE, 0x93, 0xC9, 0xB1, 0x5E, 0xDF, 0xBE, 0x72, 0x5A, 0xBB, 0x42, 0x64, 0xC6,
0xD8, 0xB7, 0x15, 0x74, 0x1C, 0x8B, 0x91, 0xF5, 0x29, 0x46, 0xEC, 0x6F, 0xCA, 0x20, 0xF0, 0x06,
0x27, 0x61, 0x87, 0xE0, 0x6E, 0x43, 0x50, 0xC5, 0x1B, 0xB4, 0x37, 0xC3, 0x69, 0xA6, 0xEE, 0x80,
0xAF, 0x9B, 0xA1, 0x76, 0x23, 0x24, 0x53, 0xF3, 0x5B, 0x65, 0x19, 0xF4, 0xFC, 0xDD, 0x26, 0xE8,
0x10, 0xF7, 0xCE, 0x92, 0x48, 0xF6, 0x94, 0x60, 0x07, 0xC4, 0xB9, 0x97, 0x6D, 0xA4, 0x11, 0x0D,
0x1F, 0x4D, 0x13, 0xB0, 0x5D, 0xBA, 0x31, 0xD5, 0x8D, 0x51, 0x36, 0x96, 0x7A, 0x03, 0x7F, 0xDA,
0x17, 0xDB, 0xD4, 0x83, 0xE2, 0x79, 0x6A, 0xE1, 0x95, 0x38, 0xFF, 0x28, 0xB2, 0xB3, 0xA7, 0xAE,
0xF8, 0x54, 0xCC, 0xDC, 0x9A, 0x6B, 0xFB, 0x3F, 0xD7, 0xBC, 0x21, 0xC8, 0x71, 0x09, 0x16, 0xAC,
0x3C, 0x8A, 0x62, 0x05, 0xC2, 0x8C, 0x32, 0x4E, 0x35, 0x9C, 0x5F, 0x75, 0xCD, 0x2E, 0xA2, 0x3E,
0x1A, 0xC1, 0x8E, 0x14, 0xA0, 0xD3, 0x7D, 0xD9, 0xEB, 0x5C, 0x70, 0xE6, 0x9E, 0x12, 0x3B, 0xEF,
0x1E, 0x49, 0xD2, 0x98, 0x39, 0x7E, 0x44, 0x4B, 0x6C, 0x88, 0x02, 0x2C, 0xAD, 0xE5, 0x9F, 0x40,
0x7B, 0x4A, 0x3D, 0xA9, 0xAB, 0x0B, 0xD6, 0x2F, 0x90, 0x2A, 0xB6, 0x1D, 0xC7, 0x22, 0x55, 0x34,
0x0A, 0xD0, 0xB5, 0x68, 0xE3, 0x59, 0xFD, 0xFA, 0x57, 0x77, 0x25, 0xA3, 0x04, 0xB8, 0x33, 0x89,
0x78, 0x82, 0xE4, 0xC0, 0x0E, 0x8F, 0x85, 0xD1, 0x84, 0x08, 0x67, 0x47, 0x9D, 0xCB, 0x58, 0x4C,
0xAA, 0xED, 0x52, 0xF2, 0x4F, 0xF1, 0x66, 0xCF, 0xA5, 0x56, 0xEA, 0x7C, 0xE9, 0x63, 0xE7, 0x01,
0xF9, 0xFE, 0x0C, 0x99, 0x2D, 0x0F, 0x3A, 0x41, 0x45, 0xA8, 0x30, 0x2B, 0x73, 0xBD, 0x86, 0x81,
};
int swizzlecmp(const char *a, const char *b) {
while (*a || *b) {
int aa = swizzle[(unsigned char) *a];
int bb = swizzle[(unsigned char) *b];
ssize_t alen = strlen(a);
ssize_t blen = strlen(b);
int cmp = aa - bb;
if (cmp != 0) {
return cmp;
}
a++;
b++;
if (strcmp(a, b) == 0) {
return 0;
}
return 0;
long long hash1 = 0, hash2 = 0;
for (ssize_t i = alen - 1; i >= 0; i--) {
hash1 = (hash1 * 37 + a[i]) & INT_MAX;
}
for (ssize_t i = blen - 1; i >= 0; i--) {
hash2 = (hash2 * 37 + b[i]) & INT_MAX;
}
int h1 = hash1, h2 = hash2;
if (h1 == h2) {
return strcmp(a, b);
}
return h1 - h2;
}
long long addpool(struct memfile *poolfile, struct memfile *treefile, const char *s, char type) {
long long *sp = &treefile->tree;
unsigned long *sp = &treefile->tree;
size_t depth = 0;
// In typical data, traversal depth generally stays under 2.5x
size_t max = 3 * log(treefile->off / sizeof(struct stringpool)) / log(2);
if (max < 30) {
max = 30;
}
while (*sp != 0) {
int cmp = swizzlecmp(s, poolfile->map + ((struct stringpool *) (treefile->map + *sp))->off + 1);
@ -58,6 +54,23 @@ long long addpool(struct memfile *poolfile, struct memfile *treefile, const char
} else {
return ((struct stringpool *) (treefile->map + *sp))->off;
}
depth++;
if (depth > max) {
// Search is very deep, so string is probably unique.
// Add it to the pool without adding it to the search tree.
long long off = poolfile->off;
if (memfile_write(poolfile, &type, 1) < 0) {
perror("memfile write");
exit(EXIT_FAILURE);
}
if (memfile_write(poolfile, (void *) s, strlen(s) + 1) < 0) {
perror("memfile write");
exit(EXIT_FAILURE);
}
return off;
}
}
// *sp is probably in the memory-mapped file, and will move if the file grows.
@ -78,6 +91,16 @@ long long addpool(struct memfile *poolfile, struct memfile *treefile, const char
exit(EXIT_FAILURE);
}
if (off >= LONG_MAX || treefile->off >= LONG_MAX) {
// Tree or pool is bigger than 2GB
static bool warned = false;
if (!warned) {
fprintf(stderr, "Warning: string pool is very large.\n");
warned = true;
}
return off;
}
struct stringpool tsp;
tsp.left = 0;
tsp.right = 0;

View File

@ -1,7 +1,12 @@
#ifndef POOL_HPP
#define POOL_HPP
struct stringpool {
long long left;
long long right;
long long off;
unsigned long left = 0;
unsigned long right = 0;
unsigned long off = 0;
};
long long addpool(struct memfile *poolfile, struct memfile *treefile, const char *s, char type);
#endif

View File

@ -2,18 +2,31 @@
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <atomic>
#include "projection.hpp"
struct projection projections[] = {
{"EPSG:4326", lonlat2tile, tile2lonlat, "urn:ogc:def:crs:OGC:1.3:CRS84"},
{"EPSG:3857", epsg3857totile, tiletoepsg3857, "urn:ogc:def:crs:EPSG::3857"},
{NULL, NULL},
{NULL, NULL, NULL, NULL},
};
struct projection *projection = &projections[0];
// http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
void lonlat2tile(double lon, double lat, int zoom, long long *x, long long *y) {
// Place infinite and NaN coordinates off the edge of the Mercator plane
int lat_class = fpclassify(lat);
int lon_class = fpclassify(lon);
if (lat_class == FP_INFINITE || lat_class == FP_NAN) {
lat = 89.9;
}
if (lon_class == FP_INFINITE || lon_class == FP_NAN) {
lon = 360;
}
// Must limit latitude somewhere to prevent overflow.
// 89.9 degrees latitude is 0.621 worlds beyond the edge of the flat earth,
// hopefully far enough out that there are few expectations about the shape.
@ -49,6 +62,18 @@ void tile2lonlat(long long x, long long y, int zoom, double *lon, double *lat) {
}
void epsg3857totile(double ix, double iy, int zoom, long long *x, long long *y) {
// Place infinite and NaN coordinates off the edge of the Mercator plane
int iy_class = fpclassify(iy);
int ix_class = fpclassify(ix);
if (iy_class == FP_INFINITE || iy_class == FP_NAN) {
iy = 40000000.0;
}
if (ix_class == FP_INFINITE || ix_class == FP_NAN) {
ix = 40000000.0;
}
*x = ix * (1LL << 31) / 6378137.0 / M_PI + (1LL << 31);
*y = ((1LL << 32) - 1) - (iy * (1LL << 31) / 6378137.0 / M_PI + (1LL << 31));
@ -83,13 +108,32 @@ unsigned long long encode(unsigned int wx, unsigned int wy) {
return out;
}
static std::atomic<unsigned char> decodex[256];
static std::atomic<unsigned char> decodey[256];
void decode(unsigned long long index, unsigned *wx, unsigned *wy) {
static std::atomic<int> initialized(0);
if (!initialized) {
for (size_t ix = 0; ix < 256; ix++) {
size_t xx = 0, yy = 0;
for (size_t i = 0; i < 32; i++) {
xx |= ((ix >> (64 - 2 * (i + 1) + 1)) & 1) << (32 - (i + 1));
yy |= ((ix >> (64 - 2 * (i + 1) + 0)) & 1) << (32 - (i + 1));
}
decodex[ix] = xx;
decodey[ix] = yy;
}
initialized = 1;
}
*wx = *wy = 0;
int i;
for (i = 0; i < 32; i++) {
*wx |= ((index >> (64 - 2 * (i + 1) + 1)) & 1) << (32 - (i + 1));
*wy |= ((index >> (64 - 2 * (i + 1) + 0)) & 1) << (32 - (i + 1));
for (size_t i = 0; i < 8; i++) {
*wx |= ((unsigned) decodex[(index >> (8 * i)) & 0xFF]) << (4 * i);
*wy |= ((unsigned) decodey[(index >> (8 * i)) & 0xFF]) << (4 * i);
}
}

View File

@ -1,3 +1,6 @@
#ifndef PROJECTION_HPP
#define PROJECTION_HPP
void lonlat2tile(double lon, double lat, int zoom, long long *x, long long *y);
void epsg3857totile(double ix, double iy, int zoom, long long *x, long long *y);
void tile2lonlat(long long x, long long y, int zoom, double *lon, double *lat);
@ -15,3 +18,5 @@ struct projection {
extern struct projection *projection;
extern struct projection projections[];
#endif

View File

@ -16,56 +16,69 @@ documentation.
* @brief Contains functions to swap bytes in values (for different endianness).
*/
#include <cstdint>
#include <cassert>
#include <cstdint>
#include <protozero/config.hpp>
namespace protozero {
namespace detail {
/**
* Swap N byte value between endianness formats. This template function must
* be specialized to actually work.
*/
template <int N>
inline void byteswap(const char* /*data*/, char* /*result*/) {
static_assert(N == 1, "Can only swap 4 or 8 byte values");
}
/**
* Swap 4 byte value (int32_t, uint32_t, float) between endianness formats.
*/
template <>
inline void byteswap<4>(const char* data, char* result) {
inline uint32_t byteswap_impl(uint32_t value) noexcept {
#ifdef PROTOZERO_USE_BUILTIN_BSWAP
*reinterpret_cast<uint32_t*>(result) = __builtin_bswap32(*reinterpret_cast<const uint32_t*>(data));
return __builtin_bswap32(value);
#else
result[3] = data[0];
result[2] = data[1];
result[1] = data[2];
result[0] = data[3];
return ((value & 0xff000000) >> 24) |
((value & 0x00ff0000) >> 8) |
((value & 0x0000ff00) << 8) |
((value & 0x000000ff) << 24);
#endif
}
/**
* Swap 8 byte value (int64_t, uint64_t, double) between endianness formats.
*/
template <>
inline void byteswap<8>(const char* data, char* result) {
inline uint64_t byteswap_impl(uint64_t value) noexcept {
#ifdef PROTOZERO_USE_BUILTIN_BSWAP
*reinterpret_cast<uint64_t*>(result) = __builtin_bswap64(*reinterpret_cast<const uint64_t*>(data));
return __builtin_bswap64(value);
#else
result[7] = data[0];
result[6] = data[1];
result[5] = data[2];
result[4] = data[3];
result[3] = data[4];
result[2] = data[5];
result[1] = data[6];
result[0] = data[7];
return ((value & 0xff00000000000000ULL) >> 56) |
((value & 0x00ff000000000000ULL) >> 40) |
((value & 0x0000ff0000000000ULL) >> 24) |
((value & 0x000000ff00000000ULL) >> 8) |
((value & 0x00000000ff000000ULL) << 8) |
((value & 0x0000000000ff0000ULL) << 24) |
((value & 0x000000000000ff00ULL) << 40) |
((value & 0x00000000000000ffULL) << 56);
#endif
}
inline void byteswap_inplace(uint32_t* ptr) noexcept {
*ptr = byteswap_impl(*ptr);
}
inline void byteswap_inplace(uint64_t* ptr) noexcept {
*ptr = byteswap_impl(*ptr);
}
inline void byteswap_inplace(int32_t* ptr) noexcept {
auto bptr = reinterpret_cast<uint32_t*>(ptr);
*bptr = byteswap_impl(*bptr);
}
inline void byteswap_inplace(int64_t* ptr) noexcept {
auto bptr = reinterpret_cast<uint64_t*>(ptr);
*bptr = byteswap_impl(*bptr);
}
inline void byteswap_inplace(float* ptr) noexcept {
auto bptr = reinterpret_cast<uint32_t*>(ptr);
*bptr = byteswap_impl(*bptr);
}
inline void byteswap_inplace(double* ptr) noexcept {
auto bptr = reinterpret_cast<uint64_t*>(ptr);
*bptr = byteswap_impl(*bptr);
}
} // end namespace detail
} // end namespace protozero
#endif // PROTOZERO_BYTESWAP_HPP

View File

@ -35,17 +35,6 @@ documentation.
# define PROTOZERO_BYTE_ORDER PROTOZERO_LITTLE_ENDIAN
#endif
// On some ARM machines and depending on compiler settings access to unaligned
// floating point values will result in a SIGBUS. Do not use the bare pointers
// in this case.
#if PROTOZERO_BYTE_ORDER == PROTOZERO_LITTLE_ENDIAN
# if !defined(__arm__) && !defined(_M_ARM)
# ifndef PROTOZERO_DO_NOT_USE_BARE_POINTER
# define PROTOZERO_USE_BARE_POINTER_FOR_PACKED_FIXED
# endif
# endif
#endif
// Check whether __builtin_bswap is available
#if defined(__GNUC__) || defined(__clang__)
# define PROTOZERO_USE_BUILTIN_BSWAP

View File

@ -29,7 +29,7 @@ namespace protozero {
*/
struct exception : std::exception {
/// Returns the explanatory string.
const char *what() const noexcept override { return "pbf exception"; }
const char* what() const noexcept override { return "pbf exception"; }
};
/**
@ -38,7 +38,7 @@ struct exception : std::exception {
*/
struct varint_too_long_exception : exception {
/// Returns the explanatory string.
const char *what() const noexcept override { return "varint too long exception"; }
const char* what() const noexcept override { return "varint too long exception"; }
};
/**
@ -47,7 +47,7 @@ struct varint_too_long_exception : exception {
*/
struct unknown_pbf_wire_type_exception : exception {
/// Returns the explanatory string.
const char *what() const noexcept override { return "unknown pbf field type exception"; }
const char* what() const noexcept override { return "unknown pbf field type exception"; }
};
/**
@ -60,7 +60,7 @@ struct unknown_pbf_wire_type_exception : exception {
*/
struct end_of_buffer_exception : exception {
/// Returns the explanatory string.
const char *what() const noexcept override { return "end of buffer exception"; }
const char* what() const noexcept override { return "end of buffer exception"; }
};
} // end namespace protozero

328
protozero/iterators.hpp Normal file
View File

@ -0,0 +1,328 @@
#ifndef PROTOZERO_ITERATORS_HPP
#define PROTOZERO_ITERATORS_HPP
/*****************************************************************************
protozero - Minimalistic protocol buffer decoder and encoder in C++.
This file is from https://github.com/mapbox/protozero where you can find more
documentation.
*****************************************************************************/
/**
* @file iterators.hpp
*
* @brief Contains the iterators for access to packed repeated fields.
*/
#include <cstring>
#include <iterator>
#include <utility>
#include <protozero/config.hpp>
#include <protozero/varint.hpp>
#if PROTOZERO_BYTE_ORDER != PROTOZERO_LITTLE_ENDIAN
# include <protozero/byteswap.hpp>
#endif
namespace protozero {
/**
* A range of iterators based on std::pair. Created from beginning and
* end iterators. Used as a return type from some pbf_reader methods
* that is easy to use with range-based for loops.
*/
template <typename T, typename P = std::pair<T, T>>
class iterator_range :
#ifdef PROTOZERO_STRICT_API
protected
#else
public
#endif
P {
public:
/// The type of the iterators in this range.
using iterator = T;
/// The value type of the underlying iterator.
using value_type = typename std::iterator_traits<T>::value_type;
/**
* Default constructor. Create empty iterator_range.
*/
constexpr iterator_range() :
P(iterator{}, iterator{}) {
}
/**
* Create iterator range from two iterators.
*
* @param first_iterator Iterator to beginning or range.
* @param last_iterator Iterator to end or range.
*/
constexpr iterator_range(iterator&& first_iterator, iterator&& last_iterator) :
P(std::forward<iterator>(first_iterator),
std::forward<iterator>(last_iterator)) {
}
/// Return iterator to beginning of range.
constexpr iterator begin() const noexcept {
return this->first;
}
/// Return iterator to end of range.
constexpr iterator end() const noexcept {
return this->second;
}
/// Return iterator to beginning of range.
constexpr iterator cbegin() const noexcept {
return this->first;
}
/// Return iterator to end of range.
constexpr iterator cend() const noexcept {
return this->second;
}
/// Return true if this range is empty.
constexpr std::size_t empty() const noexcept {
return begin() == end();
}
/**
* Get element at the beginning of the range.
*
* @pre Range must not be empty.
*/
value_type front() const {
protozero_assert(!empty());
return *(this->first);
}
/**
* Advance beginning of range by one.
*
* @pre Range must not be empty.
*/
void drop_front() {
protozero_assert(!empty());
++this->first;
}
/**
* Swap the contents of this range with the other.
*
* @param other Other range to swap data with.
*/
void swap(iterator_range& other) noexcept {
using std::swap;
swap(this->first, other.first);
swap(this->second, other.second);
}
}; // struct iterator_range
/**
* Swap two iterator_ranges.
*
* @param lhs First range.
* @param rhs Second range.
*/
template <typename T>
inline void swap(iterator_range<T>& lhs, iterator_range<T>& rhs) noexcept {
lhs.swap(rhs);
}
/**
* A forward iterator used for accessing packed repeated fields of fixed
* length (fixed32, sfixed32, float, double).
*/
template <typename T>
class const_fixed_iterator {
/// Pointer to current iterator position
const char* m_data;
/// Pointer to end iterator position
const char* m_end;
public:
using iterator_category = std::forward_iterator_tag;
using value_type = T;
using difference_type = std::ptrdiff_t;
using pointer = value_type*;
using reference = value_type&;
const_fixed_iterator() noexcept :
m_data(nullptr),
m_end(nullptr) {
}
const_fixed_iterator(const char* data, const char* end) noexcept :
m_data(data),
m_end(end) {
}
const_fixed_iterator(const const_fixed_iterator&) noexcept = default;
const_fixed_iterator(const_fixed_iterator&&) noexcept = default;
const_fixed_iterator& operator=(const const_fixed_iterator&) noexcept = default;
const_fixed_iterator& operator=(const_fixed_iterator&&) noexcept = default;
~const_fixed_iterator() noexcept = default;
value_type operator*() const {
value_type result;
std::memcpy(&result, m_data, sizeof(value_type));
#if PROTOZERO_BYTE_ORDER != PROTOZERO_LITTLE_ENDIAN
detail::byteswap_inplace(&result);
#endif
return result;
}
const_fixed_iterator& operator++() {
m_data += sizeof(value_type);
return *this;
}
const_fixed_iterator operator++(int) {
const const_fixed_iterator tmp(*this);
++(*this);
return tmp;
}
bool operator==(const const_fixed_iterator& rhs) const noexcept {
return m_data == rhs.m_data && m_end == rhs.m_end;
}
bool operator!=(const const_fixed_iterator& rhs) const noexcept {
return !(*this == rhs);
}
}; // class const_fixed_iterator
/**
* A forward iterator used for accessing packed repeated varint fields
* (int32, uint32, int64, uint64, bool, enum).
*/
template <typename T>
class const_varint_iterator {
protected:
/// Pointer to current iterator position
const char* m_data;
/// Pointer to end iterator position
const char* m_end;
public:
using iterator_category = std::forward_iterator_tag;
using value_type = T;
using difference_type = std::ptrdiff_t;
using pointer = value_type*;
using reference = value_type&;
const_varint_iterator() noexcept :
m_data(nullptr),
m_end(nullptr) {
}
const_varint_iterator(const char* data, const char* end) noexcept :
m_data(data),
m_end(end) {
}
const_varint_iterator(const const_varint_iterator&) noexcept = default;
const_varint_iterator(const_varint_iterator&&) noexcept = default;
const_varint_iterator& operator=(const const_varint_iterator&) noexcept = default;
const_varint_iterator& operator=(const_varint_iterator&&) noexcept = default;
~const_varint_iterator() noexcept = default;
value_type operator*() const {
const char* d = m_data; // will be thrown away
return static_cast<value_type>(decode_varint(&d, m_end));
}
const_varint_iterator& operator++() {
skip_varint(&m_data, m_end);
return *this;
}
const_varint_iterator operator++(int) {
const const_varint_iterator tmp(*this);
++(*this);
return tmp;
}
bool operator==(const const_varint_iterator& rhs) const noexcept {
return m_data == rhs.m_data && m_end == rhs.m_end;
}
bool operator!=(const const_varint_iterator& rhs) const noexcept {
return !(*this == rhs);
}
}; // class const_varint_iterator
/**
* A forward iterator used for accessing packed repeated svarint fields
* (sint32, sint64).
*/
template <typename T>
class const_svarint_iterator : public const_varint_iterator<T> {
public:
using iterator_category = std::forward_iterator_tag;
using value_type = T;
using difference_type = std::ptrdiff_t;
using pointer = value_type*;
using reference = value_type&;
const_svarint_iterator() noexcept :
const_varint_iterator<T>() {
}
const_svarint_iterator(const char* data, const char* end) noexcept :
const_varint_iterator<T>(data, end) {
}
const_svarint_iterator(const const_svarint_iterator&) = default;
const_svarint_iterator(const_svarint_iterator&&) = default;
const_svarint_iterator& operator=(const const_svarint_iterator&) = default;
const_svarint_iterator& operator=(const_svarint_iterator&&) = default;
~const_svarint_iterator() = default;
value_type operator*() const {
const char* d = this->m_data; // will be thrown away
return static_cast<value_type>(decode_zigzag64(decode_varint(&d, this->m_end)));
}
const_svarint_iterator& operator++() {
skip_varint(&this->m_data, this->m_end);
return *this;
}
const_svarint_iterator operator++(int) {
const const_svarint_iterator tmp(*this);
++(*this);
return tmp;
}
}; // class const_svarint_iterator
} // end namespace protozero
#endif // PROTOZERO_ITERATORS_HPP

View File

@ -18,8 +18,8 @@ documentation.
#include <type_traits>
#include <protozero/types.hpp>
#include <protozero/pbf_writer.hpp>
#include <protozero/types.hpp>
namespace protozero {
@ -46,7 +46,7 @@ public:
using enum_type = T;
pbf_builder(std::string& data) noexcept :
explicit pbf_builder(std::string& data) noexcept :
pbf_writer(data) {
}
@ -57,7 +57,7 @@ public:
/// @cond INTERNAL
#define PROTOZERO_WRITER_WRAP_ADD_SCALAR(name, type) \
inline void add_##name(T tag, type value) { \
void add_##name(T tag, type value) { \
pbf_writer::add_##name(pbf_tag_type(tag), value); \
}
@ -79,38 +79,59 @@ public:
#undef PROTOZERO_WRITER_WRAP_ADD_SCALAR
/// @endcond
inline void add_bytes(T tag, const char* value, std::size_t size) {
void add_bytes(T tag, const char* value, std::size_t size) {
pbf_writer::add_bytes(pbf_tag_type(tag), value, size);
}
inline void add_bytes(T tag, const std::string& value) {
void add_bytes(T tag, const data_view& value) {
pbf_writer::add_bytes(pbf_tag_type(tag), value);
}
inline void add_string(T tag, const char* value, std::size_t size) {
void add_bytes(T tag, const std::string& value) {
pbf_writer::add_bytes(pbf_tag_type(tag), value);
}
void add_bytes(T tag, const char* value) {
pbf_writer::add_bytes(pbf_tag_type(tag), value);
}
template <typename... Ts>
void add_bytes_vectored(T tag, Ts&&... values) {
pbf_writer::add_bytes_vectored(pbf_tag_type(tag), std::forward<Ts>(values)...);
}
void add_string(T tag, const char* value, std::size_t size) {
pbf_writer::add_string(pbf_tag_type(tag), value, size);
}
inline void add_string(T tag, const std::string& value) {
void add_string(T tag, const data_view& value) {
pbf_writer::add_string(pbf_tag_type(tag), value);
}
inline void add_string(T tag, const char* value) {
void add_string(T tag, const std::string& value) {
pbf_writer::add_string(pbf_tag_type(tag), value);
}
inline void add_message(T tag, const char* value, std::size_t size) {
void add_string(T tag, const char* value) {
pbf_writer::add_string(pbf_tag_type(tag), value);
}
void add_message(T tag, const char* value, std::size_t size) {
pbf_writer::add_message(pbf_tag_type(tag), value, size);
}
inline void add_message(T tag, const std::string& value) {
void add_message(T tag, const data_view& value) {
pbf_writer::add_message(pbf_tag_type(tag), value);
}
void add_message(T tag, const std::string& value) {
pbf_writer::add_message(pbf_tag_type(tag), value);
}
/// @cond INTERNAL
#define PROTOZERO_WRITER_WRAP_ADD_PACKED(name) \
template <typename InputIterator> \
inline void add_packed_##name(T tag, InputIterator first, InputIterator last) { \
void add_packed_##name(T tag, InputIterator first, InputIterator last) { \
pbf_writer::add_packed_##name(pbf_tag_type(tag), first, last); \
}
@ -132,7 +153,7 @@ public:
#undef PROTOZERO_WRITER_WRAP_ADD_PACKED
/// @endcond
};
}; // class pbf_builder
} // end namespace protozero

View File

@ -13,7 +13,7 @@ documentation.
/**
* @file pbf_message.hpp
*
* @brief Contains the pbf_message class.
* @brief Contains the pbf_message template class.
*/
#include <type_traits>
@ -75,19 +75,23 @@ public:
pbf_reader(std::forward<Args>(args)...) {
}
inline bool next() {
bool next() {
return pbf_reader::next();
}
inline bool next(T tag) {
return pbf_reader::next(pbf_tag_type(tag));
bool next(T next_tag) {
return pbf_reader::next(pbf_tag_type(next_tag));
}
inline T tag() const noexcept {
bool next(T next_tag, pbf_wire_type type) {
return pbf_reader::next(pbf_tag_type(next_tag), type);
}
T tag() const noexcept {
return T(pbf_reader::tag());
}
};
}; // class pbf_message
} // end namespace protozero

File diff suppressed because it is too large Load Diff

View File

@ -22,6 +22,7 @@ documentation.
#include <iterator>
#include <limits>
#include <string>
#include <utility>
#include <protozero/config.hpp>
#include <protozero/types.hpp>
@ -68,38 +69,35 @@ class pbf_writer {
// parent to the position where the data of the submessage is written to.
std::size_t m_pos = 0;
inline void add_varint(uint64_t value) {
void add_varint(uint64_t value) {
protozero_assert(m_pos == 0 && "you can't add fields to a parent pbf_writer if there is an existing pbf_writer for a submessage");
protozero_assert(m_data);
write_varint(std::back_inserter(*m_data), value);
}
inline void add_field(pbf_tag_type tag, pbf_wire_type type) {
void add_field(pbf_tag_type tag, pbf_wire_type type) {
protozero_assert(((tag > 0 && tag < 19000) || (tag > 19999 && tag <= ((1 << 29) - 1))) && "tag out of range");
uint32_t b = (tag << 3) | uint32_t(type);
const uint32_t b = (tag << 3) | uint32_t(type);
add_varint(b);
}
inline void add_tagged_varint(pbf_tag_type tag, uint64_t value) {
void add_tagged_varint(pbf_tag_type tag, uint64_t value) {
add_field(tag, pbf_wire_type::varint);
add_varint(value);
}
template <typename T>
inline void add_fixed(T value) {
void add_fixed(T value) {
protozero_assert(m_pos == 0 && "you can't add fields to a parent pbf_writer if there is an existing pbf_writer for a submessage");
protozero_assert(m_data);
#if PROTOZERO_BYTE_ORDER == PROTOZERO_LITTLE_ENDIAN
m_data->append(reinterpret_cast<const char*>(&value), sizeof(T));
#else
auto size = m_data->size();
m_data->resize(size + sizeof(T));
byteswap<sizeof(T)>(reinterpret_cast<const char*>(&value), const_cast<char*>(m_data->data() + size));
#if PROTOZERO_BYTE_ORDER != PROTOZERO_LITTLE_ENDIAN
detail::byteswap_inplace(&value);
#endif
m_data->append(reinterpret_cast<const char*>(&value), sizeof(T));
}
template <typename T, typename It>
inline void add_packed_fixed(pbf_tag_type tag, It first, It last, std::input_iterator_tag) {
void add_packed_fixed(pbf_tag_type tag, It first, It last, std::input_iterator_tag) {
if (first == last) {
return;
}
@ -112,12 +110,12 @@ class pbf_writer {
}
template <typename T, typename It>
inline void add_packed_fixed(pbf_tag_type tag, It first, It last, std::forward_iterator_tag) {
void add_packed_fixed(pbf_tag_type tag, It first, It last, std::forward_iterator_tag) {
if (first == last) {
return;
}
auto length = std::distance(first, last);
const auto length = std::distance(first, last);
add_length_varint(tag, sizeof(T) * pbf_length_type(length));
reserve(sizeof(T) * std::size_t(length));
@ -127,7 +125,7 @@ class pbf_writer {
}
template <typename It>
inline void add_packed_varint(pbf_tag_type tag, It first, It last) {
void add_packed_varint(pbf_tag_type tag, It first, It last) {
if (first == last) {
return;
}
@ -140,7 +138,7 @@ class pbf_writer {
}
template <typename It>
inline void add_packed_svarint(pbf_tag_type tag, It first, It last) {
void add_packed_svarint(pbf_tag_type tag, It first, It last) {
if (first == last) {
return;
}
@ -155,14 +153,18 @@ class pbf_writer {
// The number of bytes to reserve for the varint holding the length of
// a length-delimited field. The length has to fit into pbf_length_type,
// and a varint needs 8 bit for every 7 bit.
static const int reserve_bytes = sizeof(pbf_length_type) * 8 / 7 + 1;
enum constant_reserve_bytes : int {
reserve_bytes = sizeof(pbf_length_type) * 8 / 7 + 1
};
// If m_rollpack_pos is set to this special value, it means that when
// the submessage is closed, nothing needs to be done, because the length
// of the submessage has already been written correctly.
static const std::size_t size_is_known = std::numeric_limits<std::size_t>::max();
enum constant_size_is_known : std::size_t {
size_is_known = std::numeric_limits<std::size_t>::max()
};
inline void open_submessage(pbf_tag_type tag, std::size_t size) {
void open_submessage(pbf_tag_type tag, std::size_t size) {
protozero_assert(m_pos == 0);
protozero_assert(m_data);
if (size == 0) {
@ -177,7 +179,7 @@ class pbf_writer {
m_pos = m_data->size();
}
inline void rollback_submessage() {
void rollback_submessage() {
protozero_assert(m_pos != 0);
protozero_assert(m_rollback_pos != size_is_known);
protozero_assert(m_data);
@ -185,20 +187,20 @@ class pbf_writer {
m_pos = 0;
}
inline void commit_submessage() {
void commit_submessage() {
protozero_assert(m_pos != 0);
protozero_assert(m_rollback_pos != size_is_known);
protozero_assert(m_data);
auto length = pbf_length_type(m_data->size() - m_pos);
const auto length = pbf_length_type(m_data->size() - m_pos);
protozero_assert(m_data->size() >= m_pos - reserve_bytes);
auto n = write_varint(m_data->begin() + long(m_pos) - reserve_bytes, length);
const auto n = write_varint(m_data->begin() + long(m_pos) - reserve_bytes, length);
m_data->erase(m_data->begin() + long(m_pos) - reserve_bytes + n, m_data->begin() + long(m_pos));
m_pos = 0;
}
inline void close_submessage() {
void close_submessage() {
protozero_assert(m_data);
if (m_pos == 0 || m_rollback_pos == size_is_known) {
return;
@ -210,7 +212,7 @@ class pbf_writer {
}
}
inline void add_length_varint(pbf_tag_type tag, pbf_length_type length) {
void add_length_varint(pbf_tag_type tag, pbf_length_type length) {
add_field(tag, pbf_wire_type::length_delimited);
add_varint(length);
}
@ -222,20 +224,18 @@ public:
* stores a reference to that string and adds all data to it. The string
* doesn't have to be empty. The pbf_writer will just append data.
*/
inline explicit pbf_writer(std::string& data) noexcept :
explicit pbf_writer(std::string& data) noexcept :
m_data(&data),
m_parent_writer(nullptr),
m_pos(0) {
m_parent_writer(nullptr) {
}
/**
* Create a writer without a data store. In this form the writer can not
* be used!
*/
inline pbf_writer() noexcept :
pbf_writer() noexcept :
m_data(nullptr),
m_parent_writer(nullptr),
m_pos(0) {
m_parent_writer(nullptr) {
}
/**
@ -248,10 +248,9 @@ public:
* Setting this allows some optimizations but is only possible in
* a few very specific cases.
*/
inline pbf_writer(pbf_writer& parent_writer, pbf_tag_type tag, std::size_t size=0) :
pbf_writer(pbf_writer& parent_writer, pbf_tag_type tag, std::size_t size=0) :
m_data(parent_writer.m_data),
m_parent_writer(&parent_writer),
m_pos(0) {
m_parent_writer(&parent_writer) {
m_parent_writer->open_submessage(tag, size);
}
@ -262,17 +261,30 @@ public:
pbf_writer& operator=(const pbf_writer&) noexcept = default;
/// A pbf_writer object can be moved
inline pbf_writer(pbf_writer&&) noexcept = default;
pbf_writer(pbf_writer&&) noexcept = default;
/// A pbf_writer object can be moved
inline pbf_writer& operator=(pbf_writer&&) noexcept = default;
pbf_writer& operator=(pbf_writer&&) noexcept = default;
inline ~pbf_writer() {
~pbf_writer() {
if (m_parent_writer) {
m_parent_writer->close_submessage();
}
}
/**
* Swap the contents of this object with the other.
*
* @param other Other object to swap data with.
*/
void swap(pbf_writer& other) noexcept {
using std::swap;
swap(m_data, other.m_data);
swap(m_parent_writer, other.m_parent_writer);
swap(m_rollback_pos, other.m_rollback_pos);
swap(m_pos, other.m_pos);
}
/**
* Reserve size bytes in the underlying message store in addition to
* whatever the message store already holds. So unlike
@ -286,7 +298,14 @@ public:
m_data->reserve(m_data->size() + size);
}
inline void rollback() {
/**
* Cancel writing of this submessage. The complete submessage will be
* removed as if it was never created and no fields were added.
*
* @pre Must be a pbf_writer of a submessage, ie one opened with the
* pbf_writer constructor taking a parent message.
*/
void rollback() {
protozero_assert(m_parent_writer && "you can't call rollback() on a pbf_writer without a parent");
protozero_assert(m_pos == 0 && "you can't call rollback() on a pbf_writer that has an open nested submessage");
m_parent_writer->rollback_submessage();
@ -304,7 +323,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_bool(pbf_tag_type tag, bool value) {
void add_bool(pbf_tag_type tag, bool value) {
add_field(tag, pbf_wire_type::varint);
protozero_assert(m_pos == 0 && "you can't add fields to a parent pbf_writer if there is an existing pbf_writer for a submessage");
protozero_assert(m_data);
@ -317,7 +336,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_enum(pbf_tag_type tag, int32_t value) {
void add_enum(pbf_tag_type tag, int32_t value) {
add_tagged_varint(tag, uint64_t(value));
}
@ -327,7 +346,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_int32(pbf_tag_type tag, int32_t value) {
void add_int32(pbf_tag_type tag, int32_t value) {
add_tagged_varint(tag, uint64_t(value));
}
@ -337,7 +356,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_sint32(pbf_tag_type tag, int32_t value) {
void add_sint32(pbf_tag_type tag, int32_t value) {
add_tagged_varint(tag, encode_zigzag32(value));
}
@ -347,7 +366,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_uint32(pbf_tag_type tag, uint32_t value) {
void add_uint32(pbf_tag_type tag, uint32_t value) {
add_tagged_varint(tag, value);
}
@ -357,7 +376,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_int64(pbf_tag_type tag, int64_t value) {
void add_int64(pbf_tag_type tag, int64_t value) {
add_tagged_varint(tag, uint64_t(value));
}
@ -367,7 +386,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_sint64(pbf_tag_type tag, int64_t value) {
void add_sint64(pbf_tag_type tag, int64_t value) {
add_tagged_varint(tag, encode_zigzag64(value));
}
@ -377,7 +396,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_uint64(pbf_tag_type tag, uint64_t value) {
void add_uint64(pbf_tag_type tag, uint64_t value) {
add_tagged_varint(tag, value);
}
@ -387,7 +406,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_fixed32(pbf_tag_type tag, uint32_t value) {
void add_fixed32(pbf_tag_type tag, uint32_t value) {
add_field(tag, pbf_wire_type::fixed32);
add_fixed<uint32_t>(value);
}
@ -398,7 +417,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_sfixed32(pbf_tag_type tag, int32_t value) {
void add_sfixed32(pbf_tag_type tag, int32_t value) {
add_field(tag, pbf_wire_type::fixed32);
add_fixed<int32_t>(value);
}
@ -409,7 +428,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_fixed64(pbf_tag_type tag, uint64_t value) {
void add_fixed64(pbf_tag_type tag, uint64_t value) {
add_field(tag, pbf_wire_type::fixed64);
add_fixed<uint64_t>(value);
}
@ -420,7 +439,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_sfixed64(pbf_tag_type tag, int64_t value) {
void add_sfixed64(pbf_tag_type tag, int64_t value) {
add_field(tag, pbf_wire_type::fixed64);
add_fixed<int64_t>(value);
}
@ -431,7 +450,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_float(pbf_tag_type tag, float value) {
void add_float(pbf_tag_type tag, float value) {
add_field(tag, pbf_wire_type::fixed32);
add_fixed<float>(value);
}
@ -442,7 +461,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_double(pbf_tag_type tag, double value) {
void add_double(pbf_tag_type tag, double value) {
add_field(tag, pbf_wire_type::fixed64);
add_fixed<double>(value);
}
@ -454,7 +473,7 @@ public:
* @param value Pointer to value to be written
* @param size Number of bytes to be written
*/
inline void add_bytes(pbf_tag_type tag, const char* value, std::size_t size) {
void add_bytes(pbf_tag_type tag, const char* value, std::size_t size) {
protozero_assert(m_pos == 0 && "you can't add fields to a parent pbf_writer if there is an existing pbf_writer for a submessage");
protozero_assert(m_data);
protozero_assert(size <= std::numeric_limits<pbf_length_type>::max());
@ -468,10 +487,62 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_bytes(pbf_tag_type tag, const std::string& value) {
void add_bytes(pbf_tag_type tag, const data_view& value) {
add_bytes(tag, value.data(), value.size());
}
/**
* Add "bytes" field to data.
*
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
void add_bytes(pbf_tag_type tag, const std::string& value) {
add_bytes(tag, value.data(), value.size());
}
/**
* Add "bytes" field to data. Bytes from the value are written until
* a null byte is encountered. The null byte is not added.
*
* @param tag Tag (field number) of the field
* @param value Pointer to zero-delimited value to be written
*/
void add_bytes(pbf_tag_type tag, const char* value) {
add_bytes(tag, value, std::strlen(value));
}
/**
* Add "bytes" field to data using vectored input. All the data in the
* 2nd and further arguments is "concatenated" with only a single copy
* into the final buffer.
*
* This will work with objects of any type supporting the data() and
* size() methods like std::string or protozero::data_view.
*
* Example:
* @code
* std::string data1 = "abc";
* std::string data2 = "xyz";
* writer.add_bytes_vectored(1, data1, data2);
* @endcode
*
* @tparam Ts List of types supporting data() and size() methods.
* @param tag Tag (field number) of the field
* @param values List of objects of types Ts with data to be appended.
*/
template <typename... Ts>
void add_bytes_vectored(pbf_tag_type tag, Ts&&... values) {
protozero_assert(m_pos == 0 && "you can't add fields to a parent pbf_writer if there is an existing pbf_writer for a submessage");
protozero_assert(m_data);
size_t sum_size = 0;
(void)std::initializer_list<size_t>{sum_size += values.size()...};
protozero_assert(sum_size <= std::numeric_limits<pbf_length_type>::max());
add_length_varint(tag, pbf_length_type(sum_size));
m_data->reserve(m_data->size() + sum_size);
(void)std::initializer_list<int>{(m_data->append(values.data(), values.size()), 0)...};
}
/**
* Add "string" field to data.
*
@ -479,7 +550,7 @@ public:
* @param value Pointer to value to be written
* @param size Number of bytes to be written
*/
inline void add_string(pbf_tag_type tag, const char* value, std::size_t size) {
void add_string(pbf_tag_type tag, const char* value, std::size_t size) {
add_bytes(tag, value, size);
}
@ -489,7 +560,17 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
inline void add_string(pbf_tag_type tag, const std::string& value) {
void add_string(pbf_tag_type tag, const data_view& value) {
add_bytes(tag, value.data(), value.size());
}
/**
* Add "string" field to data.
*
* @param tag Tag (field number) of the field
* @param value Value to be written
*/
void add_string(pbf_tag_type tag, const std::string& value) {
add_bytes(tag, value.data(), value.size());
}
@ -500,7 +581,7 @@ public:
* @param tag Tag (field number) of the field
* @param value Pointer to value to be written
*/
inline void add_string(pbf_tag_type tag, const char* value) {
void add_string(pbf_tag_type tag, const char* value) {
add_bytes(tag, value, std::strlen(value));
}
@ -511,7 +592,7 @@ public:
* @param value Pointer to message to be written
* @param size Length of the message
*/
inline void add_message(pbf_tag_type tag, const char* value, std::size_t size) {
void add_message(pbf_tag_type tag, const char* value, std::size_t size) {
add_bytes(tag, value, size);
}
@ -521,7 +602,17 @@ public:
* @param tag Tag (field number) of the field
* @param value Value to be written. The value must be a complete message.
*/
inline void add_message(pbf_tag_type tag, const std::string& value) {
void add_message(pbf_tag_type tag, const data_view& value) {
add_bytes(tag, value.data(), value.size());
}
/**
* Add "message" field to data.
*
* @param tag Tag (field number) of the field
* @param value Value to be written. The value must be a complete message.
*/
void add_message(pbf_tag_type tag, const std::string& value) {
add_bytes(tag, value.data(), value.size());
}
@ -535,126 +626,126 @@ public:
/**
* Add "repeated packed bool" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to bool.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_bool(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_bool(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_varint(tag, first, last);
}
/**
* Add "repeated packed enum" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to int32_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_enum(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_enum(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_varint(tag, first, last);
}
/**
* Add "repeated packed int32" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to int32_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_int32(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_int32(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_varint(tag, first, last);
}
/**
* Add "repeated packed sint32" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to int32_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_sint32(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_sint32(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_svarint(tag, first, last);
}
/**
* Add "repeated packed uint32" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to uint32_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_uint32(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_uint32(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_varint(tag, first, last);
}
/**
* Add "repeated packed int64" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to int64_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_int64(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_int64(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_varint(tag, first, last);
}
/**
* Add "repeated packed sint64" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to int64_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_sint64(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_sint64(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_svarint(tag, first, last);
}
/**
* Add "repeated packed uint64" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to uint64_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_uint64(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_uint64(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_varint(tag, first, last);
}
/**
* Add "repeated packed fixed32" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to uint32_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_fixed32(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_fixed32(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_fixed<uint32_t, InputIterator>(tag, first, last,
typename std::iterator_traits<InputIterator>::iterator_category());
}
@ -662,14 +753,14 @@ public:
/**
* Add "repeated packed sfixed32" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to int32_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_sfixed32(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_sfixed32(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_fixed<int32_t, InputIterator>(tag, first, last,
typename std::iterator_traits<InputIterator>::iterator_category());
}
@ -677,14 +768,14 @@ public:
/**
* Add "repeated packed fixed64" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to uint64_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_fixed64(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_fixed64(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_fixed<uint64_t, InputIterator>(tag, first, last,
typename std::iterator_traits<InputIterator>::iterator_category());
}
@ -692,14 +783,14 @@ public:
/**
* Add "repeated packed sfixed64" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to int64_t.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_sfixed64(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_sfixed64(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_fixed<int64_t, InputIterator>(tag, first, last,
typename std::iterator_traits<InputIterator>::iterator_category());
}
@ -707,14 +798,14 @@ public:
/**
* Add "repeated packed float" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to float.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_float(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_float(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_fixed<float, InputIterator>(tag, first, last,
typename std::iterator_traits<InputIterator>::iterator_category());
}
@ -722,14 +813,14 @@ public:
/**
* Add "repeated packed double" field to data.
*
* @tparam InputIterator An type satisfying the InputIterator concept.
* @tparam InputIterator A type satisfying the InputIterator concept.
* Dereferencing the iterator must yield a type assignable to double.
* @param tag Tag (field number) of the field
* @param first Iterator pointing to the beginning of the data
* @param last Iterator pointing one past the end of data
*/
template <typename InputIterator>
inline void add_packed_double(pbf_tag_type tag, InputIterator first, InputIterator last) {
void add_packed_double(pbf_tag_type tag, InputIterator first, InputIterator last) {
add_packed_fixed<double, InputIterator>(tag, first, last,
typename std::iterator_traits<InputIterator>::iterator_category());
}
@ -742,6 +833,16 @@ public:
}; // class pbf_writer
/**
* Swap two pbf_writer objects.
*
* @param lhs First object.
* @param rhs Second object.
*/
inline void swap(pbf_writer& lhs, pbf_writer& rhs) noexcept {
lhs.swap(rhs);
}
namespace detail {
class packed_field {
@ -752,6 +853,12 @@ namespace detail {
public:
packed_field(const packed_field&) = delete;
packed_field& operator=(const packed_field&) = delete;
packed_field(packed_field&&) = default;
packed_field& operator=(packed_field&&) = default;
packed_field(pbf_writer& parent_writer, pbf_tag_type tag) :
m_writer(parent_writer, tag) {
}
@ -771,12 +878,14 @@ namespace detail {
public:
packed_field_fixed(pbf_writer& parent_writer, pbf_tag_type tag) :
packed_field(parent_writer, tag) {
template <typename P>
packed_field_fixed(pbf_writer& parent_writer, P tag) :
packed_field(parent_writer, static_cast<pbf_tag_type>(tag)) {
}
packed_field_fixed(pbf_writer& parent_writer, pbf_tag_type tag, std::size_t size) :
packed_field(parent_writer, tag, size * sizeof(T)) {
template <typename P>
packed_field_fixed(pbf_writer& parent_writer, P tag, std::size_t size) :
packed_field(parent_writer, static_cast<pbf_tag_type>(tag), size * sizeof(T)) {
}
void add_element(T value) {
@ -790,8 +899,9 @@ namespace detail {
public:
packed_field_varint(pbf_writer& parent_writer, pbf_tag_type tag) :
packed_field(parent_writer, tag) {
template <typename P>
packed_field_varint(pbf_writer& parent_writer, P tag) :
packed_field(parent_writer, static_cast<pbf_tag_type>(tag)) {
}
void add_element(T value) {
@ -805,8 +915,9 @@ namespace detail {
public:
packed_field_svarint(pbf_writer& parent_writer, pbf_tag_type tag) :
packed_field(parent_writer, tag) {
template <typename P>
packed_field_svarint(pbf_writer& parent_writer, P tag) :
packed_field(parent_writer, static_cast<pbf_tag_type>(tag)) {
}
void add_element(T value) {
@ -817,19 +928,46 @@ namespace detail {
} // end namespace detail
/// Class for generating packed repeated bool fields.
using packed_field_bool = detail::packed_field_varint<bool>;
/// Class for generating packed repeated enum fields.
using packed_field_enum = detail::packed_field_varint<int32_t>;
/// Class for generating packed repeated int32 fields.
using packed_field_int32 = detail::packed_field_varint<int32_t>;
/// Class for generating packed repeated sint32 fields.
using packed_field_sint32 = detail::packed_field_svarint<int32_t>;
/// Class for generating packed repeated uint32 fields.
using packed_field_uint32 = detail::packed_field_varint<uint32_t>;
/// Class for generating packed repeated int64 fields.
using packed_field_int64 = detail::packed_field_varint<int64_t>;
/// Class for generating packed repeated sint64 fields.
using packed_field_sint64 = detail::packed_field_svarint<int64_t>;
/// Class for generating packed repeated uint64 fields.
using packed_field_uint64 = detail::packed_field_varint<uint64_t>;
/// Class for generating packed repeated fixed32 fields.
using packed_field_fixed32 = detail::packed_field_fixed<uint32_t>;
/// Class for generating packed repeated sfixed32 fields.
using packed_field_sfixed32 = detail::packed_field_fixed<int32_t>;
/// Class for generating packed repeated fixed64 fields.
using packed_field_fixed64 = detail::packed_field_fixed<uint64_t>;
/// Class for generating packed repeated sfixed64 fields.
using packed_field_sfixed64 = detail::packed_field_fixed<int64_t>;
/// Class for generating packed repeated float fields.
using packed_field_float = detail::packed_field_fixed<float>;
/// Class for generating packed repeated double fields.
using packed_field_double = detail::packed_field_fixed<double>;
} // end namespace protozero

View File

@ -16,33 +16,190 @@ documentation.
* @brief Contains the declaration of low-level types used in the pbf format.
*/
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <string>
#include <utility>
#include <protozero/config.hpp>
namespace protozero {
/**
* The type used for field tags (field numbers).
*/
typedef uint32_t pbf_tag_type;
/**
* The type used for field tags (field numbers).
*/
using pbf_tag_type = uint32_t;
/**
* The type used to encode type information.
* See the table on
* https://developers.google.com/protocol-buffers/docs/encoding
*/
enum class pbf_wire_type : uint32_t {
varint = 0, // int32/64, uint32/64, sint32/64, bool, enum
fixed64 = 1, // fixed64, sfixed64, double
length_delimited = 2, // string, bytes, embedded messages,
// packed repeated fields
fixed32 = 5, // fixed32, sfixed32, float
unknown = 99 // used for default setting in this library
};
/**
* Get the tag and wire type of the current field in one integer suitable
* for comparison with a switch statement.
*
* See pbf_reader.tag_and_type() for an example how to use this.
*/
template <typename T>
constexpr inline uint32_t tag_and_type(T tag, pbf_wire_type wire_type) noexcept {
return (static_cast<uint32_t>(static_cast<pbf_tag_type>(tag)) << 3) | static_cast<uint32_t>(wire_type);
}
/**
* The type used for length values, such as the length of a field.
*/
using pbf_length_type = uint32_t;
#ifdef PROTOZERO_USE_VIEW
using data_view = PROTOZERO_USE_VIEW;
#else
/**
* Holds a pointer to some data and a length.
*
* This class is supposed to be compatible with the std::string_view
* that will be available in C++17.
*/
class data_view {
const char* m_data;
std::size_t m_size;
public:
/**
* The type used to encode type information.
* See the table on
* https://developers.google.com/protocol-buffers/docs/encoding
* Default constructor. Construct an empty data_view.
*/
enum class pbf_wire_type : uint32_t {
varint = 0, // int32/64, uint32/64, sint32/64, bool, enum
fixed64 = 1, // fixed64, sfixed64, double
length_delimited = 2, // string, bytes, embedded messages,
// packed repeated fields
fixed32 = 5, // fixed32, sfixed32, float
unknown = 99 // used for default setting in this library
};
constexpr data_view() noexcept
: m_data(nullptr),
m_size(0) {
}
/**
* The type used for length values, such as the length of a field.
* Create data_view from pointer and size.
*
* @param ptr Pointer to the data.
* @param length Length of the data.
*/
typedef uint32_t pbf_length_type;
constexpr data_view(const char* ptr, std::size_t length) noexcept
: m_data(ptr),
m_size(length) {
}
/**
* Create data_view from string.
*
* @param str String with the data.
*/
data_view(const std::string& str) noexcept
: m_data(str.data()),
m_size(str.size()) {
}
/**
* Create data_view from zero-terminated string.
*
* @param ptr Pointer to the data.
*/
data_view(const char* ptr) noexcept
: m_data(ptr),
m_size(std::strlen(ptr)) {
}
/**
* Swap the contents of this object with the other.
*
* @param other Other object to swap data with.
*/
void swap(data_view& other) noexcept {
using std::swap;
swap(m_data, other.m_data);
swap(m_size, other.m_size);
}
/// Return pointer to data.
constexpr const char* data() const noexcept {
return m_data;
}
/// Return length of data in bytes.
constexpr std::size_t size() const noexcept {
return m_size;
}
/// Returns true if size is 0.
constexpr bool empty() const noexcept {
return m_size == 0;
}
/**
* Convert data view to string.
*
* @pre Must not be default constructed data_view.
*/
std::string to_string() const {
protozero_assert(m_data);
return std::string{m_data, m_size};
}
/**
* Convert data view to string.
*
* @pre Must not be default constructed data_view.
*/
explicit operator std::string() const {
protozero_assert(m_data);
return std::string{m_data, m_size};
}
}; // class data_view
/**
* Swap two data_view objects.
*
* @param lhs First object.
* @param rhs Second object.
*/
inline void swap(data_view& lhs, data_view& rhs) noexcept {
lhs.swap(rhs);
}
/**
* Two data_view instances are equal if they have the same size and the
* same content.
*
* @param lhs First object.
* @param rhs Second object.
*/
inline bool operator==(const data_view& lhs, const data_view& rhs) noexcept {
return lhs.size() == rhs.size() && std::equal(lhs.data(), lhs.data() + lhs.size(), rhs.data());
}
/**
* Two data_view instances are not equal if they have different sizes or the
* content differs.
*
* @param lhs First object.
* @param rhs Second object.
*/
inline bool operator!=(const data_view& lhs, const data_view& rhs) noexcept {
return !(lhs == rhs);
}
#endif
} // end namespace protozero

View File

@ -23,13 +23,54 @@ documentation.
namespace protozero {
/**
* The maximum length of a 64bit varint.
* The maximum length of a 64 bit varint.
*/
constexpr const int8_t max_varint_length = sizeof(uint64_t) * 8 / 7 + 1;
// from https://github.com/facebook/folly/blob/master/folly/Varint.h
namespace detail {
// from https://github.com/facebook/folly/blob/master/folly/Varint.h
inline uint64_t decode_varint_impl(const char** data, const char* end) {
const int8_t* begin = reinterpret_cast<const int8_t*>(*data);
const int8_t* iend = reinterpret_cast<const int8_t*>(end);
const int8_t* p = begin;
uint64_t val = 0;
if (iend - begin >= max_varint_length) { // fast path
do {
int64_t b;
b = *p++; val = uint64_t((b & 0x7f) ); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 7); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 14); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 21); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 28); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 35); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 42); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 49); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 56); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 63); if (b >= 0) break;
throw varint_too_long_exception();
} while (false);
} else {
int shift = 0;
while (p != iend && *p < 0) {
val |= uint64_t(*p++ & 0x7f) << shift;
shift += 7;
}
if (p == iend) {
throw end_of_buffer_exception();
}
val |= uint64_t(*p++) << shift;
}
*data = reinterpret_cast<const char*>(p);
return val;
}
} // end namespace detail
/**
* Decode a 64bit varint.
* Decode a 64 bit varint.
*
* Strong exception guarantee: if there is an exception the data pointer will
* not be changed.
@ -39,55 +80,69 @@ constexpr const int8_t max_varint_length = sizeof(uint64_t) * 8 / 7 + 1;
* @param[in] end Pointer one past the end of the input data.
* @returns The decoded integer
* @throws varint_too_long_exception if the varint is longer then the maximum
* length that would fit in a 64bit int. Usually this means your data
* length that would fit in a 64 bit int. Usually this means your data
* is corrupted or you are trying to read something as a varint that
* isn't.
* @throws end_of_buffer_exception if the *end* of the buffer was reached
* before the end of the varint.
*/
inline uint64_t decode_varint(const char** data, const char* end) {
const int8_t* begin = reinterpret_cast<const int8_t*>(*data);
const int8_t* iend = reinterpret_cast<const int8_t*>(end);
const int8_t* p = begin;
uint64_t val = 0;
if (iend - begin >= max_varint_length) { // fast path
do {
int64_t b;
b = *p++; val = uint64_t((b & 0x7f) ); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 7); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 14); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 21); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 28); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 35); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 42); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 49); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 56); if (b >= 0) break;
b = *p++; val |= uint64_t((b & 0x7f) << 63); if (b >= 0) break;
throw varint_too_long_exception();
} while (false);
} else {
int shift = 0;
while (p != iend && *p < 0) {
val |= uint64_t(*p++ & 0x7f) << shift;
shift += 7;
}
if (p == iend) {
throw end_of_buffer_exception();
}
val |= uint64_t(*p++) << shift;
// If this is a one-byte varint, decode it here.
if (end != *data && ((**data & 0x80) == 0)) {
uint64_t val = uint64_t(**data);
++(*data);
return val;
}
*data = reinterpret_cast<const char*>(p);
return val;
// If this varint is more than one byte, defer to complete implementation.
return detail::decode_varint_impl(data, end);
}
/**
* Varint-encode a 64bit integer.
* Skip over a varint.
*
* Strong exception guarantee: if there is an exception the data pointer will
* not be changed.
*
* @param[in,out] data Pointer to pointer to the input data. After the function
* returns this will point to the next data to be read.
* @param[in] end Pointer one past the end of the input data.
* @throws end_of_buffer_exception if the *end* of the buffer was reached
* before the end of the varint.
*/
template <typename OutputIterator>
inline int write_varint(OutputIterator data, uint64_t value) {
int n=1;
inline void skip_varint(const char** data, const char* end) {
const int8_t* begin = reinterpret_cast<const int8_t*>(*data);
const int8_t* iend = reinterpret_cast<const int8_t*>(end);
const int8_t* p = begin;
while (p != iend && *p < 0) {
++p;
}
if (p >= begin + max_varint_length) {
throw varint_too_long_exception();
}
if (p == iend) {
throw end_of_buffer_exception();
}
++p;
*data = reinterpret_cast<const char*>(p);
}
/**
* Varint encode a 64 bit integer.
*
* @tparam T An output iterator type.
* @param data Output iterator the varint encoded value will be written to
* byte by byte.
* @param value The integer that will be encoded.
* @throws Any exception thrown by increment or dereference operator on data.
*/
template <typename T>
inline int write_varint(T data, uint64_t value) {
int n = 1;
while (value >= 0x80) {
*data++ = char((value & 0x7f) | 0x80);
@ -102,29 +157,29 @@ inline int write_varint(OutputIterator data, uint64_t value) {
/**
* ZigZag encodes a 32 bit integer.
*/
inline uint32_t encode_zigzag32(int32_t value) noexcept {
inline constexpr uint32_t encode_zigzag32(int32_t value) noexcept {
return (static_cast<uint32_t>(value) << 1) ^ (static_cast<uint32_t>(value >> 31));
}
/**
* ZigZag encodes a 64 bit integer.
*/
inline uint64_t encode_zigzag64(int64_t value) noexcept {
inline constexpr uint64_t encode_zigzag64(int64_t value) noexcept {
return (static_cast<uint64_t>(value) << 1) ^ (static_cast<uint64_t>(value >> 63));
}
/**
* Decodes a 32 bit ZigZag-encoded integer.
*/
inline int32_t decode_zigzag32(uint32_t value) noexcept {
return int32_t(value >> 1) ^ -int32_t(value & 1);
inline constexpr int32_t decode_zigzag32(uint32_t value) noexcept {
return static_cast<int32_t>(value >> 1) ^ -static_cast<int32_t>(value & 1);
}
/**
* Decodes a 64 bit ZigZag-encoded integer.
*/
inline int64_t decode_zigzag64(uint64_t value) noexcept {
return int64_t(value >> 1) ^ -int64_t(value & 1);
inline constexpr int64_t decode_zigzag64(uint64_t value) noexcept {
return static_cast<int64_t>(value >> 1) ^ -static_cast<int64_t>(value & 1);
}
} // end namespace protozero

View File

@ -10,13 +10,25 @@ documentation.
*****************************************************************************/
#define PROTOZERO_VERSION_MAJOR 1
#define PROTOZERO_VERSION_MINOR 3
#define PROTOZERO_VERSION_PATCH 0
/**
* @file version.hpp
*
* @brief Contains macros defining the protozero version.
*/
/// The major version number
#define PROTOZERO_VERSION_MAJOR 1
/// The minor version number
#define PROTOZERO_VERSION_MINOR 5
/// The patch number
#define PROTOZERO_VERSION_PATCH 2
/// The complete version number
#define PROTOZERO_VERSION_CODE (PROTOZERO_VERSION_MAJOR * 10000 + PROTOZERO_VERSION_MINOR * 100 + PROTOZERO_VERSION_PATCH)
#define PROTOZERO_VERSION_STRING "1.3.0"
/// Version number as string
#define PROTOZERO_VERSION_STRING "1.5.2"
#endif // PROTOZERO_VERSION_HPP

185
read_json.cpp Normal file
View File

@ -0,0 +1,185 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <vector>
#include <string>
#include <map>
#include "jsonpull/jsonpull.h"
#include "geometry.hpp"
#include "projection.hpp"
#include "read_json.hpp"
#include "text.hpp"
#include "mvt.hpp"
#include "milo/dtoa_milo.h"
const char *geometry_names[GEOM_TYPES] = {
"Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon",
};
int geometry_within[GEOM_TYPES] = {
-1, /* point */
GEOM_POINT, /* multipoint */
GEOM_POINT, /* linestring */
GEOM_LINESTRING, /* multilinestring */
GEOM_LINESTRING, /* polygon */
GEOM_POLYGON, /* multipolygon */
};
int mb_geometry[GEOM_TYPES] = {
VT_POINT, VT_POINT, VT_LINE, VT_LINE, VT_POLYGON, VT_POLYGON,
};
void json_context(json_object *j) {
char *s = json_stringify(j);
if (strlen(s) >= 500) {
sprintf(s + 497, "...");
}
fprintf(stderr, "In JSON object %s\n", s);
free(s); // stringify
}
void parse_geometry(int t, json_object *j, drawvec &out, int op, const char *fname, int line, json_object *feature) {
if (j == NULL || j->type != JSON_ARRAY) {
fprintf(stderr, "%s:%d: expected array for type %d\n", fname, line, t);
json_context(feature);
return;
}
int within = geometry_within[t];
if (within >= 0) {
size_t i;
for (i = 0; i < j->length; i++) {
if (within == GEOM_POINT) {
if (i == 0 || mb_geometry[t] == GEOM_MULTIPOINT) {
op = VT_MOVETO;
} else {
op = VT_LINETO;
}
}
parse_geometry(within, j->array[i], out, op, fname, line, feature);
}
} else {
if (j->length >= 2 && j->array[0]->type == JSON_NUMBER && j->array[1]->type == JSON_NUMBER) {
long long x, y;
double lon = j->array[0]->number;
double lat = j->array[1]->number;
projection->project(lon, lat, 32, &x, &y);
if (j->length > 2) {
static int warned = 0;
if (!warned) {
fprintf(stderr, "%s:%d: ignoring dimensions beyond two\n", fname, line);
json_context(j);
json_context(feature);
warned = 1;
}
}
draw d(op, x, y);
out.push_back(draw(op, x, y));
} else {
fprintf(stderr, "%s:%d: malformed point\n", fname, line);
json_context(j);
json_context(feature);
}
}
if (t == GEOM_POLYGON) {
// Note that this is not using the correct meaning of closepath.
//
// We are using it here to close an entire Polygon, to distinguish
// the Polygons within a MultiPolygon from each other.
//
// This will be undone in fix_polygon(), which needs to know which
// rings come from which Polygons so that it can make the winding order
// of the outer ring be the opposite of the order of the inner rings.
out.push_back(draw(VT_CLOSEPATH, 0, 0));
}
}
void canonicalize(json_object *o) {
if (o->type == JSON_NUMBER) {
std::string s;
long long v;
unsigned long long uv;
if (is_integer(o->string, &v)) {
s = std::to_string(v);
} else if (is_unsigned_integer(o->string, &uv)) {
s = std::to_string(uv);
} else {
s = milo::dtoa_milo(o->number);
}
free(o->string);
o->string = strdup(s.c_str());
} else if (o->type == JSON_HASH) {
for (size_t i = 0; i < o->length; i++) {
canonicalize(o->values[i]);
}
} else if (o->type == JSON_ARRAY) {
for (size_t i = 0; i < o->length; i++) {
canonicalize(o->array[i]);
}
}
}
void stringify_value(json_object *value, int &type, std::string &stringified, const char *reading, int line, json_object *feature) {
if (value != NULL) {
int vt = value->type;
std::string val;
if (vt == JSON_STRING || vt == JSON_NUMBER) {
val = value->string;
} else if (vt == JSON_TRUE) {
val = "true";
} else if (vt == JSON_FALSE) {
val = "false";
} else if (vt == JSON_NULL) {
val = "null";
} else {
canonicalize(value);
const char *v = json_stringify(value);
val = std::string(v);
free((void *) v); // stringify
}
if (vt == JSON_STRING) {
type = mvt_string;
stringified = val;
std::string err = check_utf8(val);
if (err != "") {
fprintf(stderr, "%s:%d: %s\n", reading, line, err.c_str());
json_context(feature);
exit(EXIT_FAILURE);
}
} else if (vt == JSON_NUMBER) {
type = mvt_double;
long long v;
unsigned long long uv;
if (is_integer(value->string, &v)) {
stringified = std::to_string(v);
} else if (is_unsigned_integer(value->string, &uv)) {
stringified = std::to_string(uv);
} else {
stringified = milo::dtoa_milo(value->number);
}
} else if (vt == JSON_TRUE || vt == JSON_FALSE) {
type = mvt_bool;
stringified = val;
} else if (vt == JSON_NULL) {
type = mvt_null;
stringified = "null";
} else {
type = mvt_string;
stringified = val;
}
}
}

16
read_json.hpp Normal file
View File

@ -0,0 +1,16 @@
#define GEOM_POINT 0 /* array of positions */
#define GEOM_MULTIPOINT 1 /* array of arrays of positions */
#define GEOM_LINESTRING 2 /* array of arrays of positions */
#define GEOM_MULTILINESTRING 3 /* array of arrays of arrays of positions */
#define GEOM_POLYGON 4 /* array of arrays of arrays of positions */
#define GEOM_MULTIPOLYGON 5 /* array of arrays of arrays of arrays of positions */
#define GEOM_TYPES 6
extern const char *geometry_names[GEOM_TYPES];
extern int geometry_within[GEOM_TYPES];
extern int mb_geometry[GEOM_TYPES];
void json_context(json_object *j);
void parse_geometry(int t, json_object *j, drawvec &out, int op, const char *fname, int line, json_object *feature);
void stringify_value(json_object *value, int &type, std::string &stringified, const char *reading, int line, json_object *feature);

View File

@ -7,11 +7,19 @@
#include <sqlite3.h>
#include <set>
#include <map>
#include <algorithm>
#include <limits.h>
#include "protozero/varint.hpp"
#include "geometry.hpp"
#include "mbtiles.hpp"
#include "tile.hpp"
#include "serial.hpp"
#include "options.hpp"
#include "main.hpp"
#include "pool.hpp"
#include "projection.hpp"
#include "evaluator.hpp"
#include "milo/dtoa_milo.h"
size_t fwrite_check(const void *ptr, size_t size, size_t nitems, FILE *stream, const char *fname) {
size_t w = fwrite(ptr, size, nitems, stream);
@ -22,17 +30,17 @@ size_t fwrite_check(const void *ptr, size_t size, size_t nitems, FILE *stream, c
return w;
}
void serialize_int(FILE *out, int n, long long *fpos, const char *fname) {
void serialize_int(FILE *out, int n, std::atomic<long long> *fpos, const char *fname) {
serialize_long_long(out, n, fpos, fname);
}
void serialize_long_long(FILE *out, long long n, long long *fpos, const char *fname) {
void serialize_long_long(FILE *out, long long n, std::atomic<long long> *fpos, const char *fname) {
unsigned long long zigzag = protozero::encode_zigzag64(n);
serialize_ulong_long(out, zigzag, fpos, fname);
}
void serialize_ulong_long(FILE *out, unsigned long long zigzag, long long *fpos, const char *fname) {
void serialize_ulong_long(FILE *out, unsigned long long zigzag, std::atomic<long long> *fpos, const char *fname) {
while (1) {
unsigned char b = zigzag & 0x7F;
if ((zigzag >> 7) != 0) {
@ -54,12 +62,12 @@ void serialize_ulong_long(FILE *out, unsigned long long zigzag, long long *fpos,
}
}
void serialize_byte(FILE *out, signed char n, long long *fpos, const char *fname) {
void serialize_byte(FILE *out, signed char n, std::atomic<long long> *fpos, const char *fname) {
fwrite_check(&n, sizeof(signed char), 1, out, fname);
*fpos += sizeof(signed char);
}
void serialize_uint(FILE *out, unsigned n, long long *fpos, const char *fname) {
void serialize_uint(FILE *out, unsigned n, std::atomic<long long> *fpos, const char *fname) {
fwrite_check(&n, sizeof(unsigned), 1, out, fname);
*fpos += sizeof(unsigned);
}
@ -104,14 +112,14 @@ void deserialize_byte(char **f, signed char *n) {
*f += sizeof(signed char);
}
int deserialize_long_long_io(FILE *f, long long *n, long long *geompos) {
int deserialize_long_long_io(FILE *f, long long *n, std::atomic<long long> *geompos) {
unsigned long long zigzag = 0;
int ret = deserialize_ulong_long_io(f, &zigzag, geompos);
*n = protozero::decode_zigzag64(zigzag);
return ret;
}
int deserialize_ulong_long_io(FILE *f, unsigned long long *zigzag, long long *geompos) {
int deserialize_ulong_long_io(FILE *f, unsigned long long *zigzag, std::atomic<long long> *geompos) {
*zigzag = 0;
int shift = 0;
@ -135,14 +143,14 @@ int deserialize_ulong_long_io(FILE *f, unsigned long long *zigzag, long long *ge
return 1;
}
int deserialize_int_io(FILE *f, int *n, long long *geompos) {
int deserialize_int_io(FILE *f, int *n, std::atomic<long long> *geompos) {
long long ll = 0;
int ret = deserialize_long_long_io(f, &ll, geompos);
*n = ll;
return ret;
}
int deserialize_uint_io(FILE *f, unsigned *n, long long *geompos) {
int deserialize_uint_io(FILE *f, unsigned *n, std::atomic<long long> *geompos) {
if (fread(n, sizeof(unsigned), 1, f) != 1) {
return 0;
}
@ -150,7 +158,7 @@ int deserialize_uint_io(FILE *f, unsigned *n, long long *geompos) {
return 1;
}
int deserialize_byte_io(FILE *f, signed char *n, long long *geompos) {
int deserialize_byte_io(FILE *f, signed char *n, std::atomic<long long> *geompos) {
int c = getc(f);
if (c == EOF) {
return 0;
@ -160,7 +168,7 @@ int deserialize_byte_io(FILE *f, signed char *n, long long *geompos) {
return 1;
}
static void write_geometry(drawvec const &dv, long long *fpos, FILE *out, const char *fname, long long wx, long long wy) {
static void write_geometry(drawvec const &dv, std::atomic<long long> *fpos, FILE *out, const char *fname, long long wx, long long wy) {
for (size_t i = 0; i < dv.size(); i++) {
if (dv[i].op == VT_MOVETO || dv[i].op == VT_LINETO) {
serialize_byte(out, dv[i].op, fpos, fname);
@ -174,7 +182,7 @@ static void write_geometry(drawvec const &dv, long long *fpos, FILE *out, const
}
}
void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, const char *fname, long long wx, long long wy, bool include_minzoom) {
void serialize_feature(FILE *geomfile, serial_feature *sf, std::atomic<long long> *geompos, const char *fname, long long wx, long long wy, bool include_minzoom) {
serialize_byte(geomfile, sf->t, geompos, fname);
long long layer = 0;
@ -211,22 +219,411 @@ void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, c
serialize_long_long(geomfile, sf->extent, geompos, fname);
}
serialize_int(geomfile, sf->m, geompos, fname);
if (sf->m != 0) {
serialize_long_long(geomfile, sf->metapos, geompos, fname);
}
serialize_long_long(geomfile, sf->metapos, geompos, fname);
if (sf->metapos < 0 && sf->m != sf->keys.size()) {
fprintf(stderr, "Internal error: %lld doesn't match %lld\n", (long long) sf->m, (long long) sf->keys.size());
exit(EXIT_FAILURE);
}
if (sf->metapos < 0) {
serialize_long_long(geomfile, sf->keys.size(), geompos, fname);
for (size_t i = 0; i < sf->keys.size(); i++) {
serialize_long_long(geomfile, sf->keys[i], geompos, fname);
serialize_long_long(geomfile, sf->values[i], geompos, fname);
for (size_t i = 0; i < sf->keys.size(); i++) {
serialize_long_long(geomfile, sf->keys[i], geompos, fname);
serialize_long_long(geomfile, sf->values[i], geompos, fname);
}
}
if (include_minzoom) {
serialize_byte(geomfile, sf->feature_minzoom, geompos, fname);
}
}
serial_feature deserialize_feature(FILE *geoms, std::atomic<long long> *geompos_in, char *metabase, long long *meta_off, unsigned z, unsigned tx, unsigned ty, unsigned *initial_x, unsigned *initial_y) {
serial_feature sf;
deserialize_byte_io(geoms, &sf.t, geompos_in);
if (sf.t < 0) {
return sf;
}
deserialize_long_long_io(geoms, &sf.layer, geompos_in);
sf.seq = 0;
if (sf.layer & (1 << 5)) {
deserialize_long_long_io(geoms, &sf.seq, geompos_in);
}
sf.tippecanoe_minzoom = -1;
sf.tippecanoe_maxzoom = -1;
sf.id = 0;
sf.has_id = false;
if (sf.layer & (1 << 1)) {
deserialize_int_io(geoms, &sf.tippecanoe_minzoom, geompos_in);
}
if (sf.layer & (1 << 0)) {
deserialize_int_io(geoms, &sf.tippecanoe_maxzoom, geompos_in);
}
if (sf.layer & (1 << 2)) {
sf.has_id = true;
deserialize_ulong_long_io(geoms, &sf.id, geompos_in);
}
deserialize_int_io(geoms, &sf.segment, geompos_in);
sf.index = 0;
sf.extent = 0;
sf.geometry = decode_geometry(geoms, geompos_in, z, tx, ty, sf.bbox, initial_x[sf.segment], initial_y[sf.segment]);
if (sf.layer & (1 << 4)) {
deserialize_ulong_long_io(geoms, &sf.index, geompos_in);
}
if (sf.layer & (1 << 3)) {
deserialize_long_long_io(geoms, &sf.extent, geompos_in);
}
sf.layer >>= 6;
sf.metapos = 0;
deserialize_long_long_io(geoms, &sf.metapos, geompos_in);
if (sf.metapos >= 0) {
char *meta = metabase + sf.metapos + meta_off[sf.segment];
long long count;
deserialize_long_long(&meta, &count);
for (long long i = 0; i < count; i++) {
long long k, v;
deserialize_long_long(&meta, &k);
deserialize_long_long(&meta, &v);
sf.keys.push_back(k);
sf.values.push_back(v);
}
} else {
long long count;
deserialize_long_long_io(geoms, &count, geompos_in);
for (long long i = 0; i < count; i++) {
long long k, v;
deserialize_long_long_io(geoms, &k, geompos_in);
deserialize_long_long_io(geoms, &v, geompos_in);
sf.keys.push_back(k);
sf.values.push_back(v);
}
}
deserialize_byte_io(geoms, &sf.feature_minzoom, geompos_in);
return sf;
}
static long long scale_geometry(struct serialization_state *sst, long long *bbox, drawvec &geom) {
long long offset = 0;
long long prev = 0;
bool has_prev = false;
for (size_t i = 0; i < geom.size(); i++) {
if (geom[i].op == VT_MOVETO || geom[i].op == VT_LINETO) {
long long x = geom[i].x;
long long y = geom[i].y;
if (additional[A_DETECT_WRAPAROUND]) {
x += offset;
if (has_prev) {
if (x - prev > (1LL << 31)) {
offset -= 1LL << 32;
x -= 1LL << 32;
} else if (prev - x > (1LL << 31)) {
offset += 1LL << 32;
x += 1LL << 32;
}
}
has_prev = true;
prev = x;
}
if (x < bbox[0]) {
bbox[0] = x;
}
if (y < bbox[1]) {
bbox[1] = y;
}
if (x > bbox[2]) {
bbox[2] = x;
}
if (y > bbox[3]) {
bbox[3] = y;
}
if (!*(sst->initialized)) {
if (x < 0 || x >= (1LL << 32) || y < 0 || y >= (1LL < 32)) {
*(sst->initial_x) = 1LL << 31;
*(sst->initial_y) = 1LL << 31;
} else {
*(sst->initial_x) = (x >> geometry_scale) << geometry_scale;
*(sst->initial_y) = (y >> geometry_scale) << geometry_scale;
}
*(sst->initialized) = 1;
}
geom[i].x = x >> geometry_scale;
geom[i].y = y >> geometry_scale;
}
}
return geom.size();
}
int serialize_feature(struct serialization_state *sst, serial_feature &sf) {
struct reader *r = &(*sst->readers)[sst->segment];
sf.bbox[0] = LLONG_MAX;
sf.bbox[1] = LLONG_MAX;
sf.bbox[2] = LLONG_MIN;
sf.bbox[3] = LLONG_MIN;
scale_geometry(sst, sf.bbox, sf.geometry);
// This has to happen after scaling so that the wraparound detection has happened first.
// Otherwise the inner/outer calculation will be confused by bad geometries.
if (sf.t == VT_POLYGON) {
sf.geometry = fix_polygon(sf.geometry);
}
if (sst->want_dist) {
std::vector<unsigned long long> locs;
for (size_t i = 0; i < sf.geometry.size(); i++) {
if (sf.geometry[i].op == VT_MOVETO || sf.geometry[i].op == VT_LINETO) {
locs.push_back(encode(sf.geometry[i].x << geometry_scale, sf.geometry[i].y << geometry_scale));
}
}
std::sort(locs.begin(), locs.end());
size_t n = 0;
double sum = 0;
for (size_t i = 1; i < locs.size(); i++) {
if (locs[i - 1] != locs[i]) {
sum += log(locs[i] - locs[i - 1]);
n++;
}
}
if (n > 0) {
double avg = exp(sum / n);
// Convert approximately from tile units to feet
double dist_ft = sqrt(avg) / 33;
*(sst->dist_sum) += log(dist_ft) * n;
*(sst->dist_count) += n;
}
locs.clear();
}
bool inline_meta = true;
// Don't inline metadata for features that will span several tiles at maxzoom
if (sf.geometry.size() > 0 && (sf.bbox[2] < sf.bbox[0] || sf.bbox[3] < sf.bbox[1])) {
fprintf(stderr, "Internal error: impossible feature bounding box %llx,%llx,%llx,%llx\n", sf.bbox[0], sf.bbox[1], sf.bbox[2], sf.bbox[3]);
}
if (sf.bbox[0] == LLONG_MAX) {
// No bounding box (empty geometry)
// Shouldn't happen, but avoid arithmetic overflow below
} else if (sf.bbox[2] - sf.bbox[0] > (2LL << (32 - sst->maxzoom)) || sf.bbox[3] - sf.bbox[1] > (2LL << (32 - sst->maxzoom))) {
inline_meta = false;
if (prevent[P_CLIPPING]) {
static std::atomic<long long> warned(0);
long long extent = ((sf.bbox[2] - sf.bbox[0]) / ((1LL << (32 - sst->maxzoom)) + 1)) * ((sf.bbox[3] - sf.bbox[1]) / ((1LL << (32 - sst->maxzoom)) + 1));
if (extent > warned) {
fprintf(stderr, "Warning: %s:%d: Large unclipped (-pc) feature may be duplicated across %lld tiles\n", sst->fname, sst->line, extent);
warned = extent;
if (extent > 10000) {
fprintf(stderr, "Exiting because this can't be right.\n");
exit(EXIT_FAILURE);
}
}
}
}
double extent = 0;
if (additional[A_DROP_SMALLEST_AS_NEEDED] || additional[A_COALESCE_SMALLEST_AS_NEEDED]) {
if (sf.t == VT_POLYGON) {
for (size_t i = 0; i < sf.geometry.size(); i++) {
if (sf.geometry[i].op == VT_MOVETO) {
size_t j;
for (j = i + 1; j < sf.geometry.size(); j++) {
if (sf.geometry[j].op != VT_LINETO) {
break;
}
}
extent += get_area(sf.geometry, i, j);
i = j - 1;
}
}
} else if (sf.t == VT_LINE) {
for (size_t i = 1; i < sf.geometry.size(); i++) {
if (sf.geometry[i].op == VT_LINETO) {
double xd = sf.geometry[i].x - sf.geometry[i - 1].x;
double yd = sf.geometry[i].y - sf.geometry[i - 1].y;
extent += sqrt(xd * xd + yd * yd);
}
}
}
}
if (extent <= LLONG_MAX) {
sf.extent = (long long) extent;
} else {
sf.extent = LLONG_MAX;
}
if (!prevent[P_INPUT_ORDER]) {
sf.seq = 0;
}
long long bbox_index;
// Calculate the center even if off the edge of the plane,
// and then mask to bring it back into the addressable area
long long midx = (sf.bbox[0] / 2 + sf.bbox[2] / 2) & ((1LL << 32) - 1);
long long midy = (sf.bbox[1] / 2 + sf.bbox[3] / 2) & ((1LL << 32) - 1);
bbox_index = encode(midx, midy);
if (additional[A_DROP_DENSEST_AS_NEEDED] || additional[A_COALESCE_DENSEST_AS_NEEDED] || additional[A_CLUSTER_DENSEST_AS_NEEDED] || additional[A_CALCULATE_FEATURE_DENSITY] || additional[A_INCREASE_GAMMA_AS_NEEDED] || sst->uses_gamma || cluster_distance != 0) {
sf.index = bbox_index;
} else {
sf.index = 0;
}
if (sst->layermap->count(sf.layername) == 0) {
sst->layermap->insert(std::pair<std::string, layermap_entry>(sf.layername, layermap_entry(sst->layermap->size())));
}
auto ai = sst->layermap->find(sf.layername);
if (ai != sst->layermap->end()) {
sf.layer = ai->second.id;
if (!sst->filters) {
if (sf.t == VT_POINT) {
ai->second.points++;
} else if (sf.t == VT_LINE) {
ai->second.lines++;
} else if (sf.t == VT_POLYGON) {
ai->second.polygons++;
}
}
} else {
fprintf(stderr, "Internal error: can't find layer name %s\n", sf.layername.c_str());
exit(EXIT_FAILURE);
}
for (ssize_t i = (ssize_t) sf.full_keys.size() - 1; i >= 0; i--) {
if (sst->exclude_all) {
if (sst->include->count(sf.full_keys[i]) == 0) {
sf.full_keys.erase(sf.full_keys.begin() + i);
sf.full_values.erase(sf.full_values.begin() + i);
continue;
}
} else if (sst->exclude->count(sf.full_keys[i]) != 0) {
sf.full_keys.erase(sf.full_keys.begin() + i);
sf.full_values.erase(sf.full_values.begin() + i);
continue;
}
coerce_value(sf.full_keys[i], sf.full_values[i].type, sf.full_values[i].s, sst->attribute_types);
}
if (!sst->filters) {
for (size_t i = 0; i < sf.full_keys.size(); i++) {
type_and_string attrib;
attrib.type = sf.full_values[i].type;
attrib.string = sf.full_values[i].s;
auto fk = sst->layermap->find(sf.layername);
add_to_file_keys(fk->second.file_keys, sf.full_keys[i], attrib);
}
}
if (inline_meta) {
sf.metapos = -1;
for (size_t i = 0; i < sf.full_keys.size(); i++) {
sf.keys.push_back(addpool(r->poolfile, r->treefile, sf.full_keys[i].c_str(), mvt_string));
sf.values.push_back(addpool(r->poolfile, r->treefile, sf.full_values[i].s.c_str(), sf.full_values[i].type));
}
} else {
sf.metapos = r->metapos;
serialize_long_long(r->metafile, sf.full_keys.size(), &r->metapos, sst->fname);
for (size_t i = 0; i < sf.full_keys.size(); i++) {
serialize_long_long(r->metafile, addpool(r->poolfile, r->treefile, sf.full_keys[i].c_str(), mvt_string), &r->metapos, sst->fname);
serialize_long_long(r->metafile, addpool(r->poolfile, r->treefile, sf.full_values[i].s.c_str(), sf.full_values[i].type), &r->metapos, sst->fname);
}
}
long long geomstart = r->geompos;
serialize_feature(r->geomfile, &sf, &r->geompos, sst->fname, *(sst->initial_x) >> geometry_scale, *(sst->initial_y) >> geometry_scale, false);
struct index index;
index.start = geomstart;
index.end = r->geompos;
index.segment = sst->segment;
index.seq = *(sst->layer_seq);
index.t = sf.t;
index.ix = bbox_index;
fwrite_check(&index, sizeof(struct index), 1, r->indexfile, sst->fname);
r->indexpos += sizeof(struct index);
for (size_t i = 0; i < 2; i++) {
if (sf.bbox[i] < r->file_bbox[i]) {
r->file_bbox[i] = sf.bbox[i];
}
}
for (size_t i = 2; i < 4; i++) {
if (sf.bbox[i] > r->file_bbox[i]) {
r->file_bbox[i] = sf.bbox[i];
}
}
if (*(sst->progress_seq) % 10000 == 0) {
checkdisk(sst->readers);
if (!quiet && !quiet_progress && progress_time()) {
fprintf(stderr, "Read %.2f million features\r", *sst->progress_seq / 1000000.0);
}
}
(*(sst->progress_seq))++;
(*(sst->layer_seq))++;
return 1;
}
void coerce_value(std::string const &key, int &vt, std::string &val, std::map<std::string, int> const *attribute_types) {
auto a = (*attribute_types).find(key);
if (a != attribute_types->end()) {
if (a->second == mvt_string) {
vt = mvt_string;
} else if (a->second == mvt_float) {
vt = mvt_double;
val = milo::dtoa_milo(atof(val.c_str()));
} else if (a->second == mvt_int) {
vt = mvt_double;
if (val.size() == 0) {
val = "0";
}
for (size_t ii = 0; ii < val.size(); ii++) {
char c = val[ii];
if (c < '0' || c > '9') {
val = std::to_string(round(atof(val.c_str())));
break;
}
}
} else if (a->second == mvt_bool) {
if (val == "false" || val == "0" || val == "null" || val.size() == 0 || (vt == mvt_double && atof(val.c_str()) == 0)) {
vt = mvt_bool;
val = "false";
} else {
vt = mvt_bool;
val = "true";
}
} else {
fprintf(stderr, "Can't happen: attribute type %d\n", a->second);
exit(EXIT_FAILURE);
}
}
}

View File

@ -1,11 +1,24 @@
#ifndef SERIAL_HPP
#define SERIAL_HPP
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <atomic>
#include <sys/stat.h>
#include "geometry.hpp"
#include "mbtiles.hpp"
#include "jsonpull/jsonpull.h"
size_t fwrite_check(const void *ptr, size_t size, size_t nitems, FILE *stream, const char *fname);
void serialize_int(FILE *out, int n, long long *fpos, const char *fname);
void serialize_long_long(FILE *out, long long n, long long *fpos, const char *fname);
void serialize_ulong_long(FILE *out, unsigned long long n, long long *fpos, const char *fname);
void serialize_byte(FILE *out, signed char n, long long *fpos, const char *fname);
void serialize_uint(FILE *out, unsigned n, long long *fpos, const char *fname);
void serialize_string(FILE *out, const char *s, long long *fpos, const char *fname);
void serialize_int(FILE *out, int n, std::atomic<long long> *fpos, const char *fname);
void serialize_long_long(FILE *out, long long n, std::atomic<long long> *fpos, const char *fname);
void serialize_ulong_long(FILE *out, unsigned long long n, std::atomic<long long> *fpos, const char *fname);
void serialize_byte(FILE *out, signed char n, std::atomic<long long> *fpos, const char *fname);
void serialize_uint(FILE *out, unsigned n, std::atomic<long long> *fpos, const char *fname);
void serialize_string(FILE *out, const char *s, std::atomic<long long> *fpos, const char *fname);
void deserialize_int(char **f, int *n);
void deserialize_long_long(char **f, long long *n);
@ -13,37 +26,147 @@ void deserialize_ulong_long(char **f, unsigned long long *n);
void deserialize_uint(char **f, unsigned *n);
void deserialize_byte(char **f, signed char *n);
int deserialize_int_io(FILE *f, int *n, long long *geompos);
int deserialize_long_long_io(FILE *f, long long *n, long long *geompos);
int deserialize_ulong_long_io(FILE *f, unsigned long long *n, long long *geompos);
int deserialize_uint_io(FILE *f, unsigned *n, long long *geompos);
int deserialize_byte_io(FILE *f, signed char *n, long long *geompos);
int deserialize_int_io(FILE *f, int *n, std::atomic<long long> *geompos);
int deserialize_long_long_io(FILE *f, long long *n, std::atomic<long long> *geompos);
int deserialize_ulong_long_io(FILE *f, unsigned long long *n, std::atomic<long long> *geompos);
int deserialize_uint_io(FILE *f, unsigned *n, std::atomic<long long> *geompos);
int deserialize_byte_io(FILE *f, signed char *n, std::atomic<long long> *geompos);
struct serial_feature {
long long layer;
int segment;
long long seq;
signed char t;
signed char feature_minzoom;
bool has_id;
unsigned long long id;
bool has_tippecanoe_minzoom;
int tippecanoe_minzoom;
bool has_tippecanoe_maxzoom;
int tippecanoe_maxzoom;
drawvec geometry;
unsigned long long index;
long long extent;
size_t m;
std::vector<long long> keys;
std::vector<long long> values;
long long metapos;
struct serial_val {
int type = 0;
std::string s = "";
};
void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, const char *fname, long long wx, long long wy, bool include_minzoom);
struct serial_feature {
long long layer = 0;
int segment = 0;
long long seq = 0;
signed char t = 0;
signed char feature_minzoom = 0;
bool has_id = false;
unsigned long long id = 0;
bool has_tippecanoe_minzoom = false;
int tippecanoe_minzoom = 0;
bool has_tippecanoe_maxzoom = false;
int tippecanoe_maxzoom = 0;
drawvec geometry = drawvec();
unsigned long long index = 0;
long long extent = 0;
std::vector<long long> keys{};
std::vector<long long> values{};
// If >= 0, metadata is external
long long metapos = 0;
// XXX This isn't serialized. Should it be here?
long long bbox[4] = {0, 0, 0, 0};
std::vector<std::string> full_keys{};
std::vector<serial_val> full_values{};
std::string layername = "";
bool dropped = false;
};
void serialize_feature(FILE *geomfile, serial_feature *sf, std::atomic<long long> *geompos, const char *fname, long long wx, long long wy, bool include_minzoom);
serial_feature deserialize_feature(FILE *geoms, std::atomic<long long> *geompos_in, char *metabase, long long *meta_off, unsigned z, unsigned tx, unsigned ty, unsigned *initial_x, unsigned *initial_y);
struct reader {
int metafd = -1;
int poolfd = -1;
int treefd = -1;
int geomfd = -1;
int indexfd = -1;
FILE *metafile = NULL;
struct memfile *poolfile = NULL;
struct memfile *treefile = NULL;
FILE *geomfile = NULL;
FILE *indexfile = NULL;
std::atomic<long long> metapos;
std::atomic<long long> geompos;
std::atomic<long long> indexpos;
long long file_bbox[4] = {0, 0, 0, 0};
struct stat geomst {};
struct stat metast {};
char *geom_map = NULL;
reader()
: metapos(0), geompos(0), indexpos(0) {
}
reader(reader const &r) {
metafd = r.metafd;
poolfd = r.poolfd;
treefd = r.treefd;
geomfd = r.geomfd;
indexfd = r.indexfd;
metafile = r.metafile;
poolfile = r.poolfile;
treefile = r.treefile;
geomfile = r.geomfile;
indexfile = r.indexfile;
long long p = r.metapos;
metapos = p;
p = r.geompos;
geompos = p;
p = r.indexpos;
indexpos = p;
memcpy(file_bbox, r.file_bbox, sizeof(file_bbox));
geomst = r.geomst;
metast = r.metast;
geom_map = r.geom_map;
}
};
struct serialization_state {
const char *fname = NULL; // source file name
int line = 0; // user-oriented location within source for error reports
std::atomic<long long> *layer_seq = NULL; // sequence within current layer
std::atomic<long long> *progress_seq = NULL; // overall sequence for progress indicator
std::vector<struct reader> *readers = NULL; // array of data for each input thread
int segment = 0; // the current input thread
unsigned *initial_x = NULL; // relative offset of all geometries
unsigned *initial_y = NULL;
int *initialized = NULL;
double *dist_sum = NULL; // running tally for calculation of resolution within features
size_t *dist_count = NULL;
bool want_dist = false;
int maxzoom = 0;
int basezoom = 0;
bool filters = false;
bool uses_gamma = false;
std::map<std::string, layermap_entry> *layermap = NULL;
std::map<std::string, int> const *attribute_types = NULL;
std::set<std::string> *exclude = NULL;
std::set<std::string> *include = NULL;
int exclude_all = 0;
json_object *filter = NULL;
};
int serialize_feature(struct serialization_state *sst, serial_feature &sf);
void coerce_value(std::string const &key, int &vt, std::string &val, std::map<std::string, int> const *attribute_types);
#endif

100
tests/accumulate/in.json Normal file
View File

@ -0,0 +1,100 @@
{ "type": "Feature", "properties": { "thesum": 1, "themax": 1, "themin": 1, "theproduct": 1, "themean": 1, "theconcat": 1, "thecomma": 1 }, "geometry": { "type": "Point", "coordinates": [ 134.198884,-54.297477 ] } }
{ "type": "Feature", "properties": { "thesum": 2, "themax": 2, "themin": 2, "theproduct": 2, "themean": 2, "theconcat": 2, "thecomma": 2 }, "geometry": { "type": "Point", "coordinates": [ 14.059736,46.728490 ] } }
{ "type": "Feature", "properties": { "thesum": 3, "themax": 3, "themin": 3, "theproduct": 3, "themean": 3, "theconcat": 3, "thecomma": 3 }, "geometry": { "type": "Point", "coordinates": [ -147.369727,84.781281 ] } }
{ "type": "Feature", "properties": { "thesum": 4, "themax": 4, "themin": 4, "theproduct": 4, "themean": 4, "theconcat": 4, "thecomma": 4 }, "geometry": { "type": "Point", "coordinates": [ -66.234387,89.199903 ] } }
{ "type": "Feature", "properties": { "thesum": 5, "themax": 5, "themin": 5, "theproduct": 5, "themean": 5, "theconcat": 5, "thecomma": 5 }, "geometry": { "type": "Point", "coordinates": [ -153.412664,29.072260 ] } }
{ "type": "Feature", "properties": { "thesum": 6, "themax": 6, "themin": 6, "theproduct": 6, "themean": 6, "theconcat": 6, "thecomma": 6 }, "geometry": { "type": "Point", "coordinates": [ 170.262110,-59.450058 ] } }
{ "type": "Feature", "properties": { "thesum": 7, "themax": 7, "themin": 7, "theproduct": 7, "themean": 7, "theconcat": 7, "thecomma": 7 }, "geometry": { "type": "Point", "coordinates": [ 126.605140,8.723849 ] } }
{ "type": "Feature", "properties": { "thesum": 8, "themax": 8, "themin": 8, "theproduct": 8, "themean": 8, "theconcat": 8, "thecomma": 8 }, "geometry": { "type": "Point", "coordinates": [ 161.440413,-40.375296 ] } }
{ "type": "Feature", "properties": { "thesum": 9, "themax": 9, "themin": 9, "theproduct": 9, "themean": 9, "theconcat": 9, "thecomma": 9 }, "geometry": { "type": "Point", "coordinates": [ -168.588146,-52.640848 ] } }
{ "type": "Feature", "properties": { "thesum": 10, "themax": 10, "themin": 10, "theproduct": 10, "themean": 10, "theconcat": 10, "thecomma": 10 }, "geometry": { "type": "Point", "coordinates": [ 87.732615,-76.468219 ] } }
{ "type": "Feature", "properties": { "thesum": 11, "themax": 11, "themin": 11, "theproduct": 11, "themean": 11, "theconcat": 11, "thecomma": 11 }, "geometry": { "type": "Point", "coordinates": [ 30.857236,80.182977 ] } }
{ "type": "Feature", "properties": { "thesum": 12, "themax": 12, "themin": 12, "theproduct": 12, "themean": 12, "theconcat": 12, "thecomma": 12 }, "geometry": { "type": "Point", "coordinates": [ -145.428454,26.334493 ] } }
{ "type": "Feature", "properties": { "thesum": 13, "themax": 13, "themin": 13, "theproduct": 13, "themean": 13, "theconcat": 13, "thecomma": 13 }, "geometry": { "type": "Point", "coordinates": [ -3.709986,47.351847 ] } }
{ "type": "Feature", "properties": { "thesum": 14, "themax": 14, "themin": 14, "theproduct": 14, "themean": 14, "theconcat": 14, "thecomma": 14 }, "geometry": { "type": "Point", "coordinates": [ -145.079976,80.547441 ] } }
{ "type": "Feature", "properties": { "thesum": 15, "themax": 15, "themin": 15, "theproduct": 15, "themean": 15, "theconcat": 15, "thecomma": 15 }, "geometry": { "type": "Point", "coordinates": [ 14.666648,-65.254575 ] } }
{ "type": "Feature", "properties": { "thesum": 16, "themax": 16, "themin": 16, "theproduct": 16, "themean": 16, "theconcat": 16, "thecomma": 16 }, "geometry": { "type": "Point", "coordinates": [ 24.659014,60.295014 ] } }
{ "type": "Feature", "properties": { "thesum": 17, "themax": 17, "themin": 17, "theproduct": 17, "themean": 17, "theconcat": 17, "thecomma": 17 }, "geometry": { "type": "Point", "coordinates": [ 110.427380,38.364152 ] } }
{ "type": "Feature", "properties": { "thesum": 18, "themax": 18, "themin": 18, "theproduct": 18, "themean": 18, "theconcat": 18, "thecomma": 18 }, "geometry": { "type": "Point", "coordinates": [ 6.564431,-44.802836 ] } }
{ "type": "Feature", "properties": { "thesum": 19, "themax": 19, "themin": 19, "theproduct": 19, "themean": 19, "theconcat": 19, "thecomma": 19 }, "geometry": { "type": "Point", "coordinates": [ -25.148684,-41.191936 ] } }
{ "type": "Feature", "properties": { "thesum": 20, "themax": 20, "themin": 20, "theproduct": 20, "themean": 20, "theconcat": 20, "thecomma": 20 }, "geometry": { "type": "Point", "coordinates": [ 94.640674,87.473404 ] } }
{ "type": "Feature", "properties": { "thesum": 21, "themax": 21, "themin": 21, "theproduct": 21, "themean": 21, "theconcat": 21, "thecomma": 21 }, "geometry": { "type": "Point", "coordinates": [ -15.166749,44.154022 ] } }
{ "type": "Feature", "properties": { "thesum": 22, "themax": 22, "themin": 22, "theproduct": 22, "themean": 22, "theconcat": 22, "thecomma": 22 }, "geometry": { "type": "Point", "coordinates": [ -83.839224,-22.324076 ] } }
{ "type": "Feature", "properties": { "thesum": 23, "themax": 23, "themin": 23, "theproduct": 23, "themean": 23, "theconcat": 23, "thecomma": 23 }, "geometry": { "type": "Point", "coordinates": [ -131.431059,-48.656317 ] } }
{ "type": "Feature", "properties": { "thesum": 24, "themax": 24, "themin": 24, "theproduct": 24, "themean": 24, "theconcat": 24, "thecomma": 24 }, "geometry": { "type": "Point", "coordinates": [ 13.458676,-81.541789 ] } }
{ "type": "Feature", "properties": { "thesum": 25, "themax": 25, "themin": 25, "theproduct": 25, "themean": 25, "theconcat": 25, "thecomma": 25 }, "geometry": { "type": "Point", "coordinates": [ 49.375287,54.035848 ] } }
{ "type": "Feature", "properties": { "thesum": 26, "themax": 26, "themin": 26, "theproduct": 26, "themean": 26, "theconcat": 26, "thecomma": 26 }, "geometry": { "type": "Point", "coordinates": [ 44.023761,42.750924 ] } }
{ "type": "Feature", "properties": { "thesum": 27, "themax": 27, "themin": 27, "theproduct": 27, "themean": 27, "theconcat": 27, "thecomma": 27 }, "geometry": { "type": "Point", "coordinates": [ 23.815303,87.689971 ] } }
{ "type": "Feature", "properties": { "thesum": 28, "themax": 28, "themin": 28, "theproduct": 28, "themean": 28, "theconcat": 28, "thecomma": 28 }, "geometry": { "type": "Point", "coordinates": [ -108.418101,69.859222 ] } }
{ "type": "Feature", "properties": { "thesum": 29, "themax": 29, "themin": 29, "theproduct": 29, "themean": 29, "theconcat": 29, "thecomma": 29 }, "geometry": { "type": "Point", "coordinates": [ -162.422461,-72.828993 ] } }
{ "type": "Feature", "properties": { "thesum": 30, "themax": 30, "themin": 30, "theproduct": 30, "themean": 30, "theconcat": 30, "thecomma": 30 }, "geometry": { "type": "Point", "coordinates": [ 41.555960,87.834643 ] } }
{ "type": "Feature", "properties": { "thesum": 31, "themax": 31, "themin": 31, "theproduct": 31, "themean": 31, "theconcat": 31, "thecomma": 31 }, "geometry": { "type": "Point", "coordinates": [ 151.433696,-2.049808 ] } }
{ "type": "Feature", "properties": { "thesum": 32, "themax": 32, "themin": 32, "theproduct": 32, "themean": 32, "theconcat": 32, "thecomma": 32 }, "geometry": { "type": "Point", "coordinates": [ -156.347397,-54.157799 ] } }
{ "type": "Feature", "properties": { "thesum": 33, "themax": 33, "themin": 33, "theproduct": 33, "themean": 33, "theconcat": 33, "thecomma": 33 }, "geometry": { "type": "Point", "coordinates": [ 177.449262,76.384948 ] } }
{ "type": "Feature", "properties": { "thesum": 34, "themax": 34, "themin": 34, "theproduct": 34, "themean": 34, "theconcat": 34, "thecomma": 34 }, "geometry": { "type": "Point", "coordinates": [ 67.516237,89.283900 ] } }
{ "type": "Feature", "properties": { "thesum": 35, "themax": 35, "themin": 35, "theproduct": 35, "themean": 35, "theconcat": 35, "thecomma": 35 }, "geometry": { "type": "Point", "coordinates": [ 57.957991,-82.230182 ] } }
{ "type": "Feature", "properties": { "thesum": 36, "themax": 36, "themin": 36, "theproduct": 36, "themean": 36, "theconcat": 36, "thecomma": 36 }, "geometry": { "type": "Point", "coordinates": [ 152.745823,-78.389341 ] } }
{ "type": "Feature", "properties": { "thesum": 37, "themax": 37, "themin": 37, "theproduct": 37, "themean": 37, "theconcat": 37, "thecomma": 37 }, "geometry": { "type": "Point", "coordinates": [ -79.735349,80.847381 ] } }
{ "type": "Feature", "properties": { "thesum": 38, "themax": 38, "themin": 38, "theproduct": 38, "themean": 38, "theconcat": 38, "thecomma": 38 }, "geometry": { "type": "Point", "coordinates": [ -176.469083,-1.175014 ] } }
{ "type": "Feature", "properties": { "thesum": 39, "themax": 39, "themin": 39, "theproduct": 39, "themean": 39, "theconcat": 39, "thecomma": 39 }, "geometry": { "type": "Point", "coordinates": [ 20.369644,-44.945809 ] } }
{ "type": "Feature", "properties": { "thesum": 40, "themax": 40, "themin": 40, "theproduct": 40, "themean": 40, "theconcat": 40, "thecomma": 40 }, "geometry": { "type": "Point", "coordinates": [ 75.300338,89.728838 ] } }
{ "type": "Feature", "properties": { "thesum": 41, "themax": 41, "themin": 41, "theproduct": 41, "themean": 41, "theconcat": 41, "thecomma": 41 }, "geometry": { "type": "Point", "coordinates": [ -60.903503,-89.434640 ] } }
{ "type": "Feature", "properties": { "thesum": 42, "themax": 42, "themin": 42, "theproduct": 42, "themean": 42, "theconcat": 42, "thecomma": 42 }, "geometry": { "type": "Point", "coordinates": [ -116.214566,-78.600594 ] } }
{ "type": "Feature", "properties": { "thesum": 43, "themax": 43, "themin": 43, "theproduct": 43, "themean": 43, "theconcat": 43, "thecomma": 43 }, "geometry": { "type": "Point", "coordinates": [ -168.143210,-37.381940 ] } }
{ "type": "Feature", "properties": { "thesum": 44, "themax": 44, "themin": 44, "theproduct": 44, "themean": 44, "theconcat": 44, "thecomma": 44 }, "geometry": { "type": "Point", "coordinates": [ 146.600367,-65.112907 ] } }
{ "type": "Feature", "properties": { "thesum": 45, "themax": 45, "themin": 45, "theproduct": 45, "themean": 45, "theconcat": 45, "thecomma": 45 }, "geometry": { "type": "Point", "coordinates": [ -144.960448,89.877412 ] } }
{ "type": "Feature", "properties": { "thesum": 46, "themax": 46, "themin": 46, "theproduct": 46, "themean": 46, "theconcat": 46, "thecomma": 46 }, "geometry": { "type": "Point", "coordinates": [ 37.779538,-9.255682 ] } }
{ "type": "Feature", "properties": { "thesum": 47, "themax": 47, "themin": 47, "theproduct": 47, "themean": 47, "theconcat": 47, "thecomma": 47 }, "geometry": { "type": "Point", "coordinates": [ 141.921366,-86.191382 ] } }
{ "type": "Feature", "properties": { "thesum": 48, "themax": 48, "themin": 48, "theproduct": 48, "themean": 48, "theconcat": 48, "thecomma": 48 }, "geometry": { "type": "Point", "coordinates": [ 3.757458,-46.957098 ] } }
{ "type": "Feature", "properties": { "thesum": 49, "themax": 49, "themin": 49, "theproduct": 49, "themean": 49, "theconcat": 49, "thecomma": 49 }, "geometry": { "type": "Point", "coordinates": [ -178.557808,-17.999930 ] } }
{ "type": "Feature", "properties": { "thesum": 50, "themax": 50, "themin": 50, "theproduct": 50, "themean": 50, "theconcat": 50, "thecomma": 50 }, "geometry": { "type": "Point", "coordinates": [ -94.775598,89.666291 ] } }
{ "type": "Feature", "properties": { "thesum": 51, "themax": 51, "themin": 51, "theproduct": 51, "themean": 51, "theconcat": 51, "thecomma": 51 }, "geometry": { "type": "Point", "coordinates": [ -105.311977,25.819445 ] } }
{ "type": "Feature", "properties": { "thesum": 52, "themax": 52, "themin": 52, "theproduct": 52, "themean": 52, "theconcat": 52, "thecomma": 52 }, "geometry": { "type": "Point", "coordinates": [ 116.462344,-73.172234 ] } }
{ "type": "Feature", "properties": { "thesum": 53, "themax": 53, "themin": 53, "theproduct": 53, "themean": 53, "theconcat": 53, "thecomma": 53 }, "geometry": { "type": "Point", "coordinates": [ -84.902185,62.166503 ] } }
{ "type": "Feature", "properties": { "thesum": 54, "themax": 54, "themin": 54, "theproduct": 54, "themean": 54, "theconcat": 54, "thecomma": 54 }, "geometry": { "type": "Point", "coordinates": [ -141.394664,-11.763473 ] } }
{ "type": "Feature", "properties": { "thesum": 55, "themax": 55, "themin": 55, "theproduct": 55, "themean": 55, "theconcat": 55, "thecomma": 55 }, "geometry": { "type": "Point", "coordinates": [ 96.026399,83.713544 ] } }
{ "type": "Feature", "properties": { "thesum": 56, "themax": 56, "themin": 56, "theproduct": 56, "themean": 56, "theconcat": 56, "thecomma": 56 }, "geometry": { "type": "Point", "coordinates": [ -154.653153,-89.307708 ] } }
{ "type": "Feature", "properties": { "thesum": 57, "themax": 57, "themin": 57, "theproduct": 57, "themean": 57, "theconcat": 57, "thecomma": 57 }, "geometry": { "type": "Point", "coordinates": [ -71.769818,83.010189 ] } }
{ "type": "Feature", "properties": { "thesum": 58, "themax": 58, "themin": 58, "theproduct": 58, "themean": 58, "theconcat": 58, "thecomma": 58 }, "geometry": { "type": "Point", "coordinates": [ 141.629089,-84.969764 ] } }
{ "type": "Feature", "properties": { "thesum": 59, "themax": 59, "themin": 59, "theproduct": 59, "themean": 59, "theconcat": 59, "thecomma": 59 }, "geometry": { "type": "Point", "coordinates": [ -146.893857,-72.900555 ] } }
{ "type": "Feature", "properties": { "thesum": 60, "themax": 60, "themin": 60, "theproduct": 60, "themean": 60, "theconcat": 60, "thecomma": 60 }, "geometry": { "type": "Point", "coordinates": [ 13.616243,86.468765 ] } }
{ "type": "Feature", "properties": { "thesum": 61, "themax": 61, "themin": 61, "theproduct": 61, "themean": 61, "theconcat": 61, "thecomma": 61 }, "geometry": { "type": "Point", "coordinates": [ 146.239761,-77.415130 ] } }
{ "type": "Feature", "properties": { "thesum": 62, "themax": 62, "themin": 62, "theproduct": 62, "themean": 62, "theconcat": 62, "thecomma": 62 }, "geometry": { "type": "Point", "coordinates": [ 120.720040,34.052368 ] } }
{ "type": "Feature", "properties": { "thesum": 63, "themax": 63, "themin": 63, "theproduct": 63, "themean": 63, "theconcat": 63, "thecomma": 63 }, "geometry": { "type": "Point", "coordinates": [ -50.738121,-49.044879 ] } }
{ "type": "Feature", "properties": { "thesum": 64, "themax": 64, "themin": 64, "theproduct": 64, "themean": 64, "theconcat": 64, "thecomma": 64 }, "geometry": { "type": "Point", "coordinates": [ 159.682795,-17.137421 ] } }
{ "type": "Feature", "properties": { "thesum": 65, "themax": 65, "themin": 65, "theproduct": 65, "themean": 65, "theconcat": 65, "thecomma": 65 }, "geometry": { "type": "Point", "coordinates": [ -166.439086,2.775299 ] } }
{ "type": "Feature", "properties": { "thesum": 66, "themax": 66, "themin": 66, "theproduct": 66, "themean": 66, "theconcat": 66, "thecomma": 66 }, "geometry": { "type": "Point", "coordinates": [ -68.075084,-6.863559 ] } }
{ "type": "Feature", "properties": { "thesum": 67, "themax": 67, "themin": 67, "theproduct": 67, "themean": 67, "theconcat": 67, "thecomma": 67 }, "geometry": { "type": "Point", "coordinates": [ -177.446873,22.270257 ] } }
{ "type": "Feature", "properties": { "thesum": 68, "themax": 68, "themin": 68, "theproduct": 68, "themean": 68, "theconcat": 68, "thecomma": 68 }, "geometry": { "type": "Point", "coordinates": [ 116.851469,-89.159093 ] } }
{ "type": "Feature", "properties": { "thesum": 69, "themax": 69, "themin": 69, "theproduct": 69, "themean": 69, "theconcat": 69, "thecomma": 69 }, "geometry": { "type": "Point", "coordinates": [ 113.612595,13.841587 ] } }
{ "type": "Feature", "properties": { "thesum": 70, "themax": 70, "themin": 70, "theproduct": 70, "themean": 70, "theconcat": 70, "thecomma": 70 }, "geometry": { "type": "Point", "coordinates": [ 147.030951,-21.627240 ] } }
{ "type": "Feature", "properties": { "thesum": 71, "themax": 71, "themin": 71, "theproduct": 71, "themean": 71, "theconcat": 71, "thecomma": 71 }, "geometry": { "type": "Point", "coordinates": [ -171.838003,-55.021829 ] } }
{ "type": "Feature", "properties": { "thesum": 72, "themax": 72, "themin": 72, "theproduct": 72, "themean": 72, "theconcat": 72, "thecomma": 72 }, "geometry": { "type": "Point", "coordinates": [ -179.320808,-69.030987 ] } }
{ "type": "Feature", "properties": { "thesum": 73, "themax": 73, "themin": 73, "theproduct": 73, "themean": 73, "theconcat": 73, "thecomma": 73 }, "geometry": { "type": "Point", "coordinates": [ -41.291951,-0.546778 ] } }
{ "type": "Feature", "properties": { "thesum": 74, "themax": 74, "themin": 74, "theproduct": 74, "themean": 74, "theconcat": 74, "thecomma": 74 }, "geometry": { "type": "Point", "coordinates": [ -159.602264,33.516804 ] } }
{ "type": "Feature", "properties": { "thesum": 75, "themax": 75, "themin": 75, "theproduct": 75, "themean": 75, "theconcat": 75, "thecomma": 75 }, "geometry": { "type": "Point", "coordinates": [ -157.220701,-62.925493 ] } }
{ "type": "Feature", "properties": { "thesum": 76, "themax": 76, "themin": 76, "theproduct": 76, "themean": 76, "theconcat": 76, "thecomma": 76 }, "geometry": { "type": "Point", "coordinates": [ 35.449285,-21.548332 ] } }
{ "type": "Feature", "properties": { "thesum": 77, "themax": 77, "themin": 77, "theproduct": 77, "themean": 77, "theconcat": 77, "thecomma": 77 }, "geometry": { "type": "Point", "coordinates": [ 101.921779,85.807116 ] } }
{ "type": "Feature", "properties": { "thesum": 78, "themax": 78, "themin": 78, "theproduct": 78, "themean": 78, "theconcat": 78, "thecomma": 78 }, "geometry": { "type": "Point", "coordinates": [ -128.051674,83.348143 ] } }
{ "type": "Feature", "properties": { "thesum": 79, "themax": 79, "themin": 79, "theproduct": 79, "themean": 79, "theconcat": 79, "thecomma": 79 }, "geometry": { "type": "Point", "coordinates": [ 53.387503,-84.129458 ] } }
{ "type": "Feature", "properties": { "thesum": 80, "themax": 80, "themin": 80, "theproduct": 80, "themean": 80, "theconcat": 80, "thecomma": 80 }, "geometry": { "type": "Point", "coordinates": [ 58.273040,-53.030862 ] } }
{ "type": "Feature", "properties": { "thesum": 81, "themax": 81, "themin": 81, "theproduct": 81, "themean": 81, "theconcat": 81, "thecomma": 81 }, "geometry": { "type": "Point", "coordinates": [ 125.294919,18.287339 ] } }
{ "type": "Feature", "properties": { "thesum": 82, "themax": 82, "themin": 82, "theproduct": 82, "themean": 82, "theconcat": 82, "thecomma": 82 }, "geometry": { "type": "Point", "coordinates": [ 31.960448,55.594735 ] } }
{ "type": "Feature", "properties": { "thesum": 83, "themax": 83, "themin": 83, "theproduct": 83, "themean": 83, "theconcat": 83, "thecomma": 83 }, "geometry": { "type": "Point", "coordinates": [ 43.356826,-79.995205 ] } }
{ "type": "Feature", "properties": { "thesum": 84, "themax": 84, "themin": 84, "theproduct": 84, "themean": 84, "theconcat": 84, "thecomma": 84 }, "geometry": { "type": "Point", "coordinates": [ -117.349281,13.354257 ] } }
{ "type": "Feature", "properties": { "thesum": 85, "themax": 85, "themin": 85, "theproduct": 85, "themean": 85, "theconcat": 85, "thecomma": 85 }, "geometry": { "type": "Point", "coordinates": [ 7.392891,-80.387558 ] } }
{ "type": "Feature", "properties": { "thesum": 86, "themax": 86, "themin": 86, "theproduct": 86, "themean": 86, "theconcat": 86, "thecomma": 86 }, "geometry": { "type": "Point", "coordinates": [ -0.255971,-32.692982 ] } }
{ "type": "Feature", "properties": { "thesum": 87, "themax": 87, "themin": 87, "theproduct": 87, "themean": 87, "theconcat": 87, "thecomma": 87 }, "geometry": { "type": "Point", "coordinates": [ 165.528504,-69.862641 ] } }
{ "type": "Feature", "properties": { "thesum": 88, "themax": 88, "themin": 88, "theproduct": 88, "themean": 88, "theconcat": 88, "thecomma": 88 }, "geometry": { "type": "Point", "coordinates": [ -137.105444,-88.260877 ] } }
{ "type": "Feature", "properties": { "thesum": 89, "themax": 89, "themin": 89, "theproduct": 89, "themean": 89, "theconcat": 89, "thecomma": 89 }, "geometry": { "type": "Point", "coordinates": [ 28.112105,24.529585 ] } }
{ "type": "Feature", "properties": { "thesum": 90, "themax": 90, "themin": 90, "theproduct": 90, "themean": 90, "theconcat": 90, "thecomma": 90 }, "geometry": { "type": "Point", "coordinates": [ -29.013503,48.460714 ] } }
{ "type": "Feature", "properties": { "thesum": 91, "themax": 91, "themin": 91, "theproduct": 91, "themean": 91, "theconcat": 91, "thecomma": 91 }, "geometry": { "type": "Point", "coordinates": [ 114.967139,84.177181 ] } }
{ "type": "Feature", "properties": { "thesum": 92, "themax": 92, "themin": 92, "theproduct": 92, "themean": 92, "theconcat": 92, "thecomma": 92 }, "geometry": { "type": "Point", "coordinates": [ -63.363328,58.006985 ] } }
{ "type": "Feature", "properties": { "thesum": 93, "themax": 93, "themin": 93, "theproduct": 93, "themean": 93, "theconcat": 93, "thecomma": 93 }, "geometry": { "type": "Point", "coordinates": [ 169.765226,17.852955 ] } }
{ "type": "Feature", "properties": { "thesum": 94, "themax": 94, "themin": 94, "theproduct": 94, "themean": 94, "theconcat": 94, "thecomma": 94 }, "geometry": { "type": "Point", "coordinates": [ -132.507302,18.086814 ] } }
{ "type": "Feature", "properties": { "thesum": 95, "themax": 95, "themin": 95, "theproduct": 95, "themean": 95, "theconcat": 95, "thecomma": 95 }, "geometry": { "type": "Point", "coordinates": [ -56.678179,-62.556708 ] } }
{ "type": "Feature", "properties": { "thesum": 96, "themax": 96, "themin": 96, "theproduct": 96, "themean": 96, "theconcat": 96, "thecomma": 96 }, "geometry": { "type": "Point", "coordinates": [ 174.715105,-76.783064 ] } }
{ "type": "Feature", "properties": { "thesum": 97, "themax": 97, "themin": 97, "theproduct": 97, "themean": 97, "theconcat": 97, "thecomma": 97 }, "geometry": { "type": "Point", "coordinates": [ -19.142632,85.007238 ] } }
{ "type": "Feature", "properties": { "thesum": 98, "themax": 98, "themin": 98, "theproduct": 98, "themean": 98, "theconcat": 98, "thecomma": 98 }, "geometry": { "type": "Point", "coordinates": [ 58.241524,86.371735 ] } }
{ "type": "Feature", "properties": { "thesum": 99, "themax": 99, "themin": 99, "theproduct": 99, "themean": 99, "theconcat": 99, "thecomma": 99 }, "geometry": { "type": "Point", "coordinates": [ -27.756470,53.336764 ] } }
{ "type": "Feature", "properties": { "thesum": 100, "themax": 100, "themin": 100, "theproduct": 100, "themean": 100, "theconcat": 100, "thecomma": 100 }, "geometry": { "type": "Point", "coordinates": [ -123.948513,-81.873970 ] } }

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,39 @@
{ "type": "Feature", "properties": { "booltype": null, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": "null", "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": "", "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": 0, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": "0", "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": false, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": "false", "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": true, "expect": true }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": 1, "expect": true }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": 0.0, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": "yes", "expect": true }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "booltype": [ 2, 3 ], "expect": true }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "stringtype": null, "expect": "null" }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "stringtype": 2, "expect": "2" }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "stringtype": 2.5, "expect": "2.5" }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "stringtype": true, "expect": "true" }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "stringtype": false, "expect": "false" }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "stringtype": "something", "expect": "something" }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "stringtype": [ 2, 3 ], "expect": "[2,3]" }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": null, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": "5", "expect": 5 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": "5.6", "expect": 6 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": 5.6, "expect": 6 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": true, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": false, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": "", "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": "yes", "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": " 3", "expect": 3 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "inttype": [ 2, 3 ], "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": null, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": "5", "expect": 5 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": "5.6", "expect": 5.6 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": 5.6, "expect": 5.6 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": true, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": false, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": "", "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": "yes", "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": " 3", "expect": 3 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }
{ "type": "Feature", "properties": { "floattype": [ 2, 3 ], "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0,0 ] } }

View File

@ -0,0 +1,94 @@
{ "type": "FeatureCollection", "properties": {
"bounds": "0.000000,0.000000,0.000000,0.000000",
"center": "0.000000,0.000000,0",
"description": "tests/attribute-type/out/-z0_-Tinttype@int_-Tfloattype@float_-Tbooltype@bool_-Tstringtype@string.json.check.mbtiles",
"format": "pbf",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 0, \"fields\": {\"booltype\": \"Boolean\", \"expect\": \"Mixed\", \"floattype\": \"Number\", \"inttype\": \"Number\", \"stringtype\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 39,\"geometry\": \"Point\",\"attributeCount\": 5,\"attributes\": [{\"attribute\": \"booltype\",\"count\": 2,\"type\": \"boolean\",\"values\": [false,true]},{\"attribute\": \"expect\",\"count\": 14,\"type\": \"mixed\",\"values\": [0,\"2\",\"2.5\",3,5,5.6,6,\"[2,3]\",\"false\",false,\"null\",\"something\",\"true\",true],\"min\": 0,\"max\": 6},{\"attribute\": \"floattype\",\"count\": 4,\"type\": \"number\",\"values\": [0,3,5,5.6],\"min\": 0,\"max\": 5.6},{\"attribute\": \"inttype\",\"count\": 5,\"type\": \"number\",\"values\": [0,0.000000,3.000000,5,6.000000],\"min\": 0,\"max\": 6},{\"attribute\": \"stringtype\",\"count\": 7,\"type\": \"string\",\"values\": [\"2\",\"2.5\",\"[2,3]\",\"false\",\"null\",\"something\",\"true\"]}]}]}}",
"maxzoom": "0",
"minzoom": "0",
"name": "tests/attribute-type/out/-z0_-Tinttype@int_-Tfloattype@float_-Tbooltype@bool_-Tstringtype@string.json.check.mbtiles",
"type": "overlay",
"version": "2"
}, "features": [
{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "booltype": false, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": false, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": false, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": false, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": false, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": false, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": false, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": true, "expect": true }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": true, "expect": true }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": false, "expect": false }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": true, "expect": true }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "booltype": true, "expect": true }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "stringtype": "null", "expect": "null" }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "stringtype": "2", "expect": "2" }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "stringtype": "2.5", "expect": "2.5" }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "stringtype": "true", "expect": "true" }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "stringtype": "false", "expect": "false" }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "stringtype": "something", "expect": "something" }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "stringtype": "[2,3]", "expect": "[2,3]" }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 5, "expect": 5 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 6, "expect": 6 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 6, "expect": 6 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 3, "expect": 3 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "inttype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 5, "expect": 5 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 5.6, "expect": 5.6 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 5.6, "expect": 5.6 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 3, "expect": 3 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
,
{ "type": "Feature", "properties": { "floattype": 0, "expect": 0 }, "geometry": { "type": "Point", "coordinates": [ 0.000000, 0.000000 ] } }
] }
] }
] }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

177
tests/coalesce-id/in.json Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,249 @@
scalerank,natscale,labelrank,featurecla,name,namepar,namealt,diffascii,nameascii,adm0cap,capalt,capin,worldcity,megacity,sov0name,sov_a3,adm0name,adm0_a3,adm1name,iso_a2,note,latitude,longitude,changed,namediff,diffnote,pop_max,pop_min,pop_other,rank_max,rank_min,geonameid,meganame,ls_name,ls_match,checkme,min_zoom
8,10,3,Admin-0 capital,Vatican City,,,0,Vatican City,1.00000000000,,,1.00000000000,0,Vatican (Holy Sea),VAT,Vatican (Holy See),VAT,Lazio,VA,,41.90001222640,12.44780838890,4.00000000000,0,Changed scale rank.,832,832,562430,2,2,6691831.00000000000,,Vatican City,1,0,7.0
7,20,0,Admin-0 capital,San Marino,,,0,San Marino,1.00000000000,,,0.00000000000,0,San Marino,SMR,San Marino,SMR,,SM,,43.91715008450,12.46667028670,0.00000000000,0,,29579,29000,0,7,7,3168070.00000000000,,San Marino,1,5,6.1
7,20,0,Admin-0 capital,Vaduz,,,0,Vaduz,1.00000000000,,,0.00000000000,0,Liechtenstein,LIE,Liechtenstein,LIE,,LI,,47.13372377430,9.51666947291,0.00000000000,0,,36281,5342,33009,7,5,3042030.00000000000,,Vaduz,1,0,6.7
6,30,8,Admin-0 capital alt,Lobamba,,,0,Lobamba,0.00000000000,1,Legislative and,0.00000000000,0,Swaziland,SWZ,Swaziland,SWZ,Manzini,SZ,,-26.46666746140,31.19999710970,4.00000000000,0,Changed scale rank.,9782,4557,0,5,4,935048.00000000000,,Lobamba,1,5,6.0
6,30,8,Admin-0 capital,Luxembourg,,,0,Luxembourg,1.00000000000,,,0.00000000000,0,Luxembourg,LUX,Luxembourg,LUX,Luxembourg,LU,,49.61166037910,6.13000280623,4.00000000000,0,Changed scale rank.,107260,76684,106219,9,8,2960316.00000000000,,Luxembourg,1,0,6.0
6,30,0,Admin-0 capital,Palikir,,,0,Palikir,1.00000000000,,,0.00000000000,0,Federated States of Micronesia,FSM,Federated States of Micronesia,FSM,,FM,,6.91664369601,158.14997432400,4.00000000000,0,Changed scale rank.,4645,4645,0,4,4,2081986.00000000000,,Palikir,1,5,6.0
6,30,0,Admin-0 capital,Majuro,,,0,Majuro,1.00000000000,,,0.00000000000,0,Marshall Islands,MHL,Marshall Islands,MHL,,MH,,7.10300431122,171.38000017600,4.00000000000,0,Changed scale rank.,25400,20500,0,7,7,2113779.00000000000,,Majuro,1,5,6.0
6,30,0,Admin-0 capital,Funafuti,,,0,Funafuti,1.00000000000,,,0.00000000000,0,Tuvalu,TUV,Tuvalu,TUV,,TV,,-8.51665199904,179.21664709400,4.00000000000,0,Population from GeoNames. Changed scale rank.,4749,4749,0,4,4,2110394.00000000000,,Funafuti,0,5,6.0
6,30,0,Admin-0 capital,Melekeok,,,0,Melekeok,1.00000000000,,,0.00000000000,0,Palau,PLW,Palau,PLW,,PW,,7.48739617298,134.62654846700,4.00000000000,0,Location adjusted. Changed scale rank.,7026,7026,0,5,5,1559804.00000000000,,Melekeok,1,5,6.0
6,30,0,Admin-0 capital alt,Bir Lehlou,,,0,Bir Lehlou,0.00000000000,1,Claimed as inte,0.00000000000,0,Western Sahara,SAH,Western Sahara,SAH,,EH,,26.11916668600,-9.65252221825,4.00000000000,1,Added place.,500,200,0,2,1,-1.00000000000,,,2,0,6.0
6,30,0,Admin-0 capital,Monaco,,,0,Monaco,1.00000000000,,,0.00000000000,0,Monaco,MCO,Monaco,MCO,,MC,,43.73964568790,7.40691317347,4.00000000000,0,Location adjusted. Changed scale rank.,36371,36371,102371,7,7,2993458.00000000000,,Monaco,1,0,5.1
6,30,0,Admin-0 capital,Tarawa,,,0,Tarawa,1.00000000000,,,0.00000000000,0,Kiribati,KIR,Kiribati,KIR,,KI,,1.33818750562,173.01757082900,4.00000000000,0,Location adjusted. Changed scale rank.,28802,22534,0,7,7,2110079.00000000000,,Tarawa,1,5,6.0
6,30,0,Admin-0 capital,Moroni,,,0,Moroni,1.00000000000,,,0.00000000000,0,Comoros,COM,Comoros,COM,,KM,,-11.70415769570,43.24024409870,4.00000000000,0,Changed scale rank.,128698,42872,0,9,7,921772.00000000000,,Moroni,1,5,6.0
6,30,0,Admin-0 capital,Andorra,,,0,Andorra,1.00000000000,,,0.00000000000,0,Andorra,AND,Andorra,AND,,AD,,42.50000144350,1.51648596051,4.00000000000,0,Changed scale rank.,53998,22256,53371,8,7,3130067.00000000000,,Andorra,1,5,6.0
4,50,8,Admin-0 capital,Port-of-Spain,,,0,Port-of-Spain,1.00000000000,,,0.00000000000,0,Trinidad and Tobago,TTO,Trinidad and Tobago,TTO,Port of Spain,TT,,10.65199708960,-61.51703088540,4.00000000000,0,Changed scale rank.,294934,49031,419082,10,7,3573890.00000000000,,Port-of-Spain,1,5,5.1
4,50,0,Admin-0 capital,Kigali,,,0,Kigali,1.00000000000,,,0.00000000000,1,Rwanda,RWA,Rwanda,RWA,Kigali City,RW,,-1.95359006868,30.06053177770,4.00000000000,0,Changed scale rank.,860000,745261,1152904,11,11,202061.00000000000,Kigali,Kigali,1,0,5.1
4,50,8,Admin-0 capital,Mbabane,,,0,Mbabane,1.00000000000,,Administrative,0.00000000000,0,Swaziland,SWZ,Swaziland,SWZ,Hhohho,SZ,,-26.31665077840,31.13333451210,4.00000000000,0,Changed scale rank.,90138,76218,89979,8,8,934985.00000000000,,Mbabane,1,0,5.6
4,50,5,Admin-0 capital,Juba,,,0,Juba,0.00000000000,,,0.00000000000,0,South Sudan,SSD,South Sudan,SSD,Central Equatoria,SS,,4.82997519828,31.58002559280,20.00000000000,0,Changed country.,111975,111975,111975,9,9,373303.00000000000,,Juba,1,0,5.1
4,50,8,Admin-0 capital alt,The Hague,,,0,The Hague,0.00000000000,1,"Official, legis",0.00000000000,0,Kingdom of the Netherlands,NLD,Netherlands,NLD,Zuid-Holland,NL,,52.08003684400,4.26996130231,0.00000000000,0,,1406000,501725,688599,12,11,2747373.00000000000,,The Hague,1,0,5.6
4,50,8,Admin-0 capital,Ljubljana,,,0,Ljubljana,1.00000000000,,,0.00000000000,0,Slovenia,SVN,Slovenia,SVN,Osrednjeslovenska,SI,,46.05528830880,14.51496903350,4.00000000000,0,Changed scale rank.,314807,255115,256316,10,10,3196359.00000000000,,Ljubljana,1,0,5.6
4,50,7,Admin-0 capital,Bratislava,,,0,Bratislava,1.00000000000,,,0.00000000000,0,Slovakia,SVK,Slovakia,SVK,Bratislavský,SK,,48.15001833000,17.11698075220,4.00000000000,0,Changed scale rank.,423737,373687,361489,10,10,3060972.00000000000,,Bratislava,1,0,5.1
4,50,8,Admin-0 capital,Doha,,,0,Doha,1.00000000000,,,0.00000000000,0,Qatar,QAT,Qatar,QAT,Ad Dawhah,QA,,25.28655600890,51.53296789430,4.00000000000,0,Location adjusted. Changed scale rank.,1450000,731310,0,12,11,290030.00000000000,,Doha,1,5,5.6
4,50,8,Admin-0 capital,Podgorica,,,0,Podgorica,1.00000000000,,,0.00000000000,0,Montenegro,MNE,Montenegro,MNE,Podgorica,ME,,42.46597251290,19.26630692410,4.00000000000,0,Location adjusted. Changed scale rank.,145850,136473,0,9,9,3193044.00000000000,,Podgorica,1,0,5.6
4,50,6,Admin-0 capital alt,Sri Jawewardenepura Kotte,,,0,Sri Jawewardenepura Kotte,0.00000000000,1,Legislative cap,0.00000000000,0,Sri Lanka,LKA,Sri Lanka,LKA,Colombo,LK,,6.90000388481,79.94999304090,4.00000000000,1,Name changed.,115826,115826,2456292,9,9,1238992.00000000000,,Kotte,1,0,5.6
4,50,5,Admin-0 capital alt,Baguio City,,,0,Baguio City,0.00000000000,1,,0.00000000000,0,Philippines,PHL,Philippines,PHL,Benguet,PH,,16.42999066060,120.56994258500,40.00000000000,0,Changed scale rank.,447824,272714,164877,10,10,1728930.00000000000,,Baguio City,1,0,5.6
4,50,5,Admin-0 capital alt,Dodoma,,,0,Dodoma,0.00000000000,1,Offical capital,0.00000000000,0,United Republic of Tanzania,TZA,Tanzania,TZA,Dodoma,TZ,,-6.18330605177,35.75000362010,4.00000000000,0,Location adjusted.,218269,180541,0,10,9,160196.00000000000,,Dodoma,1,0,5.6
4,50,7,Admin-0 capital,Bern,,,0,Bern,1.00000000000,,,0.00000000000,0,Switzerland,CHE,Switzerland,CHE,Bern,CH,,46.91668275870,7.46697546248,4.00000000000,0,Changed scale rank.,275329,121631,267814,10,9,2661552.00000000000,,Bern,1,0,5.6
4,50,5,Admin-0 capital alt,Laayoune,,,0,Laayoune,0.00000000000,1,Claimed as capi,0.00000000000,0,Morocco,MAR,Morocco,MAR,Laâyoune - Boujdour - Sakia El Hamra,MA,,27.14998231910,-13.20000594220,0.00000000000,0,,188084,176365,176365,9,9,2462881.00000000000,,Laayoune,1,0,5.6
4,50,8,Admin-0 capital,Pristina,,,0,Pristina,1.00000000000,,,0.00000000000,0,Kosovo,KOS,Kosovo,KOS,Pristina,-99,,42.66670961410,21.16598425160,4.00000000000,0,Changed scale rank.,465186,198214,261783,10,9,786714.00000000000,,Pristina,1,0,5.6
4,50,8,Admin-0 capital,Roseau,,,0,Roseau,1.00000000000,,,0.00000000000,0,Dominica,DMA,Dominica,DMA,Saint George,DM,,15.30101564430,-61.38701298180,4.00000000000,0,Changed scale rank.,23336,16571,23336,7,6,3575635.00000000000,,Roseau,1,5,5.1
4,50,8,Admin-0 capital,Djibouti,,,0,Djibouti,1.00000000000,,,0.00000000000,0,Djibouti,DJI,Djibouti,DJI,Djibouti,DJ,,11.59501446430,43.14800166710,4.00000000000,0,Changed scale rank.,923000,604013,335001,11,11,223817.00000000000,,Djibouti,1,0,5.6
4,50,6,Admin-0 capital alt,Putrajaya,,,0,Putrajaya,0.00000000000,1,Administrative,0.00000000000,0,Malaysia,MYS,Malaysia,MYS,Selangor,MY,,2.91401979462,101.70194698000,0.00000000000,0,,67964,50000,956431,8,7,6697380.00000000000,,Putrajaya,1,5,5.6
4,50,2,Admin-0 capital alt,Kyoto,,,0,Kyoto,0.00000000000,1,Official capita,0.00000000000,1,Japan,JPN,Japan,JPN,Kyoto,JP,,35.02999228820,135.74999792400,0.00000000000,0,,1805000,1459640,1827367,12,12,1857910.00000000000,Kyoto,Kyoto,1,0,5.1
4,50,8,Admin-0 capital,Banjul,,,0,Banjul,1.00000000000,,,0.00000000000,0,"Gambia, The",GMB,The Gambia,GMB,Banjul,GM,,13.45387646030,-16.59170148920,4.00000000000,0,Location adjusted. Changed scale rank.,43094,34589,581300,7,7,2413876.00000000000,,Banjul,1,0,5.6
4,50,8,Admin-0 capital,Skopje,,,0,Skopje,1.00000000000,,,0.00000000000,0,Macedonia,MKD,Macedonia,MKD,Centar,MK,,42.00000612290,21.43346146510,4.00000000000,0,Changed scale rank.,494087,474889,491890,10,10,785842.00000000000,,Skopje,1,5,5.6
4,50,8,Admin-0 capital,Bridgetown,,,0,Bridgetown,1.00000000000,,,0.00000000000,0,Barbados,BRB,Barbados,BRB,Saint Michael,BB,,13.10200258280,-59.61652673510,4.00000000000,0,Changed scale rank.,191152,96578,191814,9,8,2075807.00000000000,,Bridgetown,1,5,5.6
4,50,8,Admin-0 capital alt,Porto-Novo,,,0,Porto-Novo,0.00000000000,1,Official capita,0.00000000000,0,Benin,BEN,Benin,BEN,Ouémé,BJ,,6.48331097302,2.61662552757,0.00000000000,0,,300000,234168,806945,10,10,2392087.00000000000,,Porto-Novo,1,0,5.6
4,50,8,Admin-0 capital,Bujumbura,,,0,Bujumbura,1.00000000000,,,0.00000000000,0,Burundi,BDI,Burundi,BDI,Bujumbura Mairie,BI,,-3.37608722037,29.36000606150,4.00000000000,0,Changed scale rank.,331700,331700,1208361,10,10,425378.00000000000,,Bujumbura,1,0,5.6
4,50,0,Admin-0 capital,Kingstown,,,0,Kingstown,1.00000000000,,,0.00000000000,0,Saint Vincent and the Grenadines,VCT,Saint Vincent and the Grenadines,VCT,,VC,,13.14827882790,-61.21206242030,4.00000000000,0,Location adjusted. Changed scale rank.,49485,24518,0,7,7,4359981.00000000000,,Kingstown,1,5,5.1
4,50,0,Admin-0 capital,Castries,,,0,Castries,1.00000000000,,,0.00000000000,0,Saint Lucia,LCA,Saint Lucia,LCA,,LC,,14.00197348930,-61.00000818040,4.00000000000,0,Changed scale rank.,37963,10634,0,7,6,3028258.00000000000,,Castries,1,5,5.6
4,50,0,Admin-0 capital,Basseterre,,,0,Basseterre,1.00000000000,,,0.00000000000,0,Saint Kitts and Nevis,KNA,Saint Kitts and Nevis,KNA,,KN,,17.30203045550,-62.71700931970,4.00000000000,0,Changed scale rank.,21887,15500,21887,7,6,3575551.00000000000,,Basseterre,1,5,5.6
4,50,0,Admin-0 capital,Port Louis,,,0,Port Louis,1.00000000000,,,0.00000000000,0,Mauritius,MUS,Mauritius,MUS,,MU,,-20.16663857140,57.49999385460,4.00000000000,0,Changed scale rank.,595491,148416,304613,11,9,934154.00000000000,,Port Louis,1,5,5.6
4,50,0,Admin-0 capital,Saint George's,,,0,Saint George's,1.00000000000,,,0.00000000000,0,Grenada,GRD,Grenada,GRD,,GD,,12.05263340170,-61.74164322610,4.00000000000,0,Changed scale rank.,33734,27343,27343,7,7,3579925.00000000000,,Saint Georgee۪s,1,5,5.1
4,50,0,Admin-0 capital,Manama,,,0,Manama,1.00000000000,,,0.00000000000,0,Bahrain,BHR,Bahrain,BHR,,BH,,26.23613629050,50.58305171590,4.00000000000,0,Changed scale rank.,563920,157474,563666,11,9,290340.00000000000,,Manama,1,5,5.6
4,50,0,Admin-0 capital,Saint John's,,,0,Saint John's,1.00000000000,,,0.00000000000,0,Antigua and Barbuda,ATG,Antigua and Barbuda,ATG,,AG,,17.11803651830,-61.85003381510,4.00000000000,0,Changed scale rank.,35499,24226,0,7,7,3576022.00000000000,,Saint John's,1,5,5.1
3,110,8,Admin-0 capital,Montevideo,,,0,Montevideo,1.00000000000,,,0.00000000000,1,Uruguay,URY,Uruguay,URY,Montevideo,UY,,-34.85804156620,-56.17105228840,0.00000000000,0,,1513000,5324,1276128,12,5,5038018.00000000000,Montevideo,Montevideo,1,0,4.0
3,110,8,Admin-0 capital,Lomé,,Lome,0,Lome,1.00000000000,,,0.00000000000,1,Togo,TGO,Togo,TGO,Maritime,TG,,6.13193707166,1.22275711936,0.00000000000,0,,1452000,749700,1256715,12,11,2365267.00000000000,Lomi,Lome,1,0,5.0
3,110,7,Admin-0 capital,Tunis,,,0,Tunis,1.00000000000,,,0.00000000000,0,Tunisia,TUN,Tunisia,TUN,Tunis,TN,,36.80277813620,10.17967809920,0.00000000000,0,,2412500,728453,1675117,12,11,2464470.00000000000,,Tunis,1,0,5.0
3,110,8,Admin-0 capital,Abu Dhabi,,,0,Abu Dhabi,1.00000000000,,,0.00000000000,0,United Arab Emirates,ARE,United Arab Emirates,ARE,Abu Dhabi,AE,,24.46668357240,54.36659338260,0.00000000000,0,,603492,560230,560230,11,11,292968.00000000000,,Abu Dhabi,1,0,5.0
3,110,8,Admin-0 capital,Ashgabat,,,0,Ashgabat,1.00000000000,,,0.00000000000,0,Turkmenistan,TKM,Turkmenistan,TKM,Ahal,TM,,37.94999493310,58.38329911180,0.00000000000,0,,727700,577982,556048,11,11,162183.00000000000,,Ashgabat,1,0,5.0
3,110,6,Admin-0 capital,Lusaka,,,0,Lusaka,1.00000000000,,,0.00000000000,1,Zambia,ZMB,Zambia,ZMB,Lusaka,ZM,,-15.41664426790,28.28332759470,0.00000000000,0,,1328000,1267440,1240558,12,12,909137.00000000000,Lusaka,Lusaka,1,0,4.0
3,110,6,Admin-0 capital,Harare,,,0,Harare,1.00000000000,,,0.00000000000,1,Zimbabwe,ZWE,Zimbabwe,ZWE,Harare,ZW,,-17.81778969440,31.04470943070,0.00000000000,0,,1572000,1542813,1831877,12,12,890299.00000000000,Harare,Harare,1,0,4.0
3,110,8,Admin-0 capital,Dili,,,0,Dili,1.00000000000,,,0.00000000000,0,East Timor,TLS,East Timor,TLS,Dili,TL,,-8.55938840855,125.57945593200,0.00000000000,0,,234331,193563,55154,10,9,1645457.00000000000,,Dili,1,0,5.0
3,110,8,Admin-0 capital,Port Vila,,,0,Port Vila,1.00000000000,,,0.00000000000,0,Vanuatu,VUT,Vanuatu,VUT,Shefa,VU,,-17.73335040400,168.31664058400,0.00000000000,0,,44040,35901,7702,7,7,2135171.00000000000,,Port-Vila,1,0,4.0
3,110,8,Admin-0 capital,Tegucigalpa,,,0,Tegucigalpa,1.00000000000,,,0.00000000000,1,Honduras,HND,Honduras,HND,Francisco Morazán,HN,,14.10204490050,-87.21752933930,0.00000000000,0,,946000,850848,1014546,11,11,3600949.00000000000,Tegucigalpa,Tegucigalpa,1,0,5.0
3,110,8,Admin-0 capital,Georgetown,,,0,Georgetown,1.00000000000,,,0.00000000000,0,Guyana,GUY,Guyana,GUY,East Berbice-Corentyne,GY,,6.80197369275,-58.16702864750,0.00000000000,0,,264350,235017,264350,10,10,3378644.00000000000,,Georgetown1,1,5,4.0
3,110,8,Admin-0 capital,Reykjavík,,,1,Reykjavik,1.00000000000,,,0.00000000000,0,Iceland,ISL,Iceland,ISL,Suðurnes,IS,,64.15002361970,-21.95001448720,0.00000000000,0,,166212,113906,160116,9,9,3413829.00000000000,,Reykjavik,1,0,3.7
3,110,8,Admin-0 capital,Port-au-Prince,,,0,Port-au-Prince,1.00000000000,,,0.00000000000,1,Haiti,HTI,Haiti,HTI,Ouest,HT,,18.54102459610,-72.33603458830,0.00000000000,0,,1998000,1234742,2385397,12,12,3718426.00000000000,Port-au-Prince,Port-au-Prince,1,0,5.0
3,110,5,Admin-0 capital,Kampala,,,0,Kampala,1.00000000000,,,0.00000000000,1,Uganda,UGA,Uganda,UGA,Kampala,UG,,0.31665895477,32.58332352570,0.00000000000,0,,1420000,1353189,2153702,12,12,232422.00000000000,Kampala,Kampala,1,0,5.0
3,110,8,Admin-0 capital,Paramaribo,,,0,Paramaribo,1.00000000000,,,0.00000000000,0,Suriname,SUR,Suriname,SUR,Paramaribo,SR,,5.83503012992,-55.16703088540,0.00000000000,0,,254169,223757,248161,10,10,3383330.00000000000,,Paramaribo,1,5,5.0
3,110,6,Admin-0 capital,Niamey,,,0,Niamey,1.00000000000,,,0.00000000000,1,Niger,NER,Niger,NER,Niamey,NE,,13.51670595190,2.11665604514,0.00000000000,0,,915000,742791,715325,11,11,2440485.00000000000,Niamey,Niamey,1,0,5.0
3,110,8,Admin-0 capital,Dushanbe,,,0,Dushanbe,1.00000000000,,,0.00000000000,0,Tajikistan,TJK,Tajikistan,TJK,Tadzhikistan Territories,TJ,,38.56003521630,68.77387935270,0.00000000000,0,,1086244,679400,1081361,12,11,1221874.00000000000,,Dushanbe,1,0,5.0
3,110,7,Admin-0 capital,Asunción,,Asuncion,1,Asuncion,1.00000000000,,,0.00000000000,1,Paraguay,PRY,Paraguay,PRY,Asunción,PY,,-25.29640297570,-57.64150516930,0.00000000000,0,,1870000,11693,636771,12,6,1730025.00000000000,Asuncian,Asuncion,1,5,4.0
3,110,8,Admin-0 capital,Managua,,,0,Managua,1.00000000000,,,0.00000000000,1,Nicaragua,NIC,Nicaragua,NIC,Managua,NI,,12.15301658010,-86.26849166030,0.00000000000,0,,920000,920000,1088194,11,11,3617763.00000000000,Managua,Managua,1,0,5.0
3,110,8,Admin-0 capital,Freetown,,,0,Freetown,1.00000000000,,,0.00000000000,1,Sierra Leone,SLE,Sierra Leone,SLE,Western,SL,,8.47001141249,-13.23421574040,0.00000000000,0,,827000,13768,1074640,11,6,2408770.00000000000,Freetown,Freetown,1,0,5.0
3,110,2,Admin-0 capital,Islamabad,,,0,Islamabad,1.00000000000,,,0.00000000000,1,Pakistan,PAK,Pakistan,PAK,F.C.T.,PK,,33.69999595030,73.16663447970,0.00000000000,0,,780000,601600,893673,11,11,1176615.00000000000,Islamabad,Islamabad,1,0,5.0
3,110,6,Admin-0 capital,Kathmandu,,,0,Kathmandu,1.00000000000,,,0.00000000000,1,Nepal,NPL,Nepal,NPL,Bhaktapur,NP,,27.71669191390,85.31664221080,0.00000000000,0,,895000,895000,1099610,11,11,1283240.00000000000,Kathmandu,Kathmandu,1,0,5.0
3,110,3,Admin-0 capital,Bloemfontein,,,0,Bloemfontein,1.00000000000,,Judicial capita,0.00000000000,0,South Africa,ZAF,South Africa,ZAF,Orange Free State,ZA,,-29.11999387740,26.22991288120,4.00000000000,0,Changed scale rank.,463064,456669,456513,10,10,1018725.00000000000,,Bloemfontein,1,0,5.0
3,110,3,Admin-0 capital,Pretoria,,,0,Pretoria,1.00000000000,,Administrative,0.00000000000,1,South Africa,ZAF,South Africa,ZAF,Gauteng,ZA,,-25.70692055380,28.22942907580,0.00000000000,0,,1338000,1338000,1443084,12,12,964137.00000000000,Pretoria,Pretoria,1,0,5.0
3,110,8,Admin-0 capital,Port Moresby,,,0,Port Moresby,1.00000000000,,,0.00000000000,0,Papua New Guinea,PNG,Papua New Guinea,PNG,Central,PG,,-9.46470782587,147.19250362100,0.00000000000,0,,283733,251136,251304,10,10,2088122.00000000000,,Port Moresby,1,0,4.0
3,110,8,Admin-0 capital,Honiara,,,0,Honiara,1.00000000000,,,0.00000000000,0,Solomon Islands,SLB,Solomon Islands,SLB,Guadalcanal,SB,,-9.43799429509,159.94976573400,0.00000000000,0,,76328,56298,76328,8,8,2108502.00000000000,,Honiara,1,0,5.0
3,110,8,Admin-0 capital,Panama City,,Ciudad de Panam,0,Panama City,1.00000000000,,,0.00000000000,1,Panama,PAN,Panama,PAN,Panama,PA,,8.96801719048,-79.53303715180,0.00000000000,0,,1281000,408168,939725,12,10,3703443.00000000000,Ciudad de Panam,Panama City1,1,0,5.0
3,110,5,Admin-0 capital,Rabat,,,0,Rabat,1.00000000000,,,0.00000000000,1,Morocco,MAR,Morocco,MAR,Rabat - Salé - Zemmour - Zaer,MA,,34.02529909160,-6.83613082013,0.00000000000,0,,1705000,1655753,2029349,12,12,2538475.00000000000,Rabat,Rabat,1,0,5.0
3,110,8,Admin-0 capital,Chișinău,,,0,Chisinau,1.00000000000,,,0.00000000000,0,Moldova,MDA,Moldova,MDA,Chisinau,MD,,47.00502361970,28.85771113970,0.00000000000,0,,688134,635994,664472,11,11,618426.00000000000,,Chisinau,1,5,5.0
3,110,6,Admin-0 capital,Maputo,,,0,Maputo,1.00000000000,,,0.00000000000,1,Mozambique,MOZ,Mozambique,MOZ,Maputo,MZ,,-25.95527748740,32.58916296260,0.00000000000,0,,1446000,1191613,1365454,12,12,1040652.00000000000,Maputo,Maputo,1,0,5.0
3,110,8,Admin-0 capital,Mogadishu,,Muqdisho,0,Mogadishu,1.00000000000,,,0.00000000000,1,Somalia,SOM,Somalia,SOM,Banaadir,SO,,2.06668133433,45.36667761110,0.00000000000,0,,1100000,875388,849392,12,11,53654.00000000000,Muqdisho,Mogadishu,1,5,4.0
3,110,8,Admin-0 capital,Muscat,,,0,Muscat,1.00000000000,,,0.00000000000,0,Oman,OMN,Oman,OMN,Muscat,OM,,23.61332480770,58.59331213260,0.00000000000,0,,734697,586861,586861,11,11,287286.00000000000,,Muscat,1,0,5.0
3,110,6,Admin-0 capital,Colombo,,,0,Colombo,1.00000000000,,"De facto, admin",0.00000000000,0,Sri Lanka,LKA,Sri Lanka,LKA,Colombo,LK,,6.93196575818,79.85775060930,0.00000000000,0,,217000,217000,2490974,10,10,3465927.00000000000,,Colombo,1,5,5.0
3,110,7,Admin-0 capital,Ulaanbaatar,,,0,Ulaanbaatar,1.00000000000,,,0.00000000000,1,Mongolia,MNG,Mongolia,MNG,Ulaanbaatar,MN,,47.91667339990,106.91661576200,0.00000000000,0,,885000,769612,765359,11,11,2028462.00000000000,Ulaanbaatar,Ulaanbaatar,1,0,4.0
3,110,6,Admin-0 capital,Windhoek,,,0,Windhoek,1.00000000000,,,0.00000000000,0,Namibia,NAM,Namibia,NAM,Khomas,NA,,-22.57000608440,17.08354610050,0.00000000000,0,,268132,262796,262796,10,10,3352136.00000000000,,Windhoek,1,0,5.0
3,110,2,Admin-0 capital,Abuja,,,0,Abuja,1.00000000000,,Official and ad,0.00000000000,1,Nigeria,NGA,Nigeria,NGA,Federal Capital Territory,NG,,9.08333314914,7.53332800155,4.00000000000,0,Changed scale rank.,1576000,162135,0,12,9,2322794.00000000000,Abuja,Abuja,1,5,4.0
3,110,8,Admin-0 capital,Bissau,,,0,Bissau,1.00000000000,,,0.00000000000,0,Guinea Bissau,GNB,Guinea Bissau,GNB,Bissau,GW,,11.86502382300,-15.59836084130,0.00000000000,0,,403339,388028,403339,10,10,2374775.00000000000,,Bissau,1,0,5.0
3,110,8,Admin-0 capital,Amman,,,0,Amman,1.00000000000,,,0.00000000000,1,Jordan,JOR,Jordan,JOR,Amman,JO,,31.95002524720,35.93329992550,0.00000000000,0,,1060000,1060000,2633729,12,12,250441.00000000000,Amman,Amman,1,0,5.0
3,110,8,Admin-0 capital,Vilnius,,,0,Vilnius,1.00000000000,,,0.00000000000,0,Lithuania,LTU,Lithuania,LTU,Vilniaus,LT,,54.68336631180,25.31663529330,0.00000000000,0,,542366,507029,494356,11,11,593116.00000000000,,Vilnius,1,0,5.0
3,110,8,Admin-0 capital,Riga,,,0,Riga,1.00000000000,,,0.00000000000,0,Latvia,LVA,Latvia,LVA,Riga,LV,,56.95002382320,24.09996537140,0.00000000000,0,,742572,705033,0,11,11,456172.00000000000,,Riga,1,0,4.0
3,110,8,Admin-0 capital,Bishkek,,,0,Bishkek,1.00000000000,,,0.00000000000,1,Kyrgyzstan,KGZ,Kyrgyzstan,KGZ,Bishkek,KG,,42.87307944650,74.58520422250,0.00000000000,0,,837000,804212,781714,11,11,1528675.00000000000,Bishkek,Bishkek,1,5,5.0
3,110,8,Admin-0 capital,Maseru,,,0,Maseru,1.00000000000,,,0.00000000000,0,Lesotho,LSO,Lesotho,LSO,Maseru,LS,,-29.31667437870,27.48327307000,0.00000000000,0,,361324,118355,356225,10,9,932505.00000000000,,Maseru,1,0,5.0
3,110,6,Admin-0 capital,Antananarivo,,,0,Antananarivo,1.00000000000,,,0.00000000000,1,Madagascar,MDG,Madagascar,MDG,Antananarivo,MG,,-18.91663735060,47.51662390010,0.00000000000,0,,1697000,1391433,1844658,12,12,1070940.00000000000,Antananarivo,Antananarivo,1,0,5.0
3,110,7,Admin-0 capital,Quito,,,0,Quito,1.00000000000,,,0.00000000000,1,Ecuador,ECU,Ecuador,ECU,Pichincha,EC,,-0.21498818065,-78.50005110850,0.00000000000,0,,1701000,1399814,1435528,12,12,3652462.00000000000,Quito,Quito,1,0,4.0
3,110,8,Admin-0 capital,San José,,San Jose,1,San Jose,1.00000000000,,,0.00000000000,1,Costa Rica,CRI,Costa Rica,CRI,San José,CR,,9.93501242974,-84.08405135270,0.00000000000,0,,1284000,1724,1434681,12,3,3669623.00000000000,San Josi,San Jose1,1,5,5.0
3,110,8,Admin-0 capital,San Salvador,,,0,San Salvador,1.00000000000,,,0.00000000000,1,El Salvador,SLV,El Salvador,SLV,San Salvador,SV,,13.71000164690,-89.20304122080,0.00000000000,0,,1433000,2807,2139587,12,4,1690681.00000000000,San Salvador,San Salvador,1,5,5.0
3,110,8,Admin-0 capital,Kingston,,,0,Kingston,1.00000000000,,,0.00000000000,0,Jamaica,JAM,Jamaica,JAM,Kingston,JM,,17.97707662380,-76.76743371370,4.00000000000,0,Location adjusted.,937700,664973,18171,11,11,3489854.00000000000,,Kingston1,1,5,5.0
3,110,7,Admin-0 capital,Ndjamena,,N'Djamnna,0,Ndjamena,1.00000000000,,,0.00000000000,1,Chad,TCD,Chad,TCD,Hadjer-Lamis,TD,,12.11309653620,15.04914831410,0.00000000000,0,,989000,681387,686347,11,11,2427123.00000000000,N'Djam-na,Ndjamena,1,0,5.0
3,110,8,Admin-0 capital,Malabo,,,0,Malabo,1.00000000000,,,0.00000000000,0,Equatorial Guinea,GNQ,Equatorial Guinea,GNQ,Bioko Norte,GQ,,3.75001527803,8.78327754582,4.00000000000,0,Location adjusted.,155963,155963,0,9,9,2309527.00000000000,,Malabo,1,0,5.0
3,110,8,Admin-0 capital,Asmara,,,0,Asmara,1.00000000000,,,0.00000000000,0,Eritrea,ERI,Eritrea,ERI,Anseba,ER,,15.33333925270,38.93332352580,0.00000000000,0,,620802,563930,587094,11,11,343300.00000000000,,Asmara,1,0,5.0
3,110,8,Admin-0 capital,Zagreb,,,0,Zagreb,1.00000000000,,,0.00000000000,0,Croatia,HRV,Croatia,HRV,Grad Zagreb,HR,,45.80000673330,15.99999466820,0.00000000000,0,,722526,698966,690638,11,11,3186886.00000000000,,Zagreb,1,0,5.0
3,110,8,Admin-0 capital,Tallinn,,,0,Tallinn,1.00000000000,,,0.00000000000,0,Estonia,EST,Estonia,EST,Harju,EE,,59.43387737950,24.72804072950,0.00000000000,0,,394024,340027,317949,10,10,588409.00000000000,,Tallinn,1,0,5.0
3,110,8,Admin-0 capital,Lilongwe,,,0,Lilongwe,1.00000000000,,,0.00000000000,0,Malawi,MWI,Malawi,MWI,Lilongwe,MW,,-13.98329506550,33.78330196000,0.00000000000,0,,646750,646750,1061388,11,11,927967.00000000000,,Lilongwe,1,0,5.0
3,110,8,Admin-0 capital,Guatemala,,Ciudad de Guatemala (Guatemala City),0,Guatemala,1.00000000000,,,0.00000000000,1,Guatemala,GTM,Guatemala,GTM,Guatemala,GT,,14.62113466280,-90.52696557790,0.00000000000,0,,1024000,994938,2391150,12,11,3598132.00000000000,Ciudad de Guatemala (Guatemala City),Guatemala,1,0,5.0
3,110,7,Admin-0 capital,Libreville,,,0,Libreville,1.00000000000,,,0.00000000000,0,Gabon,GAB,Gabon,GAB,Estuaire,GA,,0.38538860972,9.45796504582,0.00000000000,0,,578156,483355,483522,11,10,2399697.00000000000,,Libreville,1,0,5.0
3,110,8,Admin-0 capital,Suva,,,0,Suva,1.00000000000,,,0.00000000000,0,Fiji,FJI,Fiji,FJI,Central,FJ,,-18.13301593140,178.44170731500,4.00000000000,0,Location adjusted.,175399,88271,0,9,8,2198148.00000000000,,Suva,1,0,5.0
3,110,3,Admin-0 capital alt,Valparaíso,,Valparaiso,1,Valparaiso,0.00000000000,1,Legislative cap,0.00000000000,1,Chile,CHL,Chile,CHL,Valparaíso,CL,,-33.04776446660,-71.62101363290,4.00000000000,0,Changed scale rank.,854000,15938,130815,11,6,3445575.00000000000,Valpara so,Valparaiso2,1,0,5.0
3,110,7,Admin-0 capital,Nouakchott,,,0,Nouakchott,1.00000000000,,,0.00000000000,0,Mauritania,MRT,Mauritania,MRT,Nouakchott,MR,,18.08642702120,-15.97534041490,0.00000000000,0,,742144,661400,742144,11,11,2377450.00000000000,,Nouakchott,1,0,5.0
3,110,6,Admin-0 capital,Bamako,,,0,Bamako,1.00000000000,,,0.00000000000,1,Mali,MLI,Mali,MLI,Bamako,ML,,12.65001466770,-8.00003910464,0.00000000000,0,,1494000,1297281,1301407,12,12,2460596.00000000000,Bamako,Bamako,1,0,4.0
3,110,8,Admin-0 capital,Beirut,,Bayrut,0,Beirut,1.00000000000,,,0.00000000000,1,Lebanon,LBN,Lebanon,LBN,Beirut,LB,,33.87197511700,35.50970821000,0.00000000000,0,,1846000,1712125,1661980,12,12,276781.00000000000,Bayrut,Beirut,1,5,5.0
3,110,8,Admin-0 capital,Tbilisi,,T'Bilisi,0,Tbilisi,1.00000000000,,,0.00000000000,1,Georgia,GEO,Georgia,GEO,Tbilisi,GE,,41.72500998850,44.79079544960,0.00000000000,0,,1100000,1005257,977179,12,12,611717.00000000000,Tbilisi,Tbilisi,1,0,5.0
3,110,6,Admin-0 capital,Astana,,,0,Astana,1.00000000000,,,0.00000000000,0,Kazakhstan,KAZ,Kazakhstan,KAZ,Aqmola,KZ,,51.18112530430,71.42777420950,0.00000000000,0,,345604,325021,317445,10,10,1526273.00000000000,,Astana,1,0,4.0
3,110,8,Admin-0 capital,Vientiane,,,0,Vientiane,1.00000000000,,,0.00000000000,0,Laos,LAO,Laos,LAO,Vientiane [prefecture],LA,,17.96669272760,102.59998002000,0.00000000000,0,,754000,570348,469811,11,11,1651944.00000000000,,Vientiane,1,0,5.0
3,110,7,Admin-0 capital,Brazzaville,,,0,Brazzaville,1.00000000000,,,0.00000000000,1,Congo (Brazzaville),COG,Congo (Brazzaville),COG,Pool,CG,,-4.25918577181,15.28468949250,0.00000000000,0,,1355000,1163890,1174778,12,12,2260535.00000000000,Brazzaville,Brazzaville,1,0,5.0
3,110,8,Admin-0 capital,Conakry,,,0,Conakry,1.00000000000,,,0.00000000000,1,Guinea,GIN,Guinea,GIN,Conakry,GN,,9.53152284641,-13.68023502750,0.00000000000,0,,1494000,1494000,1498020,12,12,2422465.00000000000,Conakry,Conakry,1,5,5.0
3,110,8,Admin-0 capital,Yamoussoukro,,,0,Yamoussoukro,1.00000000000,1,Official capita,0.00000000000,0,Ivory Coast,CIV,Ivory Coast,CIV,Lacs,CI,,6.81838096000,-5.27550256491,4.00000000000,0,Changed scale rank.,206499,194530,206499,10,9,2279755.00000000000,,Yamoussoukro,1,0,5.0
3,110,2,Admin-0 capital,Ottawa,,Ottawa-Gatineau,0,Ottawa,1.00000000000,,,0.00000000000,1,Canada,CAN,Canada,CAN,Ontario,CA,,45.41669679670,-75.70001530120,0.00000000000,0,,1145000,812129,872781,12,11,6094817.00000000000,Ottawa-Gatineau,Ottawa,1,5,3.0
3,110,8,Admin-0 capital,Belgrade,Beograd,,0,Belgrade,1.00000000000,,,0.00000000000,1,Republic of Serbia,SRB,Serbia,SRB,Grad Beograd,RS,,44.81864544580,20.46799068060,0.00000000000,0,,1099000,1099000,1271541,12,12,792680.00000000000,Beograd,Belgrade,1,0,5.0
3,110,8,Admin-0 capital,Bandar Seri Begawan,,,0,Bandar Seri Begawan,1.00000000000,,,0.00000000000,0,Brunei,BRN,Brunei,BRN,Brunei and Muara,BN,,4.88333111462,114.93328405700,0.00000000000,0,,296500,140000,222513,10,9,1820906.00000000000,,Bandar Seri Begawan,1,0,5.0
3,110,6,Admin-0 capital,Sucre,,,0,Sucre,1.00000000000,,Official (const,0.00000000000,0,Bolivia,BOL,Bolivia,BOL,Chuquisaca,BO,,-19.04097084670,-65.25951562670,0.00000000000,0,,224838,221736,221736,10,10,3903987.00000000000,,Sucre,1,0,4.7
3,110,8,Admin-0 capital,Belmopan,,,0,Belmopan,1.00000000000,,,0.00000000000,0,Belize,BLZ,Belize,BLZ,Cayo,BZ,,17.25203350720,-88.76707299980,0.00000000000,0,,15220,13381,15220,6,6,3582672.00000000000,,Belmopan,1,0,5.0
3,110,7,Admin-0 capital,Bangui,,,0,Bangui,1.00000000000,,,0.00000000000,0,Central African Republic,CAF,Central African Republic,CAF,Bangui,CF,,4.36664430635,18.55828812530,0.00000000000,0,,831925,622771,782274,11,11,2389853.00000000000,,Bangui,1,0,5.0
3,110,6,Admin-0 capital,Yaounde,,Yaounde,0,Yaounde,1.00000000000,,,0.00000000000,1,Cameroon,CMR,Cameroon,CMR,Centre,CM,,3.86670066214,11.51665075550,0.00000000000,0,,1611000,1060587,1060747,12,12,2220957.00000000000,Yaound,Yaounde,1,0,5.0
3,110,8,Admin-0 capital,Tirana,,,0,Tirana,1.00000000000,,,0.00000000000,0,Albania,ALB,Albania,ALB,Durrës,AL,,41.32754070950,19.81888301460,0.00000000000,0,,895350,421286,517792,11,10,3183875.00000000000,,Tirana,1,0,5.0
3,110,8,Admin-0 capital,Yerevan,,,0,Yerevan,1.00000000000,,,0.00000000000,1,Armenia,ARM,Armenia,ARM,Erevan,AM,,40.18115073550,44.51355139040,0.00000000000,0,,1102000,1093485,1154748,12,12,616052.00000000000,Yerevan,Yerevan,1,5,5.0
3,110,8,Admin-0 capital,Baku,,,0,Baku,1.00000000000,,,0.00000000000,1,Azerbaijan,AZE,Azerbaijan,AZE,Baki,AZ,,40.39527203270,49.86221716190,0.00000000000,0,,2122300,1892000,1518801,12,12,587084.00000000000,Baku,Baku,1,0,5.0
3,110,8,Admin-0 capital,Phnom Penh,,Phnum Penh,0,Phnom Penh,1.00000000000,,,0.00000000000,1,Cambodia,KHM,Cambodia,KHM,Phnom Penh,KH,,11.55003012990,104.91663448000,0.00000000000,0,,1466000,1466000,1604086,12,12,1821306.00000000000,Phnum Penh,Phnom Penh,1,5,5.0
3,110,6,Admin-0 capital,La Paz,,,0,La Paz,1.00000000000,,Administrative,0.00000000000,1,Bolivia,BOL,Bolivia,BOL,La Paz,BO,,-16.49797361370,-68.14998519050,0.00000000000,0,,1590000,812799,4400,12,11,3911925.00000000000,La Paz,La Paz3,1,0,4.0
3,110,8,Admin-0 capital,Cotonou,,,0,Cotonou,1.00000000000,,"De facto, admin",0.00000000000,1,Benin,BEN,Benin,BEN,Ouémé,BJ,,6.40000856417,2.51999059918,0.00000000000,0,,762000,690584,1060640,11,11,2394819.00000000000,Cotonou,Cotonou,1,0,5.0
3,110,7,Admin-0 capital,Sofia,,,0,Sofia,1.00000000000,,,0.00000000000,1,Bulgaria,BGR,Bulgaria,BGR,Grad Sofiya,BG,,42.68334942530,23.31665401070,0.00000000000,0,,1185000,874827,871735,12,11,727011.00000000000,Sofia,Sofia,1,0,5.0
3,110,6,Admin-0 capital,Minsk,,,0,Minsk,1.00000000000,,,0.00000000000,1,Belarus,BLR,Belarus,BLR,Minsk,BY,,53.89997743640,27.56662715530,0.00000000000,0,,1805000,1577138,1557919,12,12,625144.00000000000,Minsk,Minsk,1,0,5.0
3,110,8,Admin-0 capital,Thimphu,,,0,Thimphu,1.00000000000,,,0.00000000000,0,Bhutan,BTN,Bhutan,BTN,Thimphu,BT,,27.47298585920,89.63901403700,4.00000000000,0,Location adjusted.,98676,79185,0,8,8,1252416.00000000000,,Thimphu,1,0,5.0
3,110,7,Admin-0 capital,Gaborone,,,0,Gaborone,1.00000000000,,,0.00000000000,0,Botswana,BWA,Botswana,BWA,South-East,BW,,-24.64631345740,25.91194779330,0.00000000000,0,,208411,159243,158896,10,9,933773.00000000000,,Gaborone,1,0,5.0
3,110,3,Admin-0 capital,Canberra,,,0,Canberra,1.00000000000,,,0.00000000000,0,Australia,AUS,Australia,AUS,Australian Capital Territory,AU,,-35.28302854540,149.12902624400,4.00000000000,0,Location adjusted.,327700,234032,0,10,10,2172517.00000000000,,Canberra,1,0,4.0
3,110,8,Admin-0 capital,Ouagadougou,,,0,Ouagadougou,1.00000000000,,,0.00000000000,1,Burkina Faso,BFA,Burkina Faso,BFA,Kadiogo,BF,,12.37031597790,-1.52472375630,0.00000000000,0,,1149000,835457,713874,12,11,2357048.00000000000,Ouagadougou,Ouagadougou,1,0,5.0
3,110,8,Admin-0 capital,Sarajevo,,,0,Sarajevo,1.00000000000,,,0.00000000000,0,Bosnia and Herzegovina,BIH,Bosnia and Herzegovina,BIH,Sarajevo,BA,,43.85002239900,18.38300166700,0.00000000000,0,,696731,628902,627065,11,11,3191281.00000000000,,Sarajevo,1,5,5.0
3,110,5,Admin-0 capital,Naypyidaw,,Nay Pyi Taw,0,Naypyidaw,1.00000000000,,,0.00000000000,1,Myanmar,MMR,Myanmar,MMR,Mandalay,MM,,19.76655702610,96.11861852920,4.00000000000,0,Location adjusted.,930000,194824,0,11,9,6611854.00000000000,Nay Pyi Taw,Naypyidaw,1,0,5.0
3,110,0,Admin-0 capital,Nukualofa,,,0,Nukualofa,1.00000000000,,,0.00000000000,0,Tonga,TON,Tonga,TON,,TO,,-21.13851235670,-175.22056447800,4.00000000000,0,Location adjusted.,42620,23658,42620,7,7,4032402.00000000000,,Nukualofa,1,5,5.0
3,110,0,Admin-0 capital,Hargeysa,,,0,Hargeysa,1.00000000000,,,0.00000000000,0,Somaliland,SOL,Somaliland,SOL,,-99,,9.56002239882,44.06531001670,4.00000000000,0,Changed scale rank.,477876,247018,247018,10,10,57289.00000000000,,Hargeysa,1,5,5.0
3,110,0,Admin-0 capital,Victoria,,,0,Victoria,1.00000000000,,,0.00000000000,0,Seychelles,SYC,Seychelles,SYC,,SC,,-4.61663165397,55.44998978560,0.00000000000,0,,33576,22881,33737,7,7,241131.00000000000,,Victoria4,1,5,5.0
3,110,0,Admin-0 capital,São Tomé,,,1,Sao Tome,1.00000000000,,,0.00000000000,0,Sao Tome and Principe,STP,Sao Tome and Principe,STP,,ST,,0.33340211883,6.73332515323,0.00000000000,0,,88219,56166,88219,8,8,3388092.00000000000,,Sao Tome,1,5,5.0
3,110,0,Admin-0 capital,Apia,,,0,Apia,1.00000000000,,,0.00000000000,0,Samoa,WSM,Samoa,WSM,,WS,,-13.84154504240,-171.73864160900,4.00000000000,0,Location adjusted.,61916,37708,0,8,7,3689793.00000000000,,Apia,1,5,5.0
3,110,0,Admin-0 capital,Valletta,,,0,Valletta,1.00000000000,,,0.00000000000,0,Malta,MLT,Malta,MLT,,MT,,35.89973248190,14.51471065130,0.00000000000,0,,368250,6966,336174,10,5,2562305.00000000000,,Valletta,1,5,5.0
3,110,0,Admin-0 capital,Malé,,,1,Male,1.00000000000,,,0.00000000000,0,Maldives,MDV,Maldives,MDV,,MV,,4.16670818981,73.49994746800,0.00000000000,0,,112927,103693,0,9,9,3174186.00000000000,,Male,1,5,5.0
3,110,0,Admin-0 capital,Jerusalem,,,0,Jerusalem,1.00000000000,,De facto capita,0.00000000000,0,Israel,IS1,Israel,ISR,Jerusalem,IL,,31.77840781560,35.20662593460,0.00000000000,0,,1029300,801000,1072567,12,11,281184.00000000000,,Jerusalem,1,0,3.7
3,110,0,Admin-0 capital,Praia,,,0,Praia,1.00000000000,,,0.00000000000,0,Cape Verde,CPV,Cape Verde,CPV,,CV,,14.91669801730,-23.51668888500,0.00000000000,0,,113364,88859,89205,9,8,3374333.00000000000,,Praia,1,5,5.0
3,110,0,Admin-0 capital,Nassau,,,0,Nassau,1.00000000000,,,0.00000000000,0,"Bahamas, The",BHS,The Bahamas,BHS,,BS,,25.08339011540,-77.35004378430,0.00000000000,0,,227940,160966,0,10,9,3571824.00000000000,,Nassau,1,5,5.0
3,110,0,Admin-0 capital,Nicosia,,,0,Nicosia,1.00000000000,,Capital of both,0.00000000000,0,Cyprus,CYP,Cyprus,CYP,,CY,,35.16667645170,33.36663488640,0.00000000000,0,,224300,200452,222985,10,10,146268.00000000000,,Nicosia,1,5,5.0
3,110,8,Admin-0 capital,Wellington,,,0,Wellington,1.00000000000,,,0.00000000000,0,New Zealand,NZL,New Zealand,NZL,Manawatu-Wanganui,NZ,Wellington metropolitan area,-41.29998785369,174.78326585928,0.00000000000,0,,393400,393400,0,10,9,2144168.00000000000,,Wellington,1,0,4.0
2,200,5,Admin-0 capital,Hanoi,,H,0,Hanoi,1.00000000000,,,0.00000000000,1,Vietnam,VNM,Vietnam,VNM,Thái Nguyên,VN,,21.03332724910,105.85001420000,5.00000000000,0,Changed scale rank.,4378000,1431270,5466347,12,12,1581130.00000000000,Hh Noi,Hanoi,1,0,4.0
2,200,5,Admin-0 capital,Ankara,,,0,Ankara,1.00000000000,,,0.00000000000,1,Turkey,TUR,Turkey,TUR,Ankara,TR,,39.92723858550,32.86439164100,5.00000000000,0,Changed scale rank.,3716000,3307379,3267576,12,12,323786.00000000000,Ankara,Ankara,1,0,4.0
2,200,6,Admin-0 capital,Budapest,,,0,Budapest,1.00000000000,,,1.00000000000,1,Hungary,HUN,Hungary,HUN,Budapest,HU,,47.50000632640,19.08332067740,4.00000000000,0,Changed scale rank.,1679000,1679000,1718895,12,12,3054643.00000000000,Budapest,Budapest,1,0,4.7
2,200,6,Admin-0 capital,Sanaa,,Sana'a',0,Sanaa,1.00000000000,,,0.00000000000,1,Yemen,YEM,Yemen,YEM,Amanat Al Asimah,YE,,15.35473329570,44.20659338260,5.00000000000,0,Changed scale rank.,2008000,1835853,1742507,12,12,71137.00000000000,Sana'a',Sanaa,1,0,4.0
2,200,6,Admin-0 capital,Bucharest,Bucuresti,,0,Bucharest,1.00000000000,,,1.00000000000,1,Romania,ROU,Romania,ROU,Bucharest,RO,,44.43337180490,26.09994665400,4.00000000000,0,Changed scale rank.,1942000,1742194,1636574,12,12,683506.00000000000,Bucuresti,Bucharest,1,0,4.0
2,200,6,Admin-0 capital,Damascus,,Dimashq,0,Damascus,1.00000000000,,,0.00000000000,1,Syria,SYR,Syria,SYR,Damascus,SY,,33.50003399560,36.29999588900,5.00000000000,0,Changed scale rank.,2466000,2466000,3344577,12,12,170654.00000000000,Dimashq,Damascus,1,0,4.7
2,200,6,Admin-0 capital,Lisbon,Lisboa,,0,Lisbon,1.00000000000,,,1.00000000000,1,Portugal,PRT,Portugal,PRT,Lisboa,PT,,38.72272287790,-9.14486630549,4.00000000000,0,Location adjusted. Changed scale rank.,2812000,517802,1795582,12,11,2267057.00000000000,Lisboa,Lisbon,1,0,4.0
2,200,5,Admin-0 capital,Khartoum,,Al-Khartum,0,Khartoum,1.00000000000,,,0.00000000000,1,Sudan,SDN,Sudan,SDN,Khartoum,SD,,15.58807822570,32.53417923860,5.00000000000,0,Changed scale rank.,4754000,1974647,2325931,12,12,379252.00000000000,Al-Khartum,Khartoum,1,0,4.0
2,200,7,Admin-0 capital,Oslo,,,0,Oslo,1.00000000000,,,1.00000000000,1,Kingdom of Norway,NOR,Norway,NOR,Oslo,NO,,59.91669028640,10.74997920600,4.00000000000,0,Changed scale rank.,835000,580000,701804,11,11,3143244.00000000000,Oslo,Oslo,1,0,4.0
2,200,5,Admin-0 capital,Warsaw,Warszawa,,0,Warsaw,1.00000000000,,,1.00000000000,1,Poland,POL,Poland,POL,Masovian,PL,,52.25000062980,20.99999955110,4.00000000000,0,Changed scale rank.,1707000,1702139,2012431,12,12,756135.00000000000,Warszawa,Warsaw,1,0,4.0
2,200,6,Admin-0 capital,Pyongyang,,P'yongyang,0,Pyongyang,1.00000000000,,,0.00000000000,1,"Korea, North",PRK,North Korea,PRK,P'yongyang,KP,,39.01943869940,125.75469071400,5.00000000000,0,Changed scale rank.,3300000,2498797,2483216,12,12,1871859.00000000000,P'yongyang,Pyongyang,1,0,4.7
2,200,5,Admin-0 capital,Dar es Salaam,,,0,Dar es Salaam,1.00000000000,,De facto capita,0.00000000000,1,United Republic of Tanzania,TZA,Tanzania,TZA,Dar-Es-Salaam,TZ,,-6.80001259474,39.26834183630,5.00000000000,0,Changed scale rank.,2930000,2698652,2757835,12,12,160263.00000000000,Dar es Salaam,Dar es Salaam,1,0,4.0
2,200,8,Admin-0 capital,Dublin,,,0,Dublin,1.00000000000,,,1.00000000000,1,Ireland,IRL,Ireland,IRL,Dublin,IE,,53.33306113600,-6.24890568178,0.00000000000,0,,1059000,968976,22478,12,11,2964574.00000000000,Dublin,Dublin2,1,0,4.0
2,200,8,Admin-0 capital,Monrovia,,,0,Monrovia,1.00000000000,,,0.00000000000,1,Liberia,LBR,Liberia,LBR,Montserrado,LR,,6.31055665987,-10.80475162910,0.00000000000,0,,1041000,785662,806416,12,11,2274895.00000000000,Monrovia,Monrovia,1,0,4.0
2,200,6,Admin-0 capital,Kuala Lumpur,,,0,Kuala Lumpur,1.00000000000,,Official and le,1.00000000000,1,Malaysia,MYS,Malaysia,MYS,Selangor,MY,,3.16666587210,101.69998327500,0.00000000000,0,,1448000,1448000,2667990,12,12,1735161.00000000000,Kuala Lumpur,Kuala Lumpur,1,0,4.0
2,200,6,Admin-0 capital,Havana,,La Habana,0,Havana,1.00000000000,,,0.00000000000,1,Cuba,CUB,Cuba,CUB,Ciudad de la Habana,CU,,23.13195884090,-82.36418217130,5.00000000000,0,Changed scale rank.,2174000,1990917,1930305,12,12,3553478.00000000000,La Habana,Havana,1,0,4.0
2,200,7,Admin-0 capital,Prague,Praha,,0,Prague,1.00000000000,,,1.00000000000,1,Czech Republic,CZE,Czech Republic,CZE,Prague,CZ,,50.08333701490,14.46597977570,4.00000000000,0,Changed scale rank.,1162000,2087,1088042,12,4,4548393.00000000000,Praha,Prague,1,0,4.7
2,200,8,Admin-0 capital,Kuwait,,Al Kuwayt|Kuwait City,0,Kuwait,1.00000000000,,,0.00000000000,1,Kuwait,KWT,Kuwait,KWT,Al Kuwayt,KW,,29.36971763000,47.97830114620,5.00000000000,0,Changed scale rank.,2063000,60064,1682968,12,8,285787.00000000000,Al Kuwayt (Kuwait City),Kuwait,1,5,4.0
2,200,8,Admin-0 capital,Santo Domingo,,,0,Santo Domingo,1.00000000000,,,0.00000000000,1,Dominican Republic,DOM,Dominican Republic,DOM,Distrito Nacional,DO,,18.47007285460,-69.90008508470,5.00000000000,0,Changed scale rank.,2154000,2873,3322037,12,4,3668373.00000000000,Santo Domingo,Santo Domingo,1,5,4.0
2,200,6,Admin-0 capital,Accra,,,0,Accra,1.00000000000,,,0.00000000000,1,Ghana,GHA,Ghana,GHA,Greater Accra,GH,,5.55003460583,-0.21671574035,5.00000000000,0,Changed scale rank.,2121000,1963264,2334371,12,12,2306104.00000000000,Accra,Accra,1,0,4.0
2,200,7,Admin-0 capital,Tripoli,,,0,Tripoli,1.00000000000,,,0.00000000000,1,Libya,LBY,Libya,LBY,Tajura' wa an Nawahi al Arba,LY,,32.89250001940,13.18001175810,5.00000000000,0,Changed scale rank.,2189000,229398,1149981,12,10,-1.00000000000,Tarabulus,Tripoli1,1,0,4.0
2,200,8,Admin-0 capital alt,Tel Aviv-Yafo,,Tel Aviv-Jaffa,0,Tel Aviv-Yafo,0.00000000000,1,While Jerulsale,0.00000000000,1,Israel,IS1,Israel,ISR,Tel Aviv,IL,,32.07999147440,34.77001175820,4.00000000000,0,Changed scale rank.,3112000,378358,2306851,12,10,293394.00000000000,Tel Aviv-Yafo,Tel Aviv-Yafo,1,0,4.0
2,200,7,Admin-0 capital,Helsinki,,,0,Helsinki,1.00000000000,,,1.00000000000,1,Finland,FIN,Finland,FIN,Southern Finland,FI,,60.17556337400,24.93412634150,4.00000000000,0,Changed scale rank.,1115000,558457,762958,12,11,658225.00000000000,Helsinki,Helsinki,1,0,4.0
2,200,8,Admin-0 capital,København,Copenhagen,,1,Kobenhavn,1.00000000000,,,1.00000000000,1,Denmark,DNK,Denmark,DNK,Hovedstaden,DK,,55.67856419040,12.56348574730,0.00000000000,0,,1085000,1085000,1038288,12,12,2618425.00000000000,K,Copenhagen,1,0,4.0
2,200,8,Admin-0 capital,Abidjan,,,0,Abidjan,1.00000000000,,"De facto, admin",0.00000000000,1,Ivory Coast,CIV,Ivory Coast,CIV,Lagunes,CI,,5.31999696749,-4.04004825989,5.00000000000,0,Changed scale rank.,3802000,3190395,3181637,12,12,2293538.00000000000,Abidjan,Abidjan,1,0,4.0
2,200,1,Admin-0 capital,Brasília,,Brasilia,0,Brasilia,1.00000000000,,,0.00000000000,1,Brazil,BRA,Brazil,BRA,Distrito Federal,BR,,-15.78334023150,-47.91605228840,5.00000000000,0,Changed scale rank.,3716996,2562963,1772679,12,12,3469058.00000000000,Brasglia,Brasilia,1,0,3.7
2,200,8,Admin-0 capital,Brussels,,Bruxelles-Brussel,0,Brussels,1.00000000000,,,1.00000000000,1,Belgium,BEL,Belgium,BEL,Brussels,BE,,50.83331707670,4.33331660830,0.00000000000,0,,1743000,1019022,1490164,12,12,2800866.00000000000,Bruxelles-Brussel,Brussels,1,5,4.7
2,200,2,Admin-0 capital,Dhaka,,,0,Dhaka,1.00000000000,,,0.00000000000,1,Bangladesh,BGD,Bangladesh,BGD,Dhaka,BD,,23.72305971170,90.40857946670,5.00000000000,0,Changed scale rank.,12797394,7000940,14995538,14,13,1185241.00000000000,Dhaka,Dhaka,1,0,4.0
2,200,6,Admin-0 capital,Luanda,,,0,Luanda,1.00000000000,,,0.00000000000,1,Angola,AGO,Angola,AGO,Luanda,AO,,-8.83828611363,13.23442704130,5.00000000000,0,Changed scale rank.,5172900,1951272,1951272,13,12,2240449.00000000000,Luanda,Luanda,1,0,4.0
2,200,5,Admin-0 capital,Algiers,,El Djazacr,0,Algiers,1.00000000000,,,0.00000000000,1,Algeria,DZA,Algeria,DZA,Alger,DZ,,36.76306479800,3.05055252952,5.00000000000,0,Changed scale rank.,3354000,1977663,3332619,12,12,2507480.00000000000,El Djazasr,Algiers,1,5,4.0
2,200,5,Admin-0 capital,Rangoon,,Yangon,0,Rangoon,0.00000000000,,Former capital,0.00000000000,1,Myanmar,MMR,Myanmar,MMR,Yangon,MM,,16.78335410460,96.16667761130,5.00000000000,0,Changed scale rank.,4088000,3301820,3124090,12,12,1298824.00000000000,Yangon,Rangoon,1,0,4.0
1,300,1,Populated place,San Francisco,,San Francisco-Oakland,0,San Francisco,0.00000000000,,,1.00000000000,1,United States,USA,United States of America,USA,California,US,,37.74000775050,-122.45997766300,0.00000000000,0,,3450000,732072,27400,12,11,5391959.00000000000,San Francisco-Oakland,San Francisco1,1,0,2.7
1,300,1,Admin-1 capital,Denver,,Denver-Aurora,0,Denver,0.00000000000,,,0.00000000000,1,United States,USA,United States of America,USA,Colorado,US,,39.73918804840,-104.98401595200,5.00000000000,0,Changed scale rank.,2313000,1548599,1521278,12,12,5419384.00000000000,Denver-Aurora,Denver,1,0,3.7
1,300,1,Populated place,Houston,,,0,Houston,0.00000000000,,,0.00000000000,1,United States,USA,United States of America,USA,Texas,US,,29.81997438460,-95.33997929050,5.00000000000,0,Changed scale rank.,4459000,3647574,3607616,12,12,4699066.00000000000,Houston,Houston,1,0,3.0
1,300,1,Populated place,Miami,,,0,Miami,0.00000000000,,,1.00000000000,1,United States,USA,United States of America,USA,Florida,US,,25.78761069640,-80.22410608080,0.00000000000,0,,5585000,382894,1037811,13,10,4164138.00000000000,Miami,Miami,1,0,2.1
1,300,1,Admin-1 capital,Atlanta,,,0,Atlanta,0.00000000000,,,1.00000000000,1,United States,USA,United States of America,USA,Georgia,US,,33.83001385400,-84.39994938330,0.00000000000,0,,4506000,422908,2874096,12,10,4180439.00000000000,Atlanta,Atlanta,1,0,3.0
1,300,1,Populated place,Chicago,,,0,Chicago,0.00000000000,,,1.00000000000,1,United States,USA,United States of America,USA,Illinois,US,,41.82999066070,-87.75005497410,0.00000000000,0,,8990000,2841952,3635101,13,12,4887398.00000000000,Chicago,Chicago,1,0,3.0
1,300,6,Admin-0 capital,Caracas,,,0,Caracas,1.00000000000,,,1.00000000000,1,Venezuela,VEN,Venezuela,VEN,Distrito Capital,VE,,10.50099855440,-66.91703719240,4.00000000000,0,Changed scale rank.,2985000,1815679,2764555,12,12,3646738.00000000000,Caracas,Caracas,1,0,3.0
1,300,5,Admin-0 capital,Kiev,,Kyiv,0,Kiev,1.00000000000,,,0.00000000000,1,Ukraine,UKR,Ukraine,UKR,Kiev,UA,,50.43336732900,30.51662796910,5.00000000000,0,Changed scale rank.,2709000,1662508,1611692,12,12,703448.00000000000,Kyiv,Kiev,1,0,3.7
1,300,8,Admin-1 capital,Dubai,Dubayy,,0,Dubai,0.00000000000,,,1.00000000000,1,United Arab Emirates,ARE,United Arab Emirates,ARE,Dubay,AE,,25.22999615380,55.27997432340,1.00000000000,1,Name changed.,1379000,1137347,1166878,12,12,292223.00000000000,Dubayy,Dubayy,1,0,3.7
1,300,6,Admin-0 capital,Tashkent,,,0,Tashkent,1.00000000000,,,0.00000000000,1,Uzbekistan,UZB,Uzbekistan,UZB,Tashkent,UZ,,41.31170188300,69.29493281950,5.00000000000,0,Changed scale rank.,2184000,1978028,2806287,12,12,1512569.00000000000,Tashkent,Tashkent,1,0,3.7
1,300,3,Admin-0 capital,Madrid,,,0,Madrid,1.00000000000,,,1.00000000000,1,Kingdom of Spain,ESP,Spain,ESP,Comunidad de Madrid,ES,,40.40002626450,-3.68335168600,0.00000000000,0,,5567000,50437,3673427,13,8,3117735.00000000000,Madrid,Madrid,1,0,3.0
1,300,7,Admin-1 capital,Geneva,,,0,Geneva,0.00000000000,,,1.00000000000,0,Switzerland,CHE,Switzerland,CHE,Genève,CH,,46.21000754710,6.14002803409,4.00000000000,0,Changed scale rank.,1240000,192385,508284,12,9,2660646.00000000000,,Geneva,1,0,3.7
1,300,7,Admin-0 capital,Stockholm,,,0,Stockholm,1.00000000000,,,1.00000000000,1,Sweden,SWE,Sweden,SWE,Stockholm,SE,,59.35075995430,18.09733473280,4.00000000000,0,Location adjusted.,1264000,1253309,0,12,12,2673730.00000000000,Stockholm,Stockholm,1,0,3.0
1,300,5,Admin-0 capital,Bangkok,,Krung Thep,0,Bangkok,1.00000000000,,,1.00000000000,1,Thailand,THA,Thailand,THA,Bangkok Metropolis,TH,,13.74999920550,100.51664465200,0.00000000000,0,,6704000,5104476,5082758,13,13,1609350.00000000000,Krung Thep,Bangkok,1,0,3.0
1,300,5,Admin-0 capital,Lima,,,0,Lima,1.00000000000,,,0.00000000000,1,Peru,PER,Peru,PER,Lima,PE,,-12.04801267610,-77.05006209480,5.00000000000,0,Changed scale rank.,8012000,6758234,6068380,13,13,3936456.00000000000,Lima,Lima2,1,0,3.0
1,300,8,Admin-0 capital,Dakar,,,0,Dakar,1.00000000000,,,0.00000000000,1,Senegal,SEN,Senegal,SEN,Dakar,SN,,14.71583172500,-17.47313012840,5.00000000000,0,Changed scale rank.,2604000,2476400,2470140,12,12,2253354.00000000000,Dakar,Dakar,1,0,3.0
1,300,3,Admin-0 capital,Johannesburg,,,0,Johannesburg,0.00000000000,,,1.00000000000,1,South Africa,ZAF,South Africa,ZAF,Gauteng,ZA,,-26.17004474000,28.03000972360,4.00000000000,0,Changed feature class.,3435000,2026469,3852246,12,12,993800.00000000000,Johannesburg,Johannesburg,1,0,3.0
1,300,8,Admin-0 capital,Amsterdam,,,0,Amsterdam,1.00000000000,,De facto capita,1.00000000000,1,Kingdom of the Netherlands,NLD,Netherlands,NLD,Noord-Holland,NL,,52.34996868810,4.91664017601,0.00000000000,0,,1031000,741636,962488,12,11,2759794.00000000000,Amsterdam,Amsterdam,1,0,3.7
1,300,5,Admin-1 capital,Casablanca,,Dar-el-Beida,0,Casablanca,0.00000000000,,,1.00000000000,1,Morocco,MAR,Morocco,MAR,Grand Casablanca,MA,,33.59997621560,-7.61636743309,4.00000000000,0,Changed scale rank.,3181000,3144909,3718797,12,12,2553604.00000000000,Dar-el-Beida,Casablanca,1,0,3.7
1,300,3,Admin-0 capital,Seoul,,,0,Seoul,1.00000000000,,,1.00000000000,1,"Korea, South",KOR,South Korea,KOR,Seoul,KR,,37.56634909980,126.99973099700,0.00000000000,0,,9796000,9796000,12018058,13,13,1835848.00000000000,Seoul,Seoul,1,0,3.0
1,300,5,Admin-0 capital,Manila,,,0,Manila,1.00000000000,,"Official, de fa",1.00000000000,1,Philippines,PHL,Philippines,PHL,Metropolitan Manila,PH,,14.60415895480,120.98221716200,0.00000000000,0,,11100000,3077575,2381280,14,12,1701668.00000000000,Manila,Manila,1,0,2.7
1,300,2,Admin-1 capital,Monterrey,,,0,Monterrey,0.00000000000,,,0.00000000000,1,Mexico,MEX,Mexico,MEX,Nuevo León,MX,,25.66999513650,-100.32998478400,5.00000000000,0,Changed scale rank.,3712000,1122874,3225636,12,12,3995465.00000000000,Monterrey,Monterrey,1,0,3.7
1,300,3,Admin-0 capital,Berlin,,,0,Berlin,1.00000000000,,,1.00000000000,1,Germany,DEU,Germany,DEU,Berlin,DE,,52.52181866360,13.40154862330,0.00000000000,0,,3406000,3094014,3013258,12,12,2950159.00000000000,Berlin,Berlin,1,0,2.7
1,300,1,Admin-1 capital,Ürümqi,,rumqi|Wulumqi,0,Urumqi,0.00000000000,,,0.00000000000,1,China,CHN,China,CHN,Xinjiang Uygur,CN,,43.80501222640,87.57500565490,5.00000000000,0,Changed scale rank.,2151000,1508225,2044401,12,12,1529102.00000000000,Cramqi (Wulumqi),Urumqi,1,0,3.7
1,300,1,Admin-1 capital,Chengdu,,,0,Chengdu,0.00000000000,,,0.00000000000,1,China,CHN,China,CHN,Sichuan,CN,,30.67000001930,104.07001949000,5.00000000000,0,Changed scale rank.,4123000,3950437,11622929,12,12,1815286.00000000000,Chengdu,Chengdu,1,0,3.0
1,300,2,Admin-1 region capital,Ōsaka,,Osaka-Kobe,0,Osaka,0.00000000000,,,1.00000000000,1,Japan,JPN,Japan,JPN,Osaka,JP,,34.75003521630,135.46014481500,4.00000000000,0,Changed feature to Admin-0 region capital.,11294000,2592413,9630783,14,12,1853909.00000000000,Osaka-Kobe,Osaka,1,5,3.0
1,300,3,Admin-0 capital,Kinshasa,,,0,Kinshasa,1.00000000000,,,0.00000000000,1,Congo (Kinshasa),COD,Congo (Kinshasa),COD,Kinshasa City,CD,,-4.32972410189,15.31497188180,5.00000000000,0,Changed scale rank.,7843000,5565703,4738154,13,13,2314302.00000000000,Kinshasa,Kinshasa,1,0,3.0
1,300,1,Admin-0 capital,New Delhi,,,0,New Delhi,1.00000000000,,,1.00000000000,0,India,IND,India,IND,Delhi,IN,,28.60002300920,77.19998002010,0.00000000000,0,,317797,317797,8060107,10,10,1261481.00000000000,,New Delhi,1,0,2.1
1,300,1,Admin-1 capital,Bangalore,,Bengaluru,0,Bangalore,0.00000000000,,,0.00000000000,1,India,IND,India,IND,Karnataka,IN,,12.96999513650,77.56000972380,3.00000000000,1,Name changed. Changed scale rank.,6787000,5104047,8102712,13,13,1277333.00000000000,Bangalore,Bangalore,1,0,3.7
1,300,6,Admin-0 capital,Athens,Athenai,Athinai,0,Athens,1.00000000000,,,1.00000000000,1,Greece,GRC,Greece,GRC,Attiki,GR,,37.98332623190,23.73332108430,4.00000000000,0,Changed scale rank.,3242000,729137,112572,12,11,264371.00000000000,Athnnai,Athens2,1,0,3.7
1,300,5,Admin-0 capital,Baghdad,,,0,Baghdad,1.00000000000,,,0.00000000000,1,Iraq,IRQ,Iraq,IRQ,Baghdad,IQ,,33.33864849750,44.39386877320,5.00000000000,0,Changed scale rank.,5054000,5054000,4959534,13,13,98182.00000000000,Baghdad,Baghdad,1,0,3.7
1,300,3,Admin-0 capital,Addis Ababa,,,0,Addis Ababa,1.00000000000,,,0.00000000000,1,Ethiopia,ETH,Ethiopia,ETH,Addis Ababa,ET,,9.03331036268,38.70000443400,5.00000000000,0,Changed scale rank.,3100000,2757729,3013653,12,12,344979.00000000000,Addis Ababa,Addis Ababa,1,5,3.0
1,300,5,Admin-0 capital,Tehran,,,0,Tehran,1.00000000000,,,0.00000000000,1,Iran,IRN,Iran,IRN,Tehran,IR,,35.67194276840,51.42434403360,5.00000000000,0,Changed scale rank.,7873000,7153309,8209012,13,13,112931.00000000000,Tehran,Tehran,1,0,3.0
1,300,2,Populated place,Vancouver,,,0,Vancouver,0.00000000000,,,0.00000000000,1,Canada,CAN,Canada,CAN,British Columbia,CA,,49.27341658410,-123.12164421800,5.00000000000,0,Changed scale rank.,2313328,603502,482002,12,11,6173331.00000000000,Vancouver,Vancouver2,1,0,2.1
1,300,2,Admin-1 capital,Toronto,,,0,Toronto,0.00000000000,,,1.00000000000,1,Canada,CAN,Canada,CAN,Ontario,CA,,43.69997987780,-79.42002079440,0.00000000000,0,,5213000,3934421,3749229,13,12,6167865.00000000000,Toronto,Toronto,1,0,2.1
1,300,3,Admin-0 capital,Buenos Aires,,,0,Buenos Aires,1.00000000000,,,1.00000000000,1,Argentina,ARG,Argentina,ARG,Ciudad de Buenos Aires,AR,,-34.60250160850,-58.39753137370,0.00000000000,0,,12795000,10929146,10271457,14,14,3435910.00000000000,Buenos Aires,Buenos Aires,1,0,2.1
1,300,5,Admin-0 capital,Kabul,,,0,Kabul,1.00000000000,,,0.00000000000,1,Afghanistan,AFG,Afghanistan,AFG,Kabul,AF,,34.51669028630,69.18326004930,5.00000000000,0,Changed scale rank.,3277000,3043532,3475519,12,12,1138958.00000000000,Kabul,Kabul,1,0,3.7
1,300,7,Admin-0 capital,Vienna,Wien,,0,Vienna,1.00000000000,,,1.00000000000,1,Austria,AUT,Austria,AUT,Wien,AT,,48.20001527820,16.36663895540,0.00000000000,0,,2400000,1731000,1480886,12,12,2761369.00000000000,Wien,Vienna,1,0,3.7
1,300,3,Admin-1 capital,Melbourne,,,0,Melbourne,0.00000000000,,,1.00000000000,1,Australia,AUS,Australia,AUS,Victoria,AU,,-37.82003131230,144.97501623500,4.00000000000,0,Changed feature class. Changed scale rank.,4170000,93625,1805353,12,8,2158177.00000000000,Melbourne,Melbourne2,1,0,3.0
1,300,8,Admin-0 capital,Taipei,,,0,Taipei,1.00000000000,,,1.00000000000,1,Taiwan,TWN,Taiwan,TWN,Taipei City,TW,,25.03583333333,121.56833333333,1.00000000000,0,Corrected coordinates.,6900273,2618772,5698241,13,12,1668341.00000000000,Taipei,Taipei,1,0,3.7
1,300,8,Admin-1 capital,Auckland,,,0,Auckland,0.00000000000,,,1.00000000000,1,New Zealand,NZL,New Zealand,NZL,Auckland,NZ,Auckland metropolitan area,-36.84805489493,174.76302698708,4.00000000000,0,Changed scale rank.,1377200,395982,0,12,10,2193733.00000000000,Auckland,Auckland,1,0,3.0
0,600,1,Populated place,Los Angeles,,Los Angeles-Long Beach-Santa Ana,0,Los Angeles,0.00000000000,,,1.00000000000,1,United States,USA,United States of America,USA,California,US,,33.98997825020,-118.17998051100,0.00000000000,0,,12500000,3694820,142265,14,12,5368361.00000000000,Los Angeles-Long Beach-Santa Ana,Los Angeles1,1,0,2.0
0,600,1,Admin-0 capital,"Washington, D.C.",,Washington D.C.,0,"Washington, D.C.",1.00000000000,,,1.00000000000,1,United States,USA,United States of America,USA,District of Columbia,US,,38.89954937650,-77.00941858080,0.00000000000,0,,4338000,552433,2175991,12,11,4140963.00000000000,"Washington, D.C.","Washington, D.C.",1,5,2.1
0,600,1,Populated place,New York,,New York-Newark,0,New York,0.00000000000,,UN Headquarters,1.00000000000,1,United States,USA,United States of America,USA,New York,US,,40.74997906400,-73.98001692880,0.00000000000,0,,19040000,8008278,9292603,14,13,5128581.00000000000,New York-Newark,New York,1,0,1.7
0,600,5,Admin-0 capital,London,,,0,London,1.00000000000,,,1.00000000000,1,United Kingdom,GBR,United Kingdom,GBR,Westminster,GB,,51.49999472970,-0.11672184386,0.00000000000,0,,8567000,7421209,326670,13,13,2643743.00000000000,London,London2,1,5,1.7
0,600,5,Admin-1 capital,Istanbul,,,0,Istanbul,0.00000000000,,,1.00000000000,1,Turkey,TUR,Turkey,TUR,Istanbul,TR,,41.10499615380,29.01000158560,0.00000000000,0,,10061000,9945610,9651488,14,13,745044.00000000000,Istanbul,Istanbul,1,0,3.0
0,600,5,Admin-0 capital,Riyadh,,Ar-Riyadh,0,Riyadh,1.00000000000,,,1.00000000000,1,Saudi Arabia,SAU,Saudi Arabia,SAU,Ar Riyad,SA,,24.64083314920,46.77274165730,4.00000000000,0,Changed scale rank.,4465000,4205961,5148778,12,12,108410.00000000000,Ar-Riyadh,Riyadh,1,0,3.7
0,600,3,Admin-0 capital,Cape Town,,,0,Cape Town,1.00000000000,1,Legislative cap,1.00000000000,1,South Africa,ZAF,South Africa,ZAF,Western Cape,ZA,,-33.92001096720,18.43498815780,4.00000000000,0,Changed scale rank.,3215000,2432858,2401318,12,12,3369157.00000000000,Cape Town,Cape Town,1,0,1.7
0,600,2,Admin-0 capital,Moscow,Moskva,,0,Moscow,1.00000000000,,,1.00000000000,1,Russia,RUS,Russia,RUS,Moskva,RU,,55.75216412260,37.61552282590,0.00000000000,0,,10452000,10452000,10585385,14,14,524901.00000000000,Moskva,Moscow,1,0,1.7
0,600,2,Admin-0 capital,Mexico City,,Ciudad de M,0,Mexico City,1.00000000000,,,1.00000000000,1,Mexico,MEX,Mexico,MEX,Distrito Federal,MX,,19.44244244280,-99.13098820170,0.00000000000,0,,19028000,10811002,10018444,14,14,3530597.00000000000,Ciudad de Mdxico,Mexico City,1,0,2.1
0,600,2,Admin-0 capital alt,Lagos,,,0,Lagos,0.00000000000,1,Former capital,1.00000000000,1,Nigeria,NGA,Nigeria,NGA,Lagos,NG,,6.44326165348,3.39153107121,4.00000000000,0,Location adjusted. Changed scale rank.,9466000,1536,6567892,13,3,2332459.00000000000,Lagos,Lagos,1,0,2.0
0,600,3,Admin-0 capital,Rome,,,0,Rome,1.00000000000,,,1.00000000000,1,Italy,ITA,Italy,ITA,Lazio,IT,,41.89595562650,12.48325842150,0.00000000000,0,,3339000,35452,2050212,12,7,3169070.00000000000,Rome,Rome,1,0,2.7
0,600,1,Admin-0 capital,Beijing,,,0,Beijing,1.00000000000,,,1.00000000000,1,China,CHN,China,CHN,Beijing,CN,,39.92889223130,116.38828568400,0.00000000000,0,,11106000,7480601,9033231,14,13,1816670.00000000000,Beijing,Beijing,1,0,1.7
0,600,5,Admin-0 capital,Nairobi,,,0,Nairobi,1.00000000000,,,1.00000000000,1,Kenya,KEN,Kenya,KEN,Nairobi,KE,,-1.28334674185,36.81665685910,4.00000000000,0,Changed scale rank.,3010000,2750547,3400962,12,12,184745.00000000000,Nairobi,Nairobi,1,0,2.0
0,600,1,Admin-0 capital,Jakarta,,,0,Jakarta,1.00000000000,,,1.00000000000,1,Indonesia,IDN,Indonesia,IDN,Jakarta Raya,ID,,-6.17441770541,106.82943762100,0.00000000000,0,,9125000,8540121,9129613,13,13,1642911.00000000000,Jakarta,Jakarta,1,0,2.1
0,600,5,Admin-0 capital,Bogota,,Bogota,0,Bogota,1.00000000000,,,1.00000000000,1,Colombia,COL,Colombia,COL,Bogota,CO,,4.59642356253,-74.08334395520,0.00000000000,0,,7772000,6333661,5754084,13,13,3688689.00000000000,Bogota,Bogota,1,0,2.1
0,600,3,Admin-0 capital,Cairo,,Al-Qahirah,0,Cairo,1.00000000000,,,1.00000000000,1,Egypt,EGY,Egypt,EGY,Al Qahirah,EG,,30.04996034650,31.24996821970,0.00000000000,0,,11893000,7734614,13720557,14,13,360630.00000000000,Al-Qahirah,Cairo,1,5,1.7
0,600,1,Admin-1 capital,Shanghai,,,0,Shanghai,0.00000000000,,,1.00000000000,1,China,CHN,China,CHN,Shanghai,CN,,31.21645245260,121.43650467800,0.00000000000,0,,14987000,14608512,16803572,14,14,1796236.00000000000,Shanghai,Shanghai,1,0,2.0
0,600,2,Admin-0 capital,Tokyo,,,0,Tokyo,1.00000000000,,De facto capita,1.00000000000,1,Japan,JPN,Japan,JPN,Tokyo,JP,,35.68501690580,139.75140742900,0.00000000000,0,,35676000,8336599,12945252,14,13,1850147.00000000000,Tokyo,Tokyo,1,0,1.7
0,600,1,Admin-1 capital,Mumbai,Bombay,,0,Mumbai,0.00000000000,,,1.00000000000,1,India,IND,India,IND,Maharashtra,IN,,19.01699037570,72.85698929740,0.00000000000,0,,18978000,12691836,12426085,14,14,1275339.00000000000,Mumbai,Mumbai,1,0,1.7
0,600,3,Admin-0 capital,Paris,,,0,Paris,1.00000000000,,,1.00000000000,1,French Republic,FRA,France,FRA,Île-de-France,FR,,48.86669293120,2.33333532574,0.00000000000,0,,9904000,11177,7142744,13,6,2988507.00000000000,Paris,Paris,1,0,1.7
0,600,3,Admin-0 capital,Santiago,,,0,Santiago,1.00000000000,,"Official, admin",1.00000000000,1,Chile,CHL,Chile,CHL,Región Metropolitana de Santiago,CL,,-33.45001381550,-70.66704085460,4.00000000000,0,Changed scale rank.,5720000,46611,3066651,13,7,3449741.00000000000,Santiago,Santiago3,1,0,2.0
0,600,1,Admin-1 capital,Kolkata,Calcutta,,0,Kolkata,0.00000000000,,,0.00000000000,1,India,IND,India,IND,West Bengal,IN,,22.49496929830,88.32467565810,4.00000000000,1,Name changed. Changed scale rank.,14787000,4631392,7783716,14,12,1275004.00000000000,Kolkata,Calcutta,1,0,3.7
0,600,1,Admin-1 capital,Rio de Janeiro,,,0,Rio de Janeiro,0.00000000000,,,1.00000000000,1,Brazil,BRA,Brazil,BRA,Rio de Janeiro,BR,,-22.92502317420,-43.22502079420,0.00000000000,0,,11748000,2010175,1821489,14,12,3451190.00000000000,Rio de Janeiro,Rio de Janeiro,1,0,1.7
0,600,1,Admin-1 capital,São Paulo,,Sao Paulo|Sio Paulo,0,Sao Paulo,0.00000000000,,,1.00000000000,1,Brazil,BRA,Brazil,BRA,São Paulo,BR,,-23.55867958700,-46.62501998040,0.00000000000,0,,18845000,10021295,11522944,14,14,3448439.00000000000,S,Sao Paolo,1,0,3.0
0,600,3,Admin-1 capital,Sydney,,,0,Sydney,0.00000000000,,,1.00000000000,1,Australia,AUS,Australia,AUS,New South Wales,AU,,-33.92001096720,151.18517980900,4.00000000000,0,Changed feature class.,4630000,3641422,2669348,12,12,2147714.00000000000,Sydney,Sydney1,1,0,
0,600,0,Admin-0 capital,Singapore,,,0,Singapore,1.00000000000,,,1.00000000000,1,Singapore,SGP,Singapore,SGP,,SG,,1.29303346649,103.85582067800,0.00000000000,0,,5183700,3289529,3314179,13,12,1880252.00000000000,Singapore,Singapore,1,5,2.1
0,600,0,Admin-0 region capital,Hong Kong,,,0,Hong Kong,0.00000000000,,,1.00000000000,1,China,CHN,Hong Kong S.A.R.,HKG,,HK,,22.30498089500,114.18500931700,0.00000000000,0,,7206000,4551579,4549026,13,12,1819729.00000000000,Hong Kong,Hong Kong,1,0,3.0
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
0,600,0,Admin-0 region capital,Hong Kong,,,0,Hong Kong,0.00000000000,,,1.00000000000,1,China,CHN,Hong Kong S.A.R.,HKG,,HK,,nan,114.18500931700,0.00000000000,0,,7206000,4551579,4549026,13,12,1819729.00000000000,Hong Kong,Hong Kong,1,0,3.0
0,600,0,Admin-0 region capital,Hong Kong,,,0,Hong Kong,0.00000000000,,,1.00000000000,1,China,CHN,Hong Kong S.A.R.,HKG,,HK,,inf,114.18500931700,0.00000000000,0,,7206000,4551579,4549026,13,12,1819729.00000000000,Hong Kong,Hong Kong,1,0,3.0
0,600,0,Admin-0 region capital,Hong Kong,,,0,Hong Kong,0.00000000000,,,1.00000000000,1,China,CHN,Hong Kong S.A.R.,HKG,,HK,,22.30498089500,nan,0.00000000000,0,,7206000,4551579,4549026,13,12,1819729.00000000000,Hong Kong,Hong Kong,1,0,3.0
0,600,0,Admin-0 region capital,Hong Kong,,,0,Hong Kong,0.00000000000,,,1.00000000000,1,China,CHN,Hong Kong S.A.R.,HKG,,HK,,22.30498089500,inf,0.00000000000,0,,7206000,4551579,4549026,13,12,1819729.00000000000,Hong Kong,Hong Kong,1,0,3.0
1 scalerank natscale labelrank featurecla name namepar namealt diffascii nameascii adm0cap capalt capin worldcity megacity sov0name sov_a3 adm0name adm0_a3 adm1name iso_a2 note latitude longitude changed namediff diffnote pop_max pop_min pop_other rank_max rank_min geonameid meganame ls_name ls_match checkme min_zoom
2 8 10 3 Admin-0 capital Vatican City 0 Vatican City 1.00000000000 1.00000000000 0 Vatican (Holy Sea) VAT Vatican (Holy See) VAT Lazio VA 41.90001222640 12.44780838890 4.00000000000 0 Changed scale rank. 832 832 562430 2 2 6691831.00000000000 Vatican City 1 0 7.0
3 7 20 0 Admin-0 capital San Marino 0 San Marino 1.00000000000 0.00000000000 0 San Marino SMR San Marino SMR SM 43.91715008450 12.46667028670 0.00000000000 0 29579 29000 0 7 7 3168070.00000000000 San Marino 1 5 6.1
4 7 20 0 Admin-0 capital Vaduz 0 Vaduz 1.00000000000 0.00000000000 0 Liechtenstein LIE Liechtenstein LIE LI 47.13372377430 9.51666947291 0.00000000000 0 36281 5342 33009 7 5 3042030.00000000000 Vaduz 1 0 6.7
5 6 30 8 Admin-0 capital alt Lobamba 0 Lobamba 0.00000000000 1 Legislative and 0.00000000000 0 Swaziland SWZ Swaziland SWZ Manzini SZ -26.46666746140 31.19999710970 4.00000000000 0 Changed scale rank. 9782 4557 0 5 4 935048.00000000000 Lobamba 1 5 6.0
6 6 30 8 Admin-0 capital Luxembourg 0 Luxembourg 1.00000000000 0.00000000000 0 Luxembourg LUX Luxembourg LUX Luxembourg LU 49.61166037910 6.13000280623 4.00000000000 0 Changed scale rank. 107260 76684 106219 9 8 2960316.00000000000 Luxembourg 1 0 6.0
7 6 30 0 Admin-0 capital Palikir 0 Palikir 1.00000000000 0.00000000000 0 Federated States of Micronesia FSM Federated States of Micronesia FSM FM 6.91664369601 158.14997432400 4.00000000000 0 Changed scale rank. 4645 4645 0 4 4 2081986.00000000000 Palikir 1 5 6.0
8 6 30 0 Admin-0 capital Majuro 0 Majuro 1.00000000000 0.00000000000 0 Marshall Islands MHL Marshall Islands MHL MH 7.10300431122 171.38000017600 4.00000000000 0 Changed scale rank. 25400 20500 0 7 7 2113779.00000000000 Majuro 1 5 6.0
9 6 30 0 Admin-0 capital Funafuti 0 Funafuti 1.00000000000 0.00000000000 0 Tuvalu TUV Tuvalu TUV TV -8.51665199904 179.21664709400 4.00000000000 0 Population from GeoNames. Changed scale rank. 4749 4749 0 4 4 2110394.00000000000 Funafuti 0 5 6.0
10 6 30 0 Admin-0 capital Melekeok 0 Melekeok 1.00000000000 0.00000000000 0 Palau PLW Palau PLW PW 7.48739617298 134.62654846700 4.00000000000 0 Location adjusted. Changed scale rank. 7026 7026 0 5 5 1559804.00000000000 Melekeok 1 5 6.0
11 6 30 0 Admin-0 capital alt Bir Lehlou 0 Bir Lehlou 0.00000000000 1 Claimed as inte 0.00000000000 0 Western Sahara SAH Western Sahara SAH EH 26.11916668600 -9.65252221825 4.00000000000 1 Added place. 500 200 0 2 1 -1.00000000000 2 0 6.0
12 6 30 0 Admin-0 capital Monaco 0 Monaco 1.00000000000 0.00000000000 0 Monaco MCO Monaco MCO MC 43.73964568790 7.40691317347 4.00000000000 0 Location adjusted. Changed scale rank. 36371 36371 102371 7 7 2993458.00000000000 Monaco 1 0 5.1
13 6 30 0 Admin-0 capital Tarawa 0 Tarawa 1.00000000000 0.00000000000 0 Kiribati KIR Kiribati KIR KI 1.33818750562 173.01757082900 4.00000000000 0 Location adjusted. Changed scale rank. 28802 22534 0 7 7 2110079.00000000000 Tarawa 1 5 6.0
14 6 30 0 Admin-0 capital Moroni 0 Moroni 1.00000000000 0.00000000000 0 Comoros COM Comoros COM KM -11.70415769570 43.24024409870 4.00000000000 0 Changed scale rank. 128698 42872 0 9 7 921772.00000000000 Moroni 1 5 6.0
15 6 30 0 Admin-0 capital Andorra 0 Andorra 1.00000000000 0.00000000000 0 Andorra AND Andorra AND AD 42.50000144350 1.51648596051 4.00000000000 0 Changed scale rank. 53998 22256 53371 8 7 3130067.00000000000 Andorra 1 5 6.0
16 4 50 8 Admin-0 capital Port-of-Spain 0 Port-of-Spain 1.00000000000 0.00000000000 0 Trinidad and Tobago TTO Trinidad and Tobago TTO Port of Spain TT 10.65199708960 -61.51703088540 4.00000000000 0 Changed scale rank. 294934 49031 419082 10 7 3573890.00000000000 Port-of-Spain 1 5 5.1
17 4 50 0 Admin-0 capital Kigali 0 Kigali 1.00000000000 0.00000000000 1 Rwanda RWA Rwanda RWA Kigali City RW -1.95359006868 30.06053177770 4.00000000000 0 Changed scale rank. 860000 745261 1152904 11 11 202061.00000000000 Kigali Kigali 1 0 5.1
18 4 50 8 Admin-0 capital Mbabane 0 Mbabane 1.00000000000 Administrative 0.00000000000 0 Swaziland SWZ Swaziland SWZ Hhohho SZ -26.31665077840 31.13333451210 4.00000000000 0 Changed scale rank. 90138 76218 89979 8 8 934985.00000000000 Mbabane 1 0 5.6
19 4 50 5 Admin-0 capital Juba 0 Juba 0.00000000000 0.00000000000 0 South Sudan SSD South Sudan SSD Central Equatoria SS 4.82997519828 31.58002559280 20.00000000000 0 Changed country. 111975 111975 111975 9 9 373303.00000000000 Juba 1 0 5.1
20 4 50 8 Admin-0 capital alt The Hague 0 The Hague 0.00000000000 1 Official, legis 0.00000000000 0 Kingdom of the Netherlands NLD Netherlands NLD Zuid-Holland NL 52.08003684400 4.26996130231 0.00000000000 0 1406000 501725 688599 12 11 2747373.00000000000 The Hague 1 0 5.6
21 4 50 8 Admin-0 capital Ljubljana 0 Ljubljana 1.00000000000 0.00000000000 0 Slovenia SVN Slovenia SVN Osrednjeslovenska SI 46.05528830880 14.51496903350 4.00000000000 0 Changed scale rank. 314807 255115 256316 10 10 3196359.00000000000 Ljubljana 1 0 5.6
22 4 50 7 Admin-0 capital Bratislava 0 Bratislava 1.00000000000 0.00000000000 0 Slovakia SVK Slovakia SVK Bratislavský SK 48.15001833000 17.11698075220 4.00000000000 0 Changed scale rank. 423737 373687 361489 10 10 3060972.00000000000 Bratislava 1 0 5.1
23 4 50 8 Admin-0 capital Doha 0 Doha 1.00000000000 0.00000000000 0 Qatar QAT Qatar QAT Ad Dawhah QA 25.28655600890 51.53296789430 4.00000000000 0 Location adjusted. Changed scale rank. 1450000 731310 0 12 11 290030.00000000000 Doha 1 5 5.6
24 4 50 8 Admin-0 capital Podgorica 0 Podgorica 1.00000000000 0.00000000000 0 Montenegro MNE Montenegro MNE Podgorica ME 42.46597251290 19.26630692410 4.00000000000 0 Location adjusted. Changed scale rank. 145850 136473 0 9 9 3193044.00000000000 Podgorica 1 0 5.6
25 4 50 6 Admin-0 capital alt Sri Jawewardenepura Kotte 0 Sri Jawewardenepura Kotte 0.00000000000 1 Legislative cap 0.00000000000 0 Sri Lanka LKA Sri Lanka LKA Colombo LK 6.90000388481 79.94999304090 4.00000000000 1 Name changed. 115826 115826 2456292 9 9 1238992.00000000000 Kotte 1 0 5.6
26 4 50 5 Admin-0 capital alt Baguio City 0 Baguio City 0.00000000000 1 0.00000000000 0 Philippines PHL Philippines PHL Benguet PH 16.42999066060 120.56994258500 40.00000000000 0 Changed scale rank. 447824 272714 164877 10 10 1728930.00000000000 Baguio City 1 0 5.6
27 4 50 5 Admin-0 capital alt Dodoma 0 Dodoma 0.00000000000 1 Offical capital 0.00000000000 0 United Republic of Tanzania TZA Tanzania TZA Dodoma TZ -6.18330605177 35.75000362010 4.00000000000 0 Location adjusted. 218269 180541 0 10 9 160196.00000000000 Dodoma 1 0 5.6
28 4 50 7 Admin-0 capital Bern 0 Bern 1.00000000000 0.00000000000 0 Switzerland CHE Switzerland CHE Bern CH 46.91668275870 7.46697546248 4.00000000000 0 Changed scale rank. 275329 121631 267814 10 9 2661552.00000000000 Bern 1 0 5.6
29 4 50 5 Admin-0 capital alt Laayoune 0 Laayoune 0.00000000000 1 Claimed as capi 0.00000000000 0 Morocco MAR Morocco MAR Laâyoune - Boujdour - Sakia El Hamra MA 27.14998231910 -13.20000594220 0.00000000000 0 188084 176365 176365 9 9 2462881.00000000000 Laayoune 1 0 5.6
30 4 50 8 Admin-0 capital Pristina 0 Pristina 1.00000000000 0.00000000000 0 Kosovo KOS Kosovo KOS Pristina -99 42.66670961410 21.16598425160 4.00000000000 0 Changed scale rank. 465186 198214 261783 10 9 786714.00000000000 Pristina 1 0 5.6
31 4 50 8 Admin-0 capital Roseau 0 Roseau 1.00000000000 0.00000000000 0 Dominica DMA Dominica DMA Saint George DM 15.30101564430 -61.38701298180 4.00000000000 0 Changed scale rank. 23336 16571 23336 7 6 3575635.00000000000 Roseau 1 5 5.1
32 4 50 8 Admin-0 capital Djibouti 0 Djibouti 1.00000000000 0.00000000000 0 Djibouti DJI Djibouti DJI Djibouti DJ 11.59501446430 43.14800166710 4.00000000000 0 Changed scale rank. 923000 604013 335001 11 11 223817.00000000000 Djibouti 1 0 5.6
33 4 50 6 Admin-0 capital alt Putrajaya 0 Putrajaya 0.00000000000 1 Administrative 0.00000000000 0 Malaysia MYS Malaysia MYS Selangor MY 2.91401979462 101.70194698000 0.00000000000 0 67964 50000 956431 8 7 6697380.00000000000 Putrajaya 1 5 5.6
34 4 50 2 Admin-0 capital alt Kyoto 0 Kyoto 0.00000000000 1 Official capita 0.00000000000 1 Japan JPN Japan JPN Kyoto JP 35.02999228820 135.74999792400 0.00000000000 0 1805000 1459640 1827367 12 12 1857910.00000000000 Kyoto Kyoto 1 0 5.1
35 4 50 8 Admin-0 capital Banjul 0 Banjul 1.00000000000 0.00000000000 0 Gambia, The GMB The Gambia GMB Banjul GM 13.45387646030 -16.59170148920 4.00000000000 0 Location adjusted. Changed scale rank. 43094 34589 581300 7 7 2413876.00000000000 Banjul 1 0 5.6
36 4 50 8 Admin-0 capital Skopje 0 Skopje 1.00000000000 0.00000000000 0 Macedonia MKD Macedonia MKD Centar MK 42.00000612290 21.43346146510 4.00000000000 0 Changed scale rank. 494087 474889 491890 10 10 785842.00000000000 Skopje 1 5 5.6
37 4 50 8 Admin-0 capital Bridgetown 0 Bridgetown 1.00000000000 0.00000000000 0 Barbados BRB Barbados BRB Saint Michael BB 13.10200258280 -59.61652673510 4.00000000000 0 Changed scale rank. 191152 96578 191814 9 8 2075807.00000000000 Bridgetown 1 5 5.6
38 4 50 8 Admin-0 capital alt Porto-Novo 0 Porto-Novo 0.00000000000 1 Official capita 0.00000000000 0 Benin BEN Benin BEN Ouémé BJ 6.48331097302 2.61662552757 0.00000000000 0 300000 234168 806945 10 10 2392087.00000000000 Porto-Novo 1 0 5.6
39 4 50 8 Admin-0 capital Bujumbura 0 Bujumbura 1.00000000000 0.00000000000 0 Burundi BDI Burundi BDI Bujumbura Mairie BI -3.37608722037 29.36000606150 4.00000000000 0 Changed scale rank. 331700 331700 1208361 10 10 425378.00000000000 Bujumbura 1 0 5.6
40 4 50 0 Admin-0 capital Kingstown 0 Kingstown 1.00000000000 0.00000000000 0 Saint Vincent and the Grenadines VCT Saint Vincent and the Grenadines VCT VC 13.14827882790 -61.21206242030 4.00000000000 0 Location adjusted. Changed scale rank. 49485 24518 0 7 7 4359981.00000000000 Kingstown 1 5 5.1
41 4 50 0 Admin-0 capital Castries 0 Castries 1.00000000000 0.00000000000 0 Saint Lucia LCA Saint Lucia LCA LC 14.00197348930 -61.00000818040 4.00000000000 0 Changed scale rank. 37963 10634 0 7 6 3028258.00000000000 Castries 1 5 5.6
42 4 50 0 Admin-0 capital Basseterre 0 Basseterre 1.00000000000 0.00000000000 0 Saint Kitts and Nevis KNA Saint Kitts and Nevis KNA KN 17.30203045550 -62.71700931970 4.00000000000 0 Changed scale rank. 21887 15500 21887 7 6 3575551.00000000000 Basseterre 1 5 5.6
43 4 50 0 Admin-0 capital Port Louis 0 Port Louis 1.00000000000 0.00000000000 0 Mauritius MUS Mauritius MUS MU -20.16663857140 57.49999385460 4.00000000000 0 Changed scale rank. 595491 148416 304613 11 9 934154.00000000000 Port Louis 1 5 5.6
44 4 50 0 Admin-0 capital Saint George's 0 Saint George's 1.00000000000 0.00000000000 0 Grenada GRD Grenada GRD GD 12.05263340170 -61.74164322610 4.00000000000 0 Changed scale rank. 33734 27343 27343 7 7 3579925.00000000000 Saint Georgee۪s 1 5 5.1
45 4 50 0 Admin-0 capital Manama 0 Manama 1.00000000000 0.00000000000 0 Bahrain BHR Bahrain BHR BH 26.23613629050 50.58305171590 4.00000000000 0 Changed scale rank. 563920 157474 563666 11 9 290340.00000000000 Manama 1 5 5.6
46 4 50 0 Admin-0 capital Saint John's 0 Saint John's 1.00000000000 0.00000000000 0 Antigua and Barbuda ATG Antigua and Barbuda ATG AG 17.11803651830 -61.85003381510 4.00000000000 0 Changed scale rank. 35499 24226 0 7 7 3576022.00000000000 Saint John's 1 5 5.1
47 3 110 8 Admin-0 capital Montevideo 0 Montevideo 1.00000000000 0.00000000000 1 Uruguay URY Uruguay URY Montevideo UY -34.85804156620 -56.17105228840 0.00000000000 0 1513000 5324 1276128 12 5 5038018.00000000000 Montevideo Montevideo 1 0 4.0
48 3 110 8 Admin-0 capital Lomé Lome 0 Lome 1.00000000000 0.00000000000 1 Togo TGO Togo TGO Maritime TG 6.13193707166 1.22275711936 0.00000000000 0 1452000 749700 1256715 12 11 2365267.00000000000 Lomi Lome 1 0 5.0
49 3 110 7 Admin-0 capital Tunis 0 Tunis 1.00000000000 0.00000000000 0 Tunisia TUN Tunisia TUN Tunis TN 36.80277813620 10.17967809920 0.00000000000 0 2412500 728453 1675117 12 11 2464470.00000000000 Tunis 1 0 5.0
50 3 110 8 Admin-0 capital Abu Dhabi 0 Abu Dhabi 1.00000000000 0.00000000000 0 United Arab Emirates ARE United Arab Emirates ARE Abu Dhabi AE 24.46668357240 54.36659338260 0.00000000000 0 603492 560230 560230 11 11 292968.00000000000 Abu Dhabi 1 0 5.0
51 3 110 8 Admin-0 capital Ashgabat 0 Ashgabat 1.00000000000 0.00000000000 0 Turkmenistan TKM Turkmenistan TKM Ahal TM 37.94999493310 58.38329911180 0.00000000000 0 727700 577982 556048 11 11 162183.00000000000 Ashgabat 1 0 5.0
52 3 110 6 Admin-0 capital Lusaka 0 Lusaka 1.00000000000 0.00000000000 1 Zambia ZMB Zambia ZMB Lusaka ZM -15.41664426790 28.28332759470 0.00000000000 0 1328000 1267440 1240558 12 12 909137.00000000000 Lusaka Lusaka 1 0 4.0
53 3 110 6 Admin-0 capital Harare 0 Harare 1.00000000000 0.00000000000 1 Zimbabwe ZWE Zimbabwe ZWE Harare ZW -17.81778969440 31.04470943070 0.00000000000 0 1572000 1542813 1831877 12 12 890299.00000000000 Harare Harare 1 0 4.0
54 3 110 8 Admin-0 capital Dili 0 Dili 1.00000000000 0.00000000000 0 East Timor TLS East Timor TLS Dili TL -8.55938840855 125.57945593200 0.00000000000 0 234331 193563 55154 10 9 1645457.00000000000 Dili 1 0 5.0
55 3 110 8 Admin-0 capital Port Vila 0 Port Vila 1.00000000000 0.00000000000 0 Vanuatu VUT Vanuatu VUT Shefa VU -17.73335040400 168.31664058400 0.00000000000 0 44040 35901 7702 7 7 2135171.00000000000 Port-Vila 1 0 4.0
56 3 110 8 Admin-0 capital Tegucigalpa 0 Tegucigalpa 1.00000000000 0.00000000000 1 Honduras HND Honduras HND Francisco Morazán HN 14.10204490050 -87.21752933930 0.00000000000 0 946000 850848 1014546 11 11 3600949.00000000000 Tegucigalpa Tegucigalpa 1 0 5.0
57 3 110 8 Admin-0 capital Georgetown 0 Georgetown 1.00000000000 0.00000000000 0 Guyana GUY Guyana GUY East Berbice-Corentyne GY 6.80197369275 -58.16702864750 0.00000000000 0 264350 235017 264350 10 10 3378644.00000000000 Georgetown1 1 5 4.0
58 3 110 8 Admin-0 capital Reykjavík 1 Reykjavik 1.00000000000 0.00000000000 0 Iceland ISL Iceland ISL Suðurnes IS 64.15002361970 -21.95001448720 0.00000000000 0 166212 113906 160116 9 9 3413829.00000000000 Reykjavik 1 0 3.7
59 3 110 8 Admin-0 capital Port-au-Prince 0 Port-au-Prince 1.00000000000 0.00000000000 1 Haiti HTI Haiti HTI Ouest HT 18.54102459610 -72.33603458830 0.00000000000 0 1998000 1234742 2385397 12 12 3718426.00000000000 Port-au-Prince Port-au-Prince 1 0 5.0
60 3 110 5 Admin-0 capital Kampala 0 Kampala 1.00000000000 0.00000000000 1 Uganda UGA Uganda UGA Kampala UG 0.31665895477 32.58332352570 0.00000000000 0 1420000 1353189 2153702 12 12 232422.00000000000 Kampala Kampala 1 0 5.0
61 3 110 8 Admin-0 capital Paramaribo 0 Paramaribo 1.00000000000 0.00000000000 0 Suriname SUR Suriname SUR Paramaribo SR 5.83503012992 -55.16703088540 0.00000000000 0 254169 223757 248161 10 10 3383330.00000000000 Paramaribo 1 5 5.0
62 3 110 6 Admin-0 capital Niamey 0 Niamey 1.00000000000 0.00000000000 1 Niger NER Niger NER Niamey NE 13.51670595190 2.11665604514 0.00000000000 0 915000 742791 715325 11 11 2440485.00000000000 Niamey Niamey 1 0 5.0
63 3 110 8 Admin-0 capital Dushanbe 0 Dushanbe 1.00000000000 0.00000000000 0 Tajikistan TJK Tajikistan TJK Tadzhikistan Territories TJ 38.56003521630 68.77387935270 0.00000000000 0 1086244 679400 1081361 12 11 1221874.00000000000 Dushanbe 1 0 5.0
64 3 110 7 Admin-0 capital Asunción Asuncion 1 Asuncion 1.00000000000 0.00000000000 1 Paraguay PRY Paraguay PRY Asunción PY -25.29640297570 -57.64150516930 0.00000000000 0 1870000 11693 636771 12 6 1730025.00000000000 Asuncian Asuncion 1 5 4.0
65 3 110 8 Admin-0 capital Managua 0 Managua 1.00000000000 0.00000000000 1 Nicaragua NIC Nicaragua NIC Managua NI 12.15301658010 -86.26849166030 0.00000000000 0 920000 920000 1088194 11 11 3617763.00000000000 Managua Managua 1 0 5.0
66 3 110 8 Admin-0 capital Freetown 0 Freetown 1.00000000000 0.00000000000 1 Sierra Leone SLE Sierra Leone SLE Western SL 8.47001141249 -13.23421574040 0.00000000000 0 827000 13768 1074640 11 6 2408770.00000000000 Freetown Freetown 1 0 5.0
67 3 110 2 Admin-0 capital Islamabad 0 Islamabad 1.00000000000 0.00000000000 1 Pakistan PAK Pakistan PAK F.C.T. PK 33.69999595030 73.16663447970 0.00000000000 0 780000 601600 893673 11 11 1176615.00000000000 Islamabad Islamabad 1 0 5.0
68 3 110 6 Admin-0 capital Kathmandu 0 Kathmandu 1.00000000000 0.00000000000 1 Nepal NPL Nepal NPL Bhaktapur NP 27.71669191390 85.31664221080 0.00000000000 0 895000 895000 1099610 11 11 1283240.00000000000 Kathmandu Kathmandu 1 0 5.0
69 3 110 3 Admin-0 capital Bloemfontein 0 Bloemfontein 1.00000000000 Judicial capita 0.00000000000 0 South Africa ZAF South Africa ZAF Orange Free State ZA -29.11999387740 26.22991288120 4.00000000000 0 Changed scale rank. 463064 456669 456513 10 10 1018725.00000000000 Bloemfontein 1 0 5.0
70 3 110 3 Admin-0 capital Pretoria 0 Pretoria 1.00000000000 Administrative 0.00000000000 1 South Africa ZAF South Africa ZAF Gauteng ZA -25.70692055380 28.22942907580 0.00000000000 0 1338000 1338000 1443084 12 12 964137.00000000000 Pretoria Pretoria 1 0 5.0
71 3 110 8 Admin-0 capital Port Moresby 0 Port Moresby 1.00000000000 0.00000000000 0 Papua New Guinea PNG Papua New Guinea PNG Central PG -9.46470782587 147.19250362100 0.00000000000 0 283733 251136 251304 10 10 2088122.00000000000 Port Moresby 1 0 4.0
72 3 110 8 Admin-0 capital Honiara 0 Honiara 1.00000000000 0.00000000000 0 Solomon Islands SLB Solomon Islands SLB Guadalcanal SB -9.43799429509 159.94976573400 0.00000000000 0 76328 56298 76328 8 8 2108502.00000000000 Honiara 1 0 5.0
73 3 110 8 Admin-0 capital Panama City Ciudad de Panam 0 Panama City 1.00000000000 0.00000000000 1 Panama PAN Panama PAN Panama PA 8.96801719048 -79.53303715180 0.00000000000 0 1281000 408168 939725 12 10 3703443.00000000000 Ciudad de Panam Panama City1 1 0 5.0
74 3 110 5 Admin-0 capital Rabat 0 Rabat 1.00000000000 0.00000000000 1 Morocco MAR Morocco MAR Rabat - Salé - Zemmour - Zaer MA 34.02529909160 -6.83613082013 0.00000000000 0 1705000 1655753 2029349 12 12 2538475.00000000000 Rabat Rabat 1 0 5.0
75 3 110 8 Admin-0 capital Chișinău 0 Chisinau 1.00000000000 0.00000000000 0 Moldova MDA Moldova MDA Chisinau MD 47.00502361970 28.85771113970 0.00000000000 0 688134 635994 664472 11 11 618426.00000000000 Chisinau 1 5 5.0
76 3 110 6 Admin-0 capital Maputo 0 Maputo 1.00000000000 0.00000000000 1 Mozambique MOZ Mozambique MOZ Maputo MZ -25.95527748740 32.58916296260 0.00000000000 0 1446000 1191613 1365454 12 12 1040652.00000000000 Maputo Maputo 1 0 5.0
77 3 110 8 Admin-0 capital Mogadishu Muqdisho 0 Mogadishu 1.00000000000 0.00000000000 1 Somalia SOM Somalia SOM Banaadir SO 2.06668133433 45.36667761110 0.00000000000 0 1100000 875388 849392 12 11 53654.00000000000 Muqdisho Mogadishu 1 5 4.0
78 3 110 8 Admin-0 capital Muscat 0 Muscat 1.00000000000 0.00000000000 0 Oman OMN Oman OMN Muscat OM 23.61332480770 58.59331213260 0.00000000000 0 734697 586861 586861 11 11 287286.00000000000 Muscat 1 0 5.0
79 3 110 6 Admin-0 capital Colombo 0 Colombo 1.00000000000 De facto, admin 0.00000000000 0 Sri Lanka LKA Sri Lanka LKA Colombo LK 6.93196575818 79.85775060930 0.00000000000 0 217000 217000 2490974 10 10 3465927.00000000000 Colombo 1 5 5.0
80 3 110 7 Admin-0 capital Ulaanbaatar 0 Ulaanbaatar 1.00000000000 0.00000000000 1 Mongolia MNG Mongolia MNG Ulaanbaatar MN 47.91667339990 106.91661576200 0.00000000000 0 885000 769612 765359 11 11 2028462.00000000000 Ulaanbaatar Ulaanbaatar 1 0 4.0
81 3 110 6 Admin-0 capital Windhoek 0 Windhoek 1.00000000000 0.00000000000 0 Namibia NAM Namibia NAM Khomas NA -22.57000608440 17.08354610050 0.00000000000 0 268132 262796 262796 10 10 3352136.00000000000 Windhoek 1 0 5.0
82 3 110 2 Admin-0 capital Abuja 0 Abuja 1.00000000000 Official and ad 0.00000000000 1 Nigeria NGA Nigeria NGA Federal Capital Territory NG 9.08333314914 7.53332800155 4.00000000000 0 Changed scale rank. 1576000 162135 0 12 9 2322794.00000000000 Abuja Abuja 1 5 4.0
83 3 110 8 Admin-0 capital Bissau 0 Bissau 1.00000000000 0.00000000000 0 Guinea Bissau GNB Guinea Bissau GNB Bissau GW 11.86502382300 -15.59836084130 0.00000000000 0 403339 388028 403339 10 10 2374775.00000000000 Bissau 1 0 5.0
84 3 110 8 Admin-0 capital Amman 0 Amman 1.00000000000 0.00000000000 1 Jordan JOR Jordan JOR Amman JO 31.95002524720 35.93329992550 0.00000000000 0 1060000 1060000 2633729 12 12 250441.00000000000 Amman Amman 1 0 5.0
85 3 110 8 Admin-0 capital Vilnius 0 Vilnius 1.00000000000 0.00000000000 0 Lithuania LTU Lithuania LTU Vilniaus LT 54.68336631180 25.31663529330 0.00000000000 0 542366 507029 494356 11 11 593116.00000000000 Vilnius 1 0 5.0
86 3 110 8 Admin-0 capital Riga 0 Riga 1.00000000000 0.00000000000 0 Latvia LVA Latvia LVA Riga LV 56.95002382320 24.09996537140 0.00000000000 0 742572 705033 0 11 11 456172.00000000000 Riga 1 0 4.0
87 3 110 8 Admin-0 capital Bishkek 0 Bishkek 1.00000000000 0.00000000000 1 Kyrgyzstan KGZ Kyrgyzstan KGZ Bishkek KG 42.87307944650 74.58520422250 0.00000000000 0 837000 804212 781714 11 11 1528675.00000000000 Bishkek Bishkek 1 5 5.0
88 3 110 8 Admin-0 capital Maseru 0 Maseru 1.00000000000 0.00000000000 0 Lesotho LSO Lesotho LSO Maseru LS -29.31667437870 27.48327307000 0.00000000000 0 361324 118355 356225 10 9 932505.00000000000 Maseru 1 0 5.0
89 3 110 6 Admin-0 capital Antananarivo 0 Antananarivo 1.00000000000 0.00000000000 1 Madagascar MDG Madagascar MDG Antananarivo MG -18.91663735060 47.51662390010 0.00000000000 0 1697000 1391433 1844658 12 12 1070940.00000000000 Antananarivo Antananarivo 1 0 5.0
90 3 110 7 Admin-0 capital Quito 0 Quito 1.00000000000 0.00000000000 1 Ecuador ECU Ecuador ECU Pichincha EC -0.21498818065 -78.50005110850 0.00000000000 0 1701000 1399814 1435528 12 12 3652462.00000000000 Quito Quito 1 0 4.0
91 3 110 8 Admin-0 capital San José San Jose 1 San Jose 1.00000000000 0.00000000000 1 Costa Rica CRI Costa Rica CRI San José CR 9.93501242974 -84.08405135270 0.00000000000 0 1284000 1724 1434681 12 3 3669623.00000000000 San Josi San Jose1 1 5 5.0
92 3 110 8 Admin-0 capital San Salvador 0 San Salvador 1.00000000000 0.00000000000 1 El Salvador SLV El Salvador SLV San Salvador SV 13.71000164690 -89.20304122080 0.00000000000 0 1433000 2807 2139587 12 4 1690681.00000000000 San Salvador San Salvador 1 5 5.0
93 3 110 8 Admin-0 capital Kingston 0 Kingston 1.00000000000 0.00000000000 0 Jamaica JAM Jamaica JAM Kingston JM 17.97707662380 -76.76743371370 4.00000000000 0 Location adjusted. 937700 664973 18171 11 11 3489854.00000000000 Kingston1 1 5 5.0
94 3 110 7 Admin-0 capital Ndjamena N'Djamnna 0 Ndjamena 1.00000000000 0.00000000000 1 Chad TCD Chad TCD Hadjer-Lamis TD 12.11309653620 15.04914831410 0.00000000000 0 989000 681387 686347 11 11 2427123.00000000000 N'Djam-na Ndjamena 1 0 5.0
95 3 110 8 Admin-0 capital Malabo 0 Malabo 1.00000000000 0.00000000000 0 Equatorial Guinea GNQ Equatorial Guinea GNQ Bioko Norte GQ 3.75001527803 8.78327754582 4.00000000000 0 Location adjusted. 155963 155963 0 9 9 2309527.00000000000 Malabo 1 0 5.0
96 3 110 8 Admin-0 capital Asmara 0 Asmara 1.00000000000 0.00000000000 0 Eritrea ERI Eritrea ERI Anseba ER 15.33333925270 38.93332352580 0.00000000000 0 620802 563930 587094 11 11 343300.00000000000 Asmara 1 0 5.0
97 3 110 8 Admin-0 capital Zagreb 0 Zagreb 1.00000000000 0.00000000000 0 Croatia HRV Croatia HRV Grad Zagreb HR 45.80000673330 15.99999466820 0.00000000000 0 722526 698966 690638 11 11 3186886.00000000000 Zagreb 1 0 5.0
98 3 110 8 Admin-0 capital Tallinn 0 Tallinn 1.00000000000 0.00000000000 0 Estonia EST Estonia EST Harju EE 59.43387737950 24.72804072950 0.00000000000 0 394024 340027 317949 10 10 588409.00000000000 Tallinn 1 0 5.0
99 3 110 8 Admin-0 capital Lilongwe 0 Lilongwe 1.00000000000 0.00000000000 0 Malawi MWI Malawi MWI Lilongwe MW -13.98329506550 33.78330196000 0.00000000000 0 646750 646750 1061388 11 11 927967.00000000000 Lilongwe 1 0 5.0
100 3 110 8 Admin-0 capital Guatemala Ciudad de Guatemala (Guatemala City) 0 Guatemala 1.00000000000 0.00000000000 1 Guatemala GTM Guatemala GTM Guatemala GT 14.62113466280 -90.52696557790 0.00000000000 0 1024000 994938 2391150 12 11 3598132.00000000000 Ciudad de Guatemala (Guatemala City) Guatemala 1 0 5.0
101 3 110 7 Admin-0 capital Libreville 0 Libreville 1.00000000000 0.00000000000 0 Gabon GAB Gabon GAB Estuaire GA 0.38538860972 9.45796504582 0.00000000000 0 578156 483355 483522 11 10 2399697.00000000000 Libreville 1 0 5.0
102 3 110 8 Admin-0 capital Suva 0 Suva 1.00000000000 0.00000000000 0 Fiji FJI Fiji FJI Central FJ -18.13301593140 178.44170731500 4.00000000000 0 Location adjusted. 175399 88271 0 9 8 2198148.00000000000 Suva 1 0 5.0
103 3 110 3 Admin-0 capital alt Valparaíso Valparaiso 1 Valparaiso 0.00000000000 1 Legislative cap 0.00000000000 1 Chile CHL Chile CHL Valparaíso CL -33.04776446660 -71.62101363290 4.00000000000 0 Changed scale rank. 854000 15938 130815 11 6 3445575.00000000000 Valpara so Valparaiso2 1 0 5.0
104 3 110 7 Admin-0 capital Nouakchott 0 Nouakchott 1.00000000000 0.00000000000 0 Mauritania MRT Mauritania MRT Nouakchott MR 18.08642702120 -15.97534041490 0.00000000000 0 742144 661400 742144 11 11 2377450.00000000000 Nouakchott 1 0 5.0
105 3 110 6 Admin-0 capital Bamako 0 Bamako 1.00000000000 0.00000000000 1 Mali MLI Mali MLI Bamako ML 12.65001466770 -8.00003910464 0.00000000000 0 1494000 1297281 1301407 12 12 2460596.00000000000 Bamako Bamako 1 0 4.0
106 3 110 8 Admin-0 capital Beirut Bayrut 0 Beirut 1.00000000000 0.00000000000 1 Lebanon LBN Lebanon LBN Beirut LB 33.87197511700 35.50970821000 0.00000000000 0 1846000 1712125 1661980 12 12 276781.00000000000 Bayrut Beirut 1 5 5.0
107 3 110 8 Admin-0 capital Tbilisi T'Bilisi 0 Tbilisi 1.00000000000 0.00000000000 1 Georgia GEO Georgia GEO Tbilisi GE 41.72500998850 44.79079544960 0.00000000000 0 1100000 1005257 977179 12 12 611717.00000000000 Tbilisi Tbilisi 1 0 5.0
108 3 110 6 Admin-0 capital Astana 0 Astana 1.00000000000 0.00000000000 0 Kazakhstan KAZ Kazakhstan KAZ Aqmola KZ 51.18112530430 71.42777420950 0.00000000000 0 345604 325021 317445 10 10 1526273.00000000000 Astana 1 0 4.0
109 3 110 8 Admin-0 capital Vientiane 0 Vientiane 1.00000000000 0.00000000000 0 Laos LAO Laos LAO Vientiane [prefecture] LA 17.96669272760 102.59998002000 0.00000000000 0 754000 570348 469811 11 11 1651944.00000000000 Vientiane 1 0 5.0
110 3 110 7 Admin-0 capital Brazzaville 0 Brazzaville 1.00000000000 0.00000000000 1 Congo (Brazzaville) COG Congo (Brazzaville) COG Pool CG -4.25918577181 15.28468949250 0.00000000000 0 1355000 1163890 1174778 12 12 2260535.00000000000 Brazzaville Brazzaville 1 0 5.0
111 3 110 8 Admin-0 capital Conakry 0 Conakry 1.00000000000 0.00000000000 1 Guinea GIN Guinea GIN Conakry GN 9.53152284641 -13.68023502750 0.00000000000 0 1494000 1494000 1498020 12 12 2422465.00000000000 Conakry Conakry 1 5 5.0
112 3 110 8 Admin-0 capital Yamoussoukro 0 Yamoussoukro 1.00000000000 1 Official capita 0.00000000000 0 Ivory Coast CIV Ivory Coast CIV Lacs CI 6.81838096000 -5.27550256491 4.00000000000 0 Changed scale rank. 206499 194530 206499 10 9 2279755.00000000000 Yamoussoukro 1 0 5.0
113 3 110 2 Admin-0 capital Ottawa Ottawa-Gatineau 0 Ottawa 1.00000000000 0.00000000000 1 Canada CAN Canada CAN Ontario CA 45.41669679670 -75.70001530120 0.00000000000 0 1145000 812129 872781 12 11 6094817.00000000000 Ottawa-Gatineau Ottawa 1 5 3.0
114 3 110 8 Admin-0 capital Belgrade Beograd 0 Belgrade 1.00000000000 0.00000000000 1 Republic of Serbia SRB Serbia SRB Grad Beograd RS 44.81864544580 20.46799068060 0.00000000000 0 1099000 1099000 1271541 12 12 792680.00000000000 Beograd Belgrade 1 0 5.0
115 3 110 8 Admin-0 capital Bandar Seri Begawan 0 Bandar Seri Begawan 1.00000000000 0.00000000000 0 Brunei BRN Brunei BRN Brunei and Muara BN 4.88333111462 114.93328405700 0.00000000000 0 296500 140000 222513 10 9 1820906.00000000000 Bandar Seri Begawan 1 0 5.0
116 3 110 6 Admin-0 capital Sucre 0 Sucre 1.00000000000 Official (const 0.00000000000 0 Bolivia BOL Bolivia BOL Chuquisaca BO -19.04097084670 -65.25951562670 0.00000000000 0 224838 221736 221736 10 10 3903987.00000000000 Sucre 1 0 4.7
117 3 110 8 Admin-0 capital Belmopan 0 Belmopan 1.00000000000 0.00000000000 0 Belize BLZ Belize BLZ Cayo BZ 17.25203350720 -88.76707299980 0.00000000000 0 15220 13381 15220 6 6 3582672.00000000000 Belmopan 1 0 5.0
118 3 110 7 Admin-0 capital Bangui 0 Bangui 1.00000000000 0.00000000000 0 Central African Republic CAF Central African Republic CAF Bangui CF 4.36664430635 18.55828812530 0.00000000000 0 831925 622771 782274 11 11 2389853.00000000000 Bangui 1 0 5.0
119 3 110 6 Admin-0 capital Yaounde Yaounde 0 Yaounde 1.00000000000 0.00000000000 1 Cameroon CMR Cameroon CMR Centre CM 3.86670066214 11.51665075550 0.00000000000 0 1611000 1060587 1060747 12 12 2220957.00000000000 Yaound Yaounde 1 0 5.0
120 3 110 8 Admin-0 capital Tirana 0 Tirana 1.00000000000 0.00000000000 0 Albania ALB Albania ALB Durrës AL 41.32754070950 19.81888301460 0.00000000000 0 895350 421286 517792 11 10 3183875.00000000000 Tirana 1 0 5.0
121 3 110 8 Admin-0 capital Yerevan 0 Yerevan 1.00000000000 0.00000000000 1 Armenia ARM Armenia ARM Erevan AM 40.18115073550 44.51355139040 0.00000000000 0 1102000 1093485 1154748 12 12 616052.00000000000 Yerevan Yerevan 1 5 5.0
122 3 110 8 Admin-0 capital Baku 0 Baku 1.00000000000 0.00000000000 1 Azerbaijan AZE Azerbaijan AZE Baki AZ 40.39527203270 49.86221716190 0.00000000000 0 2122300 1892000 1518801 12 12 587084.00000000000 Baku Baku 1 0 5.0
123 3 110 8 Admin-0 capital Phnom Penh Phnum Penh 0 Phnom Penh 1.00000000000 0.00000000000 1 Cambodia KHM Cambodia KHM Phnom Penh KH 11.55003012990 104.91663448000 0.00000000000 0 1466000 1466000 1604086 12 12 1821306.00000000000 Phnum Penh Phnom Penh 1 5 5.0
124 3 110 6 Admin-0 capital La Paz 0 La Paz 1.00000000000 Administrative 0.00000000000 1 Bolivia BOL Bolivia BOL La Paz BO -16.49797361370 -68.14998519050 0.00000000000 0 1590000 812799 4400 12 11 3911925.00000000000 La Paz La Paz3 1 0 4.0
125 3 110 8 Admin-0 capital Cotonou 0 Cotonou 1.00000000000 De facto, admin 0.00000000000 1 Benin BEN Benin BEN Ouémé BJ 6.40000856417 2.51999059918 0.00000000000 0 762000 690584 1060640 11 11 2394819.00000000000 Cotonou Cotonou 1 0 5.0
126 3 110 7 Admin-0 capital Sofia 0 Sofia 1.00000000000 0.00000000000 1 Bulgaria BGR Bulgaria BGR Grad Sofiya BG 42.68334942530 23.31665401070 0.00000000000 0 1185000 874827 871735 12 11 727011.00000000000 Sofia Sofia 1 0 5.0
127 3 110 6 Admin-0 capital Minsk 0 Minsk 1.00000000000 0.00000000000 1 Belarus BLR Belarus BLR Minsk BY 53.89997743640 27.56662715530 0.00000000000 0 1805000 1577138 1557919 12 12 625144.00000000000 Minsk Minsk 1 0 5.0
128 3 110 8 Admin-0 capital Thimphu 0 Thimphu 1.00000000000 0.00000000000 0 Bhutan BTN Bhutan BTN Thimphu BT 27.47298585920 89.63901403700 4.00000000000 0 Location adjusted. 98676 79185 0 8 8 1252416.00000000000 Thimphu 1 0 5.0
129 3 110 7 Admin-0 capital Gaborone 0 Gaborone 1.00000000000 0.00000000000 0 Botswana BWA Botswana BWA South-East BW -24.64631345740 25.91194779330 0.00000000000 0 208411 159243 158896 10 9 933773.00000000000 Gaborone 1 0 5.0
130 3 110 3 Admin-0 capital Canberra 0 Canberra 1.00000000000 0.00000000000 0 Australia AUS Australia AUS Australian Capital Territory AU -35.28302854540 149.12902624400 4.00000000000 0 Location adjusted. 327700 234032 0 10 10 2172517.00000000000 Canberra 1 0 4.0
131 3 110 8 Admin-0 capital Ouagadougou 0 Ouagadougou 1.00000000000 0.00000000000 1 Burkina Faso BFA Burkina Faso BFA Kadiogo BF 12.37031597790 -1.52472375630 0.00000000000 0 1149000 835457 713874 12 11 2357048.00000000000 Ouagadougou Ouagadougou 1 0 5.0
132 3 110 8 Admin-0 capital Sarajevo 0 Sarajevo 1.00000000000 0.00000000000 0 Bosnia and Herzegovina BIH Bosnia and Herzegovina BIH Sarajevo BA 43.85002239900 18.38300166700 0.00000000000 0 696731 628902 627065 11 11 3191281.00000000000 Sarajevo 1 5 5.0
133 3 110 5 Admin-0 capital Naypyidaw Nay Pyi Taw 0 Naypyidaw 1.00000000000 0.00000000000 1 Myanmar MMR Myanmar MMR Mandalay MM 19.76655702610 96.11861852920 4.00000000000 0 Location adjusted. 930000 194824 0 11 9 6611854.00000000000 Nay Pyi Taw Naypyidaw 1 0 5.0
134 3 110 0 Admin-0 capital Nukualofa 0 Nukualofa 1.00000000000 0.00000000000 0 Tonga TON Tonga TON TO -21.13851235670 -175.22056447800 4.00000000000 0 Location adjusted. 42620 23658 42620 7 7 4032402.00000000000 Nukualofa 1 5 5.0
135 3 110 0 Admin-0 capital Hargeysa 0 Hargeysa 1.00000000000 0.00000000000 0 Somaliland SOL Somaliland SOL -99 9.56002239882 44.06531001670 4.00000000000 0 Changed scale rank. 477876 247018 247018 10 10 57289.00000000000 Hargeysa 1 5 5.0
136 3 110 0 Admin-0 capital Victoria 0 Victoria 1.00000000000 0.00000000000 0 Seychelles SYC Seychelles SYC SC -4.61663165397 55.44998978560 0.00000000000 0 33576 22881 33737 7 7 241131.00000000000 Victoria4 1 5 5.0
137 3 110 0 Admin-0 capital São Tomé 1 Sao Tome 1.00000000000 0.00000000000 0 Sao Tome and Principe STP Sao Tome and Principe STP ST 0.33340211883 6.73332515323 0.00000000000 0 88219 56166 88219 8 8 3388092.00000000000 Sao Tome 1 5 5.0
138 3 110 0 Admin-0 capital Apia 0 Apia 1.00000000000 0.00000000000 0 Samoa WSM Samoa WSM WS -13.84154504240 -171.73864160900 4.00000000000 0 Location adjusted. 61916 37708 0 8 7 3689793.00000000000 Apia 1 5 5.0
139 3 110 0 Admin-0 capital Valletta 0 Valletta 1.00000000000 0.00000000000 0 Malta MLT Malta MLT MT 35.89973248190 14.51471065130 0.00000000000 0 368250 6966 336174 10 5 2562305.00000000000 Valletta 1 5 5.0
140 3 110 0 Admin-0 capital Malé 1 Male 1.00000000000 0.00000000000 0 Maldives MDV Maldives MDV MV 4.16670818981 73.49994746800 0.00000000000 0 112927 103693 0 9 9 3174186.00000000000 Male 1 5 5.0
141 3 110 0 Admin-0 capital Jerusalem 0 Jerusalem 1.00000000000 De facto capita 0.00000000000 0 Israel IS1 Israel ISR Jerusalem IL 31.77840781560 35.20662593460 0.00000000000 0 1029300 801000 1072567 12 11 281184.00000000000 Jerusalem 1 0 3.7
142 3 110 0 Admin-0 capital Praia 0 Praia 1.00000000000 0.00000000000 0 Cape Verde CPV Cape Verde CPV CV 14.91669801730 -23.51668888500 0.00000000000 0 113364 88859 89205 9 8 3374333.00000000000 Praia 1 5 5.0
143 3 110 0 Admin-0 capital Nassau 0 Nassau 1.00000000000 0.00000000000 0 Bahamas, The BHS The Bahamas BHS BS 25.08339011540 -77.35004378430 0.00000000000 0 227940 160966 0 10 9 3571824.00000000000 Nassau 1 5 5.0
144 3 110 0 Admin-0 capital Nicosia 0 Nicosia 1.00000000000 Capital of both 0.00000000000 0 Cyprus CYP Cyprus CYP CY 35.16667645170 33.36663488640 0.00000000000 0 224300 200452 222985 10 10 146268.00000000000 Nicosia 1 5 5.0
145 3 110 8 Admin-0 capital Wellington 0 Wellington 1.00000000000 0.00000000000 0 New Zealand NZL New Zealand NZL Manawatu-Wanganui NZ Wellington metropolitan area -41.29998785369 174.78326585928 0.00000000000 0 393400 393400 0 10 9 2144168.00000000000 Wellington 1 0 4.0
146 2 200 5 Admin-0 capital Hanoi H 0 Hanoi 1.00000000000 0.00000000000 1 Vietnam VNM Vietnam VNM Thái Nguyên VN 21.03332724910 105.85001420000 5.00000000000 0 Changed scale rank. 4378000 1431270 5466347 12 12 1581130.00000000000 Hh Noi Hanoi 1 0 4.0
147 2 200 5 Admin-0 capital Ankara 0 Ankara 1.00000000000 0.00000000000 1 Turkey TUR Turkey TUR Ankara TR 39.92723858550 32.86439164100 5.00000000000 0 Changed scale rank. 3716000 3307379 3267576 12 12 323786.00000000000 Ankara Ankara 1 0 4.0
148 2 200 6 Admin-0 capital Budapest 0 Budapest 1.00000000000 1.00000000000 1 Hungary HUN Hungary HUN Budapest HU 47.50000632640 19.08332067740 4.00000000000 0 Changed scale rank. 1679000 1679000 1718895 12 12 3054643.00000000000 Budapest Budapest 1 0 4.7
149 2 200 6 Admin-0 capital Sanaa Sana'a' 0 Sanaa 1.00000000000 0.00000000000 1 Yemen YEM Yemen YEM Amanat Al Asimah YE 15.35473329570 44.20659338260 5.00000000000 0 Changed scale rank. 2008000 1835853 1742507 12 12 71137.00000000000 Sana'a' Sanaa 1 0 4.0
150 2 200 6 Admin-0 capital Bucharest Bucuresti 0 Bucharest 1.00000000000 1.00000000000 1 Romania ROU Romania ROU Bucharest RO 44.43337180490 26.09994665400 4.00000000000 0 Changed scale rank. 1942000 1742194 1636574 12 12 683506.00000000000 Bucuresti Bucharest 1 0 4.0
151 2 200 6 Admin-0 capital Damascus Dimashq 0 Damascus 1.00000000000 0.00000000000 1 Syria SYR Syria SYR Damascus SY 33.50003399560 36.29999588900 5.00000000000 0 Changed scale rank. 2466000 2466000 3344577 12 12 170654.00000000000 Dimashq Damascus 1 0 4.7
152 2 200 6 Admin-0 capital Lisbon Lisboa 0 Lisbon 1.00000000000 1.00000000000 1 Portugal PRT Portugal PRT Lisboa PT 38.72272287790 -9.14486630549 4.00000000000 0 Location adjusted. Changed scale rank. 2812000 517802 1795582 12 11 2267057.00000000000 Lisboa Lisbon 1 0 4.0
153 2 200 5 Admin-0 capital Khartoum Al-Khartum 0 Khartoum 1.00000000000 0.00000000000 1 Sudan SDN Sudan SDN Khartoum SD 15.58807822570 32.53417923860 5.00000000000 0 Changed scale rank. 4754000 1974647 2325931 12 12 379252.00000000000 Al-Khartum Khartoum 1 0 4.0
154 2 200 7 Admin-0 capital Oslo 0 Oslo 1.00000000000 1.00000000000 1 Kingdom of Norway NOR Norway NOR Oslo NO 59.91669028640 10.74997920600 4.00000000000 0 Changed scale rank. 835000 580000 701804 11 11 3143244.00000000000 Oslo Oslo 1 0 4.0
155 2 200 5 Admin-0 capital Warsaw Warszawa 0 Warsaw 1.00000000000 1.00000000000 1 Poland POL Poland POL Masovian PL 52.25000062980 20.99999955110 4.00000000000 0 Changed scale rank. 1707000 1702139 2012431 12 12 756135.00000000000 Warszawa Warsaw 1 0 4.0
156 2 200 6 Admin-0 capital Pyongyang P'yongyang 0 Pyongyang 1.00000000000 0.00000000000 1 Korea, North PRK North Korea PRK P'yongyang KP 39.01943869940 125.75469071400 5.00000000000 0 Changed scale rank. 3300000 2498797 2483216 12 12 1871859.00000000000 P'yongyang Pyongyang 1 0 4.7
157 2 200 5 Admin-0 capital Dar es Salaam 0 Dar es Salaam 1.00000000000 De facto capita 0.00000000000 1 United Republic of Tanzania TZA Tanzania TZA Dar-Es-Salaam TZ -6.80001259474 39.26834183630 5.00000000000 0 Changed scale rank. 2930000 2698652 2757835 12 12 160263.00000000000 Dar es Salaam Dar es Salaam 1 0 4.0
158 2 200 8 Admin-0 capital Dublin 0 Dublin 1.00000000000 1.00000000000 1 Ireland IRL Ireland IRL Dublin IE 53.33306113600 -6.24890568178 0.00000000000 0 1059000 968976 22478 12 11 2964574.00000000000 Dublin Dublin2 1 0 4.0
159 2 200 8 Admin-0 capital Monrovia 0 Monrovia 1.00000000000 0.00000000000 1 Liberia LBR Liberia LBR Montserrado LR 6.31055665987 -10.80475162910 0.00000000000 0 1041000 785662 806416 12 11 2274895.00000000000 Monrovia Monrovia 1 0 4.0
160 2 200 6 Admin-0 capital Kuala Lumpur 0 Kuala Lumpur 1.00000000000 Official and le 1.00000000000 1 Malaysia MYS Malaysia MYS Selangor MY 3.16666587210 101.69998327500 0.00000000000 0 1448000 1448000 2667990 12 12 1735161.00000000000 Kuala Lumpur Kuala Lumpur 1 0 4.0
161 2 200 6 Admin-0 capital Havana La Habana 0 Havana 1.00000000000 0.00000000000 1 Cuba CUB Cuba CUB Ciudad de la Habana CU 23.13195884090 -82.36418217130 5.00000000000 0 Changed scale rank. 2174000 1990917 1930305 12 12 3553478.00000000000 La Habana Havana 1 0 4.0
162 2 200 7 Admin-0 capital Prague Praha 0 Prague 1.00000000000 1.00000000000 1 Czech Republic CZE Czech Republic CZE Prague CZ 50.08333701490 14.46597977570 4.00000000000 0 Changed scale rank. 1162000 2087 1088042 12 4 4548393.00000000000 Praha Prague 1 0 4.7
163 2 200 8 Admin-0 capital Kuwait Al Kuwayt|Kuwait City 0 Kuwait 1.00000000000 0.00000000000 1 Kuwait KWT Kuwait KWT Al Kuwayt KW 29.36971763000 47.97830114620 5.00000000000 0 Changed scale rank. 2063000 60064 1682968 12 8 285787.00000000000 Al Kuwayt (Kuwait City) Kuwait 1 5 4.0
164 2 200 8 Admin-0 capital Santo Domingo 0 Santo Domingo 1.00000000000 0.00000000000 1 Dominican Republic DOM Dominican Republic DOM Distrito Nacional DO 18.47007285460 -69.90008508470 5.00000000000 0 Changed scale rank. 2154000 2873 3322037 12 4 3668373.00000000000 Santo Domingo Santo Domingo 1 5 4.0
165 2 200 6 Admin-0 capital Accra 0 Accra 1.00000000000 0.00000000000 1 Ghana GHA Ghana GHA Greater Accra GH 5.55003460583 -0.21671574035 5.00000000000 0 Changed scale rank. 2121000 1963264 2334371 12 12 2306104.00000000000 Accra Accra 1 0 4.0
166 2 200 7 Admin-0 capital Tripoli 0 Tripoli 1.00000000000 0.00000000000 1 Libya LBY Libya LBY Tajura' wa an Nawahi al Arba LY 32.89250001940 13.18001175810 5.00000000000 0 Changed scale rank. 2189000 229398 1149981 12 10 -1.00000000000 Tarabulus Tripoli1 1 0 4.0
167 2 200 8 Admin-0 capital alt Tel Aviv-Yafo Tel Aviv-Jaffa 0 Tel Aviv-Yafo 0.00000000000 1 While Jerulsale 0.00000000000 1 Israel IS1 Israel ISR Tel Aviv IL 32.07999147440 34.77001175820 4.00000000000 0 Changed scale rank. 3112000 378358 2306851 12 10 293394.00000000000 Tel Aviv-Yafo Tel Aviv-Yafo 1 0 4.0
168 2 200 7 Admin-0 capital Helsinki 0 Helsinki 1.00000000000 1.00000000000 1 Finland FIN Finland FIN Southern Finland FI 60.17556337400 24.93412634150 4.00000000000 0 Changed scale rank. 1115000 558457 762958 12 11 658225.00000000000 Helsinki Helsinki 1 0 4.0
169 2 200 8 Admin-0 capital København Copenhagen 1 Kobenhavn 1.00000000000 1.00000000000 1 Denmark DNK Denmark DNK Hovedstaden DK 55.67856419040 12.56348574730 0.00000000000 0 1085000 1085000 1038288 12 12 2618425.00000000000 K Copenhagen 1 0 4.0
170 2 200 8 Admin-0 capital Abidjan 0 Abidjan 1.00000000000 De facto, admin 0.00000000000 1 Ivory Coast CIV Ivory Coast CIV Lagunes CI 5.31999696749 -4.04004825989 5.00000000000 0 Changed scale rank. 3802000 3190395 3181637 12 12 2293538.00000000000 Abidjan Abidjan 1 0 4.0
171 2 200 1 Admin-0 capital Brasília Brasilia 0 Brasilia 1.00000000000 0.00000000000 1 Brazil BRA Brazil BRA Distrito Federal BR -15.78334023150 -47.91605228840 5.00000000000 0 Changed scale rank. 3716996 2562963 1772679 12 12 3469058.00000000000 Brasglia Brasilia 1 0 3.7
172 2 200 8 Admin-0 capital Brussels Bruxelles-Brussel 0 Brussels 1.00000000000 1.00000000000 1 Belgium BEL Belgium BEL Brussels BE 50.83331707670 4.33331660830 0.00000000000 0 1743000 1019022 1490164 12 12 2800866.00000000000 Bruxelles-Brussel Brussels 1 5 4.7
173 2 200 2 Admin-0 capital Dhaka 0 Dhaka 1.00000000000 0.00000000000 1 Bangladesh BGD Bangladesh BGD Dhaka BD 23.72305971170 90.40857946670 5.00000000000 0 Changed scale rank. 12797394 7000940 14995538 14 13 1185241.00000000000 Dhaka Dhaka 1 0 4.0
174 2 200 6 Admin-0 capital Luanda 0 Luanda 1.00000000000 0.00000000000 1 Angola AGO Angola AGO Luanda AO -8.83828611363 13.23442704130 5.00000000000 0 Changed scale rank. 5172900 1951272 1951272 13 12 2240449.00000000000 Luanda Luanda 1 0 4.0
175 2 200 5 Admin-0 capital Algiers El Djazacr 0 Algiers 1.00000000000 0.00000000000 1 Algeria DZA Algeria DZA Alger DZ 36.76306479800 3.05055252952 5.00000000000 0 Changed scale rank. 3354000 1977663 3332619 12 12 2507480.00000000000 El Djazasr Algiers 1 5 4.0
176 2 200 5 Admin-0 capital Rangoon Yangon 0 Rangoon 0.00000000000 Former capital 0.00000000000 1 Myanmar MMR Myanmar MMR Yangon MM 16.78335410460 96.16667761130 5.00000000000 0 Changed scale rank. 4088000 3301820 3124090 12 12 1298824.00000000000 Yangon Rangoon 1 0 4.0
177 1 300 1 Populated place San Francisco San Francisco-Oakland 0 San Francisco 0.00000000000 1.00000000000 1 United States USA United States of America USA California US 37.74000775050 -122.45997766300 0.00000000000 0 3450000 732072 27400 12 11 5391959.00000000000 San Francisco-Oakland San Francisco1 1 0 2.7
178 1 300 1 Admin-1 capital Denver Denver-Aurora 0 Denver 0.00000000000 0.00000000000 1 United States USA United States of America USA Colorado US 39.73918804840 -104.98401595200 5.00000000000 0 Changed scale rank. 2313000 1548599 1521278 12 12 5419384.00000000000 Denver-Aurora Denver 1 0 3.7
179 1 300 1 Populated place Houston 0 Houston 0.00000000000 0.00000000000 1 United States USA United States of America USA Texas US 29.81997438460 -95.33997929050 5.00000000000 0 Changed scale rank. 4459000 3647574 3607616 12 12 4699066.00000000000 Houston Houston 1 0 3.0
180 1 300 1 Populated place Miami 0 Miami 0.00000000000 1.00000000000 1 United States USA United States of America USA Florida US 25.78761069640 -80.22410608080 0.00000000000 0 5585000 382894 1037811 13 10 4164138.00000000000 Miami Miami 1 0 2.1
181 1 300 1 Admin-1 capital Atlanta 0 Atlanta 0.00000000000 1.00000000000 1 United States USA United States of America USA Georgia US 33.83001385400 -84.39994938330 0.00000000000 0 4506000 422908 2874096 12 10 4180439.00000000000 Atlanta Atlanta 1 0 3.0
182 1 300 1 Populated place Chicago 0 Chicago 0.00000000000 1.00000000000 1 United States USA United States of America USA Illinois US 41.82999066070 -87.75005497410 0.00000000000 0 8990000 2841952 3635101 13 12 4887398.00000000000 Chicago Chicago 1 0 3.0
183 1 300 6 Admin-0 capital Caracas 0 Caracas 1.00000000000 1.00000000000 1 Venezuela VEN Venezuela VEN Distrito Capital VE 10.50099855440 -66.91703719240 4.00000000000 0 Changed scale rank. 2985000 1815679 2764555 12 12 3646738.00000000000 Caracas Caracas 1 0 3.0
184 1 300 5 Admin-0 capital Kiev Kyiv 0 Kiev 1.00000000000 0.00000000000 1 Ukraine UKR Ukraine UKR Kiev UA 50.43336732900 30.51662796910 5.00000000000 0 Changed scale rank. 2709000 1662508 1611692 12 12 703448.00000000000 Kyiv Kiev 1 0 3.7
185 1 300 8 Admin-1 capital Dubai Dubayy 0 Dubai 0.00000000000 1.00000000000 1 United Arab Emirates ARE United Arab Emirates ARE Dubay AE 25.22999615380 55.27997432340 1.00000000000 1 Name changed. 1379000 1137347 1166878 12 12 292223.00000000000 Dubayy Dubayy 1 0 3.7
186 1 300 6 Admin-0 capital Tashkent 0 Tashkent 1.00000000000 0.00000000000 1 Uzbekistan UZB Uzbekistan UZB Tashkent UZ 41.31170188300 69.29493281950 5.00000000000 0 Changed scale rank. 2184000 1978028 2806287 12 12 1512569.00000000000 Tashkent Tashkent 1 0 3.7
187 1 300 3 Admin-0 capital Madrid 0 Madrid 1.00000000000 1.00000000000 1 Kingdom of Spain ESP Spain ESP Comunidad de Madrid ES 40.40002626450 -3.68335168600 0.00000000000 0 5567000 50437 3673427 13 8 3117735.00000000000 Madrid Madrid 1 0 3.0
188 1 300 7 Admin-1 capital Geneva 0 Geneva 0.00000000000 1.00000000000 0 Switzerland CHE Switzerland CHE Genève CH 46.21000754710 6.14002803409 4.00000000000 0 Changed scale rank. 1240000 192385 508284 12 9 2660646.00000000000 Geneva 1 0 3.7
189 1 300 7 Admin-0 capital Stockholm 0 Stockholm 1.00000000000 1.00000000000 1 Sweden SWE Sweden SWE Stockholm SE 59.35075995430 18.09733473280 4.00000000000 0 Location adjusted. 1264000 1253309 0 12 12 2673730.00000000000 Stockholm Stockholm 1 0 3.0
190 1 300 5 Admin-0 capital Bangkok Krung Thep 0 Bangkok 1.00000000000 1.00000000000 1 Thailand THA Thailand THA Bangkok Metropolis TH 13.74999920550 100.51664465200 0.00000000000 0 6704000 5104476 5082758 13 13 1609350.00000000000 Krung Thep Bangkok 1 0 3.0
191 1 300 5 Admin-0 capital Lima 0 Lima 1.00000000000 0.00000000000 1 Peru PER Peru PER Lima PE -12.04801267610 -77.05006209480 5.00000000000 0 Changed scale rank. 8012000 6758234 6068380 13 13 3936456.00000000000 Lima Lima2 1 0 3.0
192 1 300 8 Admin-0 capital Dakar 0 Dakar 1.00000000000 0.00000000000 1 Senegal SEN Senegal SEN Dakar SN 14.71583172500 -17.47313012840 5.00000000000 0 Changed scale rank. 2604000 2476400 2470140 12 12 2253354.00000000000 Dakar Dakar 1 0 3.0
193 1 300 3 Admin-0 capital Johannesburg 0 Johannesburg 0.00000000000 1.00000000000 1 South Africa ZAF South Africa ZAF Gauteng ZA -26.17004474000 28.03000972360 4.00000000000 0 Changed feature class. 3435000 2026469 3852246 12 12 993800.00000000000 Johannesburg Johannesburg 1 0 3.0
194 1 300 8 Admin-0 capital Amsterdam 0 Amsterdam 1.00000000000 De facto capita 1.00000000000 1 Kingdom of the Netherlands NLD Netherlands NLD Noord-Holland NL 52.34996868810 4.91664017601 0.00000000000 0 1031000 741636 962488 12 11 2759794.00000000000 Amsterdam Amsterdam 1 0 3.7
195 1 300 5 Admin-1 capital Casablanca Dar-el-Beida 0 Casablanca 0.00000000000 1.00000000000 1 Morocco MAR Morocco MAR Grand Casablanca MA 33.59997621560 -7.61636743309 4.00000000000 0 Changed scale rank. 3181000 3144909 3718797 12 12 2553604.00000000000 Dar-el-Beida Casablanca 1 0 3.7
196 1 300 3 Admin-0 capital Seoul 0 Seoul 1.00000000000 1.00000000000 1 Korea, South KOR South Korea KOR Seoul KR 37.56634909980 126.99973099700 0.00000000000 0 9796000 9796000 12018058 13 13 1835848.00000000000 Seoul Seoul 1 0 3.0
197 1 300 5 Admin-0 capital Manila 0 Manila 1.00000000000 Official, de fa 1.00000000000 1 Philippines PHL Philippines PHL Metropolitan Manila PH 14.60415895480 120.98221716200 0.00000000000 0 11100000 3077575 2381280 14 12 1701668.00000000000 Manila Manila 1 0 2.7
198 1 300 2 Admin-1 capital Monterrey 0 Monterrey 0.00000000000 0.00000000000 1 Mexico MEX Mexico MEX Nuevo León MX 25.66999513650 -100.32998478400 5.00000000000 0 Changed scale rank. 3712000 1122874 3225636 12 12 3995465.00000000000 Monterrey Monterrey 1 0 3.7
199 1 300 3 Admin-0 capital Berlin 0 Berlin 1.00000000000 1.00000000000 1 Germany DEU Germany DEU Berlin DE 52.52181866360 13.40154862330 0.00000000000 0 3406000 3094014 3013258 12 12 2950159.00000000000 Berlin Berlin 1 0 2.7
200 1 300 1 Admin-1 capital Ürümqi rumqi|Wulumqi 0 Urumqi 0.00000000000 0.00000000000 1 China CHN China CHN Xinjiang Uygur CN 43.80501222640 87.57500565490 5.00000000000 0 Changed scale rank. 2151000 1508225 2044401 12 12 1529102.00000000000 Cramqi (Wulumqi) Urumqi 1 0 3.7
201 1 300 1 Admin-1 capital Chengdu 0 Chengdu 0.00000000000 0.00000000000 1 China CHN China CHN Sichuan CN 30.67000001930 104.07001949000 5.00000000000 0 Changed scale rank. 4123000 3950437 11622929 12 12 1815286.00000000000 Chengdu Chengdu 1 0 3.0
202 1 300 2 Admin-1 region capital Ōsaka Osaka-Kobe 0 Osaka 0.00000000000 1.00000000000 1 Japan JPN Japan JPN Osaka JP 34.75003521630 135.46014481500 4.00000000000 0 Changed feature to Admin-0 region capital. 11294000 2592413 9630783 14 12 1853909.00000000000 Osaka-Kobe Osaka 1 5 3.0
203 1 300 3 Admin-0 capital Kinshasa 0 Kinshasa 1.00000000000 0.00000000000 1 Congo (Kinshasa) COD Congo (Kinshasa) COD Kinshasa City CD -4.32972410189 15.31497188180 5.00000000000 0 Changed scale rank. 7843000 5565703 4738154 13 13 2314302.00000000000 Kinshasa Kinshasa 1 0 3.0
204 1 300 1 Admin-0 capital New Delhi 0 New Delhi 1.00000000000 1.00000000000 0 India IND India IND Delhi IN 28.60002300920 77.19998002010 0.00000000000 0 317797 317797 8060107 10 10 1261481.00000000000 New Delhi 1 0 2.1
205 1 300 1 Admin-1 capital Bangalore Bengaluru 0 Bangalore 0.00000000000 0.00000000000 1 India IND India IND Karnataka IN 12.96999513650 77.56000972380 3.00000000000 1 Name changed. Changed scale rank. 6787000 5104047 8102712 13 13 1277333.00000000000 Bangalore Bangalore 1 0 3.7
206 1 300 6 Admin-0 capital Athens Athenai Athinai 0 Athens 1.00000000000 1.00000000000 1 Greece GRC Greece GRC Attiki GR 37.98332623190 23.73332108430 4.00000000000 0 Changed scale rank. 3242000 729137 112572 12 11 264371.00000000000 Athnnai Athens2 1 0 3.7
207 1 300 5 Admin-0 capital Baghdad 0 Baghdad 1.00000000000 0.00000000000 1 Iraq IRQ Iraq IRQ Baghdad IQ 33.33864849750 44.39386877320 5.00000000000 0 Changed scale rank. 5054000 5054000 4959534 13 13 98182.00000000000 Baghdad Baghdad 1 0 3.7
208 1 300 3 Admin-0 capital Addis Ababa 0 Addis Ababa 1.00000000000 0.00000000000 1 Ethiopia ETH Ethiopia ETH Addis Ababa ET 9.03331036268 38.70000443400 5.00000000000 0 Changed scale rank. 3100000 2757729 3013653 12 12 344979.00000000000 Addis Ababa Addis Ababa 1 5 3.0
209 1 300 5 Admin-0 capital Tehran 0 Tehran 1.00000000000 0.00000000000 1 Iran IRN Iran IRN Tehran IR 35.67194276840 51.42434403360 5.00000000000 0 Changed scale rank. 7873000 7153309 8209012 13 13 112931.00000000000 Tehran Tehran 1 0 3.0
210 1 300 2 Populated place Vancouver 0 Vancouver 0.00000000000 0.00000000000 1 Canada CAN Canada CAN British Columbia CA 49.27341658410 -123.12164421800 5.00000000000 0 Changed scale rank. 2313328 603502 482002 12 11 6173331.00000000000 Vancouver Vancouver2 1 0 2.1
211 1 300 2 Admin-1 capital Toronto 0 Toronto 0.00000000000 1.00000000000 1 Canada CAN Canada CAN Ontario CA 43.69997987780 -79.42002079440 0.00000000000 0 5213000 3934421 3749229 13 12 6167865.00000000000 Toronto Toronto 1 0 2.1
212 1 300 3 Admin-0 capital Buenos Aires 0 Buenos Aires 1.00000000000 1.00000000000 1 Argentina ARG Argentina ARG Ciudad de Buenos Aires AR -34.60250160850 -58.39753137370 0.00000000000 0 12795000 10929146 10271457 14 14 3435910.00000000000 Buenos Aires Buenos Aires 1 0 2.1
213 1 300 5 Admin-0 capital Kabul 0 Kabul 1.00000000000 0.00000000000 1 Afghanistan AFG Afghanistan AFG Kabul AF 34.51669028630 69.18326004930 5.00000000000 0 Changed scale rank. 3277000 3043532 3475519 12 12 1138958.00000000000 Kabul Kabul 1 0 3.7
214 1 300 7 Admin-0 capital Vienna Wien 0 Vienna 1.00000000000 1.00000000000 1 Austria AUT Austria AUT Wien AT 48.20001527820 16.36663895540 0.00000000000 0 2400000 1731000 1480886 12 12 2761369.00000000000 Wien Vienna 1 0 3.7
215 1 300 3 Admin-1 capital Melbourne 0 Melbourne 0.00000000000 1.00000000000 1 Australia AUS Australia AUS Victoria AU -37.82003131230 144.97501623500 4.00000000000 0 Changed feature class. Changed scale rank. 4170000 93625 1805353 12 8 2158177.00000000000 Melbourne Melbourne2 1 0 3.0
216 1 300 8 Admin-0 capital Taipei 0 Taipei 1.00000000000 1.00000000000 1 Taiwan TWN Taiwan TWN Taipei City TW 25.03583333333 121.56833333333 1.00000000000 0 Corrected coordinates. 6900273 2618772 5698241 13 12 1668341.00000000000 Taipei Taipei 1 0 3.7
217 1 300 8 Admin-1 capital Auckland 0 Auckland 0.00000000000 1.00000000000 1 New Zealand NZL New Zealand NZL Auckland NZ Auckland metropolitan area -36.84805489493 174.76302698708 4.00000000000 0 Changed scale rank. 1377200 395982 0 12 10 2193733.00000000000 Auckland Auckland 1 0 3.0
218 0 600 1 Populated place Los Angeles Los Angeles-Long Beach-Santa Ana 0 Los Angeles 0.00000000000 1.00000000000 1 United States USA United States of America USA California US 33.98997825020 -118.17998051100 0.00000000000 0 12500000 3694820 142265 14 12 5368361.00000000000 Los Angeles-Long Beach-Santa Ana Los Angeles1 1 0 2.0
219 0 600 1 Admin-0 capital Washington, D.C. Washington D.C. 0 Washington, D.C. 1.00000000000 1.00000000000 1 United States USA United States of America USA District of Columbia US 38.89954937650 -77.00941858080 0.00000000000 0 4338000 552433 2175991 12 11 4140963.00000000000 Washington, D.C. Washington, D.C. 1 5 2.1
220 0 600 1 Populated place New York New York-Newark 0 New York 0.00000000000 UN Headquarters 1.00000000000 1 United States USA United States of America USA New York US 40.74997906400 -73.98001692880 0.00000000000 0 19040000 8008278 9292603 14 13 5128581.00000000000 New York-Newark New York 1 0 1.7
221 0 600 5 Admin-0 capital London 0 London 1.00000000000 1.00000000000 1 United Kingdom GBR United Kingdom GBR Westminster GB 51.49999472970 -0.11672184386 0.00000000000 0 8567000 7421209 326670 13 13 2643743.00000000000 London London2 1 5 1.7
222 0 600 5 Admin-1 capital Istanbul 0 Istanbul 0.00000000000 1.00000000000 1 Turkey TUR Turkey TUR Istanbul TR 41.10499615380 29.01000158560 0.00000000000 0 10061000 9945610 9651488 14 13 745044.00000000000 Istanbul Istanbul 1 0 3.0
223 0 600 5 Admin-0 capital Riyadh Ar-Riyadh 0 Riyadh 1.00000000000 1.00000000000 1 Saudi Arabia SAU Saudi Arabia SAU Ar Riyad SA 24.64083314920 46.77274165730 4.00000000000 0 Changed scale rank. 4465000 4205961 5148778 12 12 108410.00000000000 Ar-Riyadh Riyadh 1 0 3.7
224 0 600 3 Admin-0 capital Cape Town 0 Cape Town 1.00000000000 1 Legislative cap 1.00000000000 1 South Africa ZAF South Africa ZAF Western Cape ZA -33.92001096720 18.43498815780 4.00000000000 0 Changed scale rank. 3215000 2432858 2401318 12 12 3369157.00000000000 Cape Town Cape Town 1 0 1.7
225 0 600 2 Admin-0 capital Moscow Moskva 0 Moscow 1.00000000000 1.00000000000 1 Russia RUS Russia RUS Moskva RU 55.75216412260 37.61552282590 0.00000000000 0 10452000 10452000 10585385 14 14 524901.00000000000 Moskva Moscow 1 0 1.7
226 0 600 2 Admin-0 capital Mexico City Ciudad de M 0 Mexico City 1.00000000000 1.00000000000 1 Mexico MEX Mexico MEX Distrito Federal MX 19.44244244280 -99.13098820170 0.00000000000 0 19028000 10811002 10018444 14 14 3530597.00000000000 Ciudad de Mdxico Mexico City 1 0 2.1
227 0 600 2 Admin-0 capital alt Lagos 0 Lagos 0.00000000000 1 Former capital 1.00000000000 1 Nigeria NGA Nigeria NGA Lagos NG 6.44326165348 3.39153107121 4.00000000000 0 Location adjusted. Changed scale rank. 9466000 1536 6567892 13 3 2332459.00000000000 Lagos Lagos 1 0 2.0
228 0 600 3 Admin-0 capital Rome 0 Rome 1.00000000000 1.00000000000 1 Italy ITA Italy ITA Lazio IT 41.89595562650 12.48325842150 0.00000000000 0 3339000 35452 2050212 12 7 3169070.00000000000 Rome Rome 1 0 2.7
229 0 600 1 Admin-0 capital Beijing 0 Beijing 1.00000000000 1.00000000000 1 China CHN China CHN Beijing CN 39.92889223130 116.38828568400 0.00000000000 0 11106000 7480601 9033231 14 13 1816670.00000000000 Beijing Beijing 1 0 1.7
230 0 600 5 Admin-0 capital Nairobi 0 Nairobi 1.00000000000 1.00000000000 1 Kenya KEN Kenya KEN Nairobi KE -1.28334674185 36.81665685910 4.00000000000 0 Changed scale rank. 3010000 2750547 3400962 12 12 184745.00000000000 Nairobi Nairobi 1 0 2.0
231 0 600 1 Admin-0 capital Jakarta 0 Jakarta 1.00000000000 1.00000000000 1 Indonesia IDN Indonesia IDN Jakarta Raya ID -6.17441770541 106.82943762100 0.00000000000 0 9125000 8540121 9129613 13 13 1642911.00000000000 Jakarta Jakarta 1 0 2.1
232 0 600 5 Admin-0 capital Bogota Bogota 0 Bogota 1.00000000000 1.00000000000 1 Colombia COL Colombia COL Bogota CO 4.59642356253 -74.08334395520 0.00000000000 0 7772000 6333661 5754084 13 13 3688689.00000000000 Bogota Bogota 1 0 2.1
233 0 600 3 Admin-0 capital Cairo Al-Qahirah 0 Cairo 1.00000000000 1.00000000000 1 Egypt EGY Egypt EGY Al Qahirah EG 30.04996034650 31.24996821970 0.00000000000 0 11893000 7734614 13720557 14 13 360630.00000000000 Al-Qahirah Cairo 1 5 1.7
234 0 600 1 Admin-1 capital Shanghai 0 Shanghai 0.00000000000 1.00000000000 1 China CHN China CHN Shanghai CN 31.21645245260 121.43650467800 0.00000000000 0 14987000 14608512 16803572 14 14 1796236.00000000000 Shanghai Shanghai 1 0 2.0
235 0 600 2 Admin-0 capital Tokyo 0 Tokyo 1.00000000000 De facto capita 1.00000000000 1 Japan JPN Japan JPN Tokyo JP 35.68501690580 139.75140742900 0.00000000000 0 35676000 8336599 12945252 14 13 1850147.00000000000 Tokyo Tokyo 1 0 1.7
236 0 600 1 Admin-1 capital Mumbai Bombay 0 Mumbai 0.00000000000 1.00000000000 1 India IND India IND Maharashtra IN 19.01699037570 72.85698929740 0.00000000000 0 18978000 12691836 12426085 14 14 1275339.00000000000 Mumbai Mumbai 1 0 1.7
237 0 600 3 Admin-0 capital Paris 0 Paris 1.00000000000 1.00000000000 1 French Republic FRA France FRA Île-de-France FR 48.86669293120 2.33333532574 0.00000000000 0 9904000 11177 7142744 13 6 2988507.00000000000 Paris Paris 1 0 1.7
238 0 600 3 Admin-0 capital Santiago 0 Santiago 1.00000000000 Official, admin 1.00000000000 1 Chile CHL Chile CHL Región Metropolitana de Santiago CL -33.45001381550 -70.66704085460 4.00000000000 0 Changed scale rank. 5720000 46611 3066651 13 7 3449741.00000000000 Santiago Santiago3 1 0 2.0
239 0 600 1 Admin-1 capital Kolkata Calcutta 0 Kolkata 0.00000000000 0.00000000000 1 India IND India IND West Bengal IN 22.49496929830 88.32467565810 4.00000000000 1 Name changed. Changed scale rank. 14787000 4631392 7783716 14 12 1275004.00000000000 Kolkata Calcutta 1 0 3.7
240 0 600 1 Admin-1 capital Rio de Janeiro 0 Rio de Janeiro 0.00000000000 1.00000000000 1 Brazil BRA Brazil BRA Rio de Janeiro BR -22.92502317420 -43.22502079420 0.00000000000 0 11748000 2010175 1821489 14 12 3451190.00000000000 Rio de Janeiro Rio de Janeiro 1 0 1.7
241 0 600 1 Admin-1 capital São Paulo Sao Paulo|Sio Paulo 0 Sao Paulo 0.00000000000 1.00000000000 1 Brazil BRA Brazil BRA São Paulo BR -23.55867958700 -46.62501998040 0.00000000000 0 18845000 10021295 11522944 14 14 3448439.00000000000 S Sao Paolo 1 0 3.0
242 0 600 3 Admin-1 capital Sydney 0 Sydney 0.00000000000 1.00000000000 1 Australia AUS Australia AUS New South Wales AU -33.92001096720 151.18517980900 4.00000000000 0 Changed feature class. 4630000 3641422 2669348 12 12 2147714.00000000000 Sydney Sydney1 1 0
243 0 600 0 Admin-0 capital Singapore 0 Singapore 1.00000000000 1.00000000000 1 Singapore SGP Singapore SGP SG 1.29303346649 103.85582067800 0.00000000000 0 5183700 3289529 3314179 13 12 1880252.00000000000 Singapore Singapore 1 5 2.1
244 0 600 0 Admin-0 region capital Hong Kong 0 Hong Kong 0.00000000000 1.00000000000 1 China CHN Hong Kong S.A.R. HKG HK 22.30498089500 114.18500931700 0.00000000000 0 7206000 4551579 4549026 13 12 1819729.00000000000 Hong Kong Hong Kong 1 0 3.0
245
246 0 600 0 Admin-0 region capital Hong Kong 0 Hong Kong 0.00000000000 1.00000000000 1 China CHN Hong Kong S.A.R. HKG HK nan 114.18500931700 0.00000000000 0 7206000 4551579 4549026 13 12 1819729.00000000000 Hong Kong Hong Kong 1 0 3.0
247 0 600 0 Admin-0 region capital Hong Kong 0 Hong Kong 0.00000000000 1.00000000000 1 China CHN Hong Kong S.A.R. HKG HK inf 114.18500931700 0.00000000000 0 7206000 4551579 4549026 13 12 1819729.00000000000 Hong Kong Hong Kong 1 0 3.0
248 0 600 0 Admin-0 region capital Hong Kong 0 Hong Kong 0.00000000000 1.00000000000 1 China CHN Hong Kong S.A.R. HKG HK 22.30498089500 nan 0.00000000000 0 7206000 4551579 4549026 13 12 1819729.00000000000 Hong Kong Hong Kong 1 0 3.0
249 0 600 0 Admin-0 region capital Hong Kong 0 Hong Kong 0.00000000000 1.00000000000 1 China CHN Hong Kong S.A.R. HKG HK 22.30498089500 inf 0.00000000000 0 7206000 4551579 4549026 13 12 1819729.00000000000 Hong Kong Hong Kong 1 0 3.0

502
tests/csv/out.mbtiles.json Normal file

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
"center": "-135.000000,75.782195,2",
"description": "tests/curve/out/-z2.json.check.mbtiles",
"format": "pbf",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 2, \"fields\": {} } ] }",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 2, \"fields\": {} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 2,\"geometry\": \"Polygon\",\"attributeCount\": 0,\"attributes\": []}]}}",
"maxzoom": "2",
"minzoom": "0",
"name": "tests/curve/out/-z2.json.check.mbtiles",

View File

@ -3,7 +3,7 @@
"center": "-135.000000,75.782195,2",
"description": "tests/curve/out/-z2_--no-clipping.json.check.mbtiles",
"format": "pbf",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 2, \"fields\": {} } ] }",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 2, \"fields\": {} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 2,\"geometry\": \"Polygon\",\"attributeCount\": 0,\"attributes\": []}]}}",
"maxzoom": "2",
"minzoom": "0",
"name": "tests/curve/out/-z2_--no-clipping.json.check.mbtiles",

View File

@ -3,7 +3,7 @@
"center": "45.000000,33.256630,2",
"description": "tests/curve/out/-z2_--no-duplication.json.check.mbtiles",
"format": "pbf",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 2, \"fields\": {} } ] }",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 2, \"fields\": {} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 2,\"geometry\": \"Polygon\",\"attributeCount\": 0,\"attributes\": []}]}}",
"maxzoom": "2",
"minzoom": "0",
"name": "tests/curve/out/-z2_--no-duplication.json.check.mbtiles",

View File

@ -2,11 +2,12 @@
{"type":"Feature","properties":{
"boolean": true,
"otherboolean": false,
"stringify": [ "yes", 27.00000000, 27, 1.4e27, { "foo": "bar" } ],
"stringify": [ "yes", 27.000000, 27, 1.4e27, { "foo": "bar" } ],
"nothing": null,
"escape": "foo\u0001bar,ü\"\\\/\b\f\n\r\t\u2192",
"": "something for nothing",
"escape": "foo\u0001bar,ü\"\\\/\b\f\n\r\t\u2192\uD83D\uDC02🐳",
"prêt": "ready"
},"geometry":{"type":"Polygon","coordinates":[[[-189.4921875,64.77412531292873],[-182.4609375,67.33986082559095],[-169.1015625,68.26938680456564],[-156.09375,68.13885164925573],[-144.4921875,66.08936427047085],[-134.6484375,62.431074232920906],[-131.8359375,55.37911044801047],[-133.59375,48.69096039092549],[-146.25,38.548165423046584],[-169.45312499999997,34.88593094075317],[-184.21874999999997,37.16031654673677],[-198.28125,45.336701909968106],[-203.203125,54.97761367069628],[-196.5234375,62.431074232920906],[-189.4921875,64.77412531292873]],[[-177.890625,62.59334083012024],[-185.9765625,58.81374171570782],[-188.4375,54.36775852406841],[-185.9765625,47.27922900257082],[-177.5390625,44.33956524809713],[-164.8828125,43.32517767999296],[-153.28125,46.55886030311719],[-144.4921875,51.17934297928927],[-143.7890625,57.136239319177434],[-148.0078125,61.10078883158897],[-158.55468749999997,63.860035895395306],[-169.45312499999997,64.47279382008166],[-177.890625,62.59334083012024]]]}},
},"geometry":{"type":"Polygon","coordinates":[[[-189.492187,64.774125],[-182.460937,67.339860],[-169.101562,68.269386],[-156.09375,68.138851],[-144.492187,66.089364],[-134.648437,62.431074],[-131.835937,55.379110],[-133.59375,48.690960],[-146.25,38.548165],[-169.453124,34.885930],[-184.218749,37.160316],[-198.28125,45.336701],[-203.203125,54.977613],[-196.523437,62.431074],[-189.492187,64.774125]],[[-177.890625,62.593340],[-185.976562,58.813741],[-188.4375,54.367758],[-185.976562,47.279229],[-177.539062,44.339565],[-164.882812,43.325177],[-153.28125,46.558860],[-144.492187,51.179342],[-143.789062,57.136239],[-148.007812,61.100788],[-158.554687,63.860035],[-169.453124,64.472793],[-177.890625,62.593340]]]}},
{
"type": "Feature",
@ -16,17 +17,17 @@
"type": "LineString",
"coordinates": [
[
-112.8515625,
55.178867663281984,
-112.851562,
55.178867,
27
],
[
-117.7734375,
44.59046718130883
-117.773437,
44.590467
],
[
-104.4140625,
51.17934297928927
-104.414062,
51.179342
]
]
}
@ -41,11 +42,11 @@
"coordinates": [
[
-2.109375,
45.583289756006316
45.583289
],
[
16.171875,
51.6180165487737
51.618016
]
]
}

View File

@ -1,9 +1,9 @@
{ "type": "FeatureCollection", "properties": {
"bounds": "-180.000000,34.885931,180.000000,68.269387",
"bounds": "-180.000000,34.885930,180.000000,68.269386",
"center": "-151.875000,64.059828,5",
"description": "tests/dateline/out/-z5.json.check.mbtiles",
"format": "pbf",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"boolean\": \"Boolean\", \"escape\": \"String\", \"otherboolean\": \"Boolean\", \"prêt\": \"String\", \"stringify\": \"String\", \"zoom\": \"String\"} } ] }",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"\": \"String\", \"boolean\": \"Boolean\", \"escape\": \"String\", \"otherboolean\": \"Boolean\", \"prêt\": \"String\", \"stringify\": \"String\", \"zoom\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 3,\"geometry\": \"LineString\",\"attributeCount\": 7,\"attributes\": [{\"attribute\": \"\",\"count\": 1,\"type\": \"string\",\"values\": [\"something for nothing\"]},{\"attribute\": \"boolean\",\"count\": 1,\"type\": \"boolean\",\"values\": [true]},{\"attribute\": \"escape\",\"count\": 1,\"type\": \"string\",\"values\": [\"foo\\u0001bar,ü\\\"\\\\/\\u0008\\u000c\\u000a\\u000d\\u0009→🐂🐳\"]},{\"attribute\": \"otherboolean\",\"count\": 1,\"type\": \"boolean\",\"values\": [false]},{\"attribute\": \"prêt\",\"count\": 1,\"type\": \"string\",\"values\": [\"ready\"]},{\"attribute\": \"stringify\",\"count\": 1,\"type\": \"string\",\"values\": [\"[\\\"yes\\\",27,27,1.4e+27,{\\\"foo\\\":\\\"bar\\\"}]\"]},{\"attribute\": \"zoom\",\"count\": 2,\"type\": \"string\",\"values\": [\"3-5\",\"z0-2\"]}]}]}}",
"maxzoom": "5",
"minzoom": "0",
"name": "tests/dateline/out/-z5.json.check.mbtiles",
@ -12,7 +12,7 @@
}, "features": [
{ "type": "FeatureCollection", "properties": { "zoom": 0, "x": 0, "y": 0 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -187.031250, 50.457504 ], [ -185.976562, 47.279229 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.389082 ], [ -153.281250, 46.619261 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.183902 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.510643 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.689872 ], [ -185.976562, 58.859224 ], [ -187.031250, 56.992883 ], [ -187.031250, 65.730626 ], [ -182.460938, 67.339861 ], [ -180.000000, 67.542167 ], [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -144.492188, 66.089364 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -146.250000, 38.616870 ], [ -169.453125, 34.957995 ], [ -180.000000, 36.527295 ], [ -184.218750, 37.160317 ], [ -187.031250, 38.891033 ], [ -187.031250, 50.457504 ] ] ], [ [ [ 187.031250, 63.743631 ], [ 182.109375, 62.593341 ], [ 180.000000, 61.689872 ], [ 174.023438, 58.859224 ], [ 171.562500, 54.418930 ], [ 174.023438, 47.279229 ], [ 182.460938, 44.339565 ], [ 187.031250, 44.024422 ], [ 187.031250, 35.460670 ], [ 175.781250, 37.160317 ], [ 161.718750, 45.336702 ], [ 156.796875, 55.028022 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.811557 ], [ 177.539062, 67.339861 ], [ 180.000000, 67.542167 ], [ 187.031250, 68.007571 ], [ 187.031250, 63.743631 ] ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -187.031250, 50.457504 ], [ -185.976562, 47.279229 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.325178 ], [ -153.281250, 46.558860 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.136239 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.472794 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.689872 ], [ -185.976562, 58.813742 ], [ -187.031250, 56.992883 ], [ -187.031250, 65.730626 ], [ -182.460938, 67.339861 ], [ -180.000000, 67.542167 ], [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -144.492188, 66.089364 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -146.250000, 38.548165 ], [ -169.453125, 34.885931 ], [ -180.000000, 36.527295 ], [ -184.218750, 37.160317 ], [ -187.031250, 38.891033 ], [ -187.031250, 50.457504 ] ] ], [ [ [ 187.031250, 63.704722 ], [ 182.109375, 62.593341 ], [ 180.000000, 61.689872 ], [ 174.023438, 58.813742 ], [ 171.562500, 54.367759 ], [ 174.023438, 47.279229 ], [ 182.460938, 44.339565 ], [ 187.031250, 44.024422 ], [ 187.031250, 35.460670 ], [ 175.781250, 37.160317 ], [ 161.718750, 45.336702 ], [ 156.796875, 54.977614 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.774125 ], [ 177.539062, 67.339861 ], [ 180.000000, 67.542167 ], [ 187.031250, 68.007571 ], [ 187.031250, 63.704722 ] ] ] ] } }
,
{ "type": "Feature", "properties": { "zoom": "z0-2" }, "geometry": { "type": "LineString", "coordinates": [ [ -112.851562, 55.178868 ], [ -117.773438, 44.590467 ], [ -104.414062, 51.179343 ] ] } }
] }
@ -20,7 +20,7 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 0, "y": 0 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -183.515625, 46.437857 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.357138 ], [ -153.281250, 46.589069 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.160078 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.491725 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.669024 ], [ -183.515625, 60.020952 ], [ -183.515625, 66.981666 ], [ -182.460938, 67.339861 ], [ -180.000000, 67.525373 ], [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -144.492188, 66.089364 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -146.250000, 38.582526 ], [ -169.453125, 34.921971 ], [ -183.515625, 37.055177 ], [ -183.515625, 46.437857 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -183.515625, 46.437857 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.325178 ], [ -153.281250, 46.558860 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.136239 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.472794 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.669024 ], [ -183.515625, 60.020952 ], [ -183.515625, 66.981666 ], [ -182.460938, 67.339861 ], [ -180.000000, 67.525373 ], [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -144.492188, 66.089364 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -146.250000, 38.548165 ], [ -169.453125, 34.885931 ], [ -180.000000, 36.527295 ], [ -183.515625, 37.055177 ], [ -183.515625, 46.437857 ] ] ] } }
,
{ "type": "Feature", "properties": { "zoom": "z0-2" }, "geometry": { "type": "LineString", "coordinates": [ [ -112.851562, 55.178868 ], [ -117.773438, 44.590467 ], [ -104.414062, 51.179343 ] ] } }
] }
@ -28,13 +28,13 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 183.515625, 62.935235 ], [ 182.109375, 62.593341 ], [ 180.000000, 61.669024 ], [ 174.023438, 58.836490 ], [ 171.562500, 54.393352 ], [ 174.023438, 47.279229 ], [ 182.460938, 44.339565 ], [ 183.515625, 44.276671 ], [ 183.515625, 35.995785 ], [ 175.781250, 37.160317 ], [ 161.718750, 45.336702 ], [ 156.796875, 55.002826 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.792848 ], [ 177.539062, 67.339861 ], [ 180.000000, 67.525373 ], [ 183.515625, 67.776025 ], [ 183.515625, 62.935235 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 183.515625, 62.915233 ], [ 182.109375, 62.593341 ], [ 180.000000, 61.669024 ], [ 174.023438, 58.813742 ], [ 171.562500, 54.367759 ], [ 174.023438, 47.279229 ], [ 182.460938, 44.339565 ], [ 183.515625, 44.276671 ], [ 183.515625, 35.995785 ], [ 175.781250, 37.160317 ], [ 161.718750, 45.336702 ], [ 156.796875, 54.977614 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.774125 ], [ 177.539062, 67.339861 ], [ 180.000000, 67.525373 ], [ 183.515625, 67.776025 ], [ 183.515625, 62.915233 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -181.757812, 45.828799 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.341160 ], [ -153.281250, 46.573967 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.148161 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.482261 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.658595 ], [ -181.757812, 60.844911 ], [ -181.757812, 67.204032 ], [ -150.688477, 67.204032 ], [ -146.821289, 66.513260 ], [ -144.492188, 66.089364 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -146.250000, 38.565348 ], [ -169.453125, 34.903953 ], [ -180.000000, 36.527295 ], [ -181.757812, 36.791691 ], [ -181.757812, 45.828799 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -181.757812, 45.828799 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.325178 ], [ -153.281250, 46.558860 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.136239 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.472794 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.658595 ], [ -181.757812, 60.844911 ], [ -181.757812, 67.204032 ], [ -150.688477, 67.204032 ], [ -146.821289, 66.513260 ], [ -144.492188, 66.089364 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -146.250000, 38.548165 ], [ -169.453125, 34.885931 ], [ -180.000000, 36.527295 ], [ -181.757812, 36.791691 ], [ -181.757812, 45.828799 ] ] ] } }
,
{ "type": "Feature", "properties": { "zoom": "z0-2" }, "geometry": { "type": "LineString", "coordinates": [ [ -112.851562, 55.178868 ], [ -117.773438, 44.590467 ], [ -104.414062, 51.179343 ] ] } }
] }
@ -42,43 +42,43 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 0 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -146.821289, 66.513260 ], [ -144.492188, 66.089364 ], [ -143.679199, 65.802776 ], [ -181.757812, 65.802776 ], [ -181.757812, 67.390599 ], [ -180.000000, 67.516972 ], [ -169.101562, 68.269387 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -146.821289, 66.513260 ], [ -144.492188, 66.089364 ], [ -143.679199, 65.802776 ], [ -181.757812, 65.802776 ], [ -181.757812, 67.390599 ], [ -180.000000, 67.516972 ], [ -169.101562, 68.269387 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 181.757812, 62.441242 ], [ 180.000000, 61.658595 ], [ 174.023438, 58.825118 ], [ 171.562500, 54.380557 ], [ 174.023438, 47.279229 ], [ 181.757812, 44.590467 ], [ 181.757812, 36.261992 ], [ 175.781250, 37.160317 ], [ 161.718750, 45.336702 ], [ 156.796875, 54.990222 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.783488 ], [ 175.187988, 66.513260 ], [ 177.143555, 67.204032 ], [ 181.757812, 67.204032 ], [ 181.757812, 62.441242 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 181.757812, 62.441242 ], [ 180.000000, 61.658595 ], [ 174.023438, 58.813742 ], [ 171.562500, 54.367759 ], [ 174.023438, 47.279229 ], [ 181.757812, 44.590467 ], [ 181.757812, 36.261992 ], [ 175.781250, 37.160317 ], [ 161.718750, 45.336702 ], [ 156.796875, 54.977614 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.774125 ], [ 175.187988, 66.513260 ], [ 177.143555, 67.204032 ], [ 181.757812, 67.204032 ], [ 181.757812, 62.441242 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 0 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 181.757812, 67.642676 ], [ 181.757812, 65.802776 ], [ 173.232422, 65.802776 ], [ 175.187988, 66.513260 ], [ 177.539062, 67.339861 ], [ 181.757812, 67.642676 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 181.757812, 67.642676 ], [ 181.757812, 65.802776 ], [ 173.232422, 65.802776 ], [ 175.187988, 66.513260 ], [ 177.539062, 67.339861 ], [ 181.757812, 67.642676 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -142.613525, 41.640078 ], [ -143.404541, 40.979898 ], [ -146.250000, 38.556757 ], [ -169.453125, 34.894942 ], [ -180.000000, 36.527295 ], [ -180.878906, 36.659606 ], [ -180.878906, 41.640078 ], [ -142.613525, 41.640078 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -142.613525, 41.640078 ], [ -143.404541, 40.979898 ], [ -146.250000, 38.548165 ], [ -169.453125, 34.885931 ], [ -180.000000, 36.518466 ], [ -180.878906, 36.659606 ], [ -180.878906, 41.640078 ], [ -142.613525, 41.640078 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 2 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -180.878906, 45.521744 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.333169 ], [ -153.281250, 46.566414 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.142200 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.477528 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.653379 ], [ -180.878906, 61.249102 ], [ -180.878906, 66.861082 ], [ -148.754883, 66.861082 ], [ -146.821289, 66.513260 ], [ -144.492188, 66.089364 ], [ -135.000000, 62.573106 ], [ -134.648438, 62.431074 ], [ -134.121094, 61.217379 ], [ -134.121094, 48.305121 ], [ -135.000000, 47.650588 ], [ -144.195557, 40.313043 ], [ -180.878906, 40.313043 ], [ -180.878906, 45.521744 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -180.878906, 45.521744 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.325178 ], [ -153.281250, 46.558860 ], [ -144.492188, 51.179343 ], [ -143.789062, 57.136239 ], [ -148.007812, 61.100789 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.472794 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.653379 ], [ -180.878906, 61.249102 ], [ -180.878906, 66.861082 ], [ -148.754883, 66.861082 ], [ -146.821289, 66.513260 ], [ -144.492188, 66.089364 ], [ -135.000000, 62.573106 ], [ -134.648438, 62.431074 ], [ -134.121094, 61.217379 ], [ -134.121094, 48.305121 ], [ -135.000000, 47.650588 ], [ -144.195557, 40.313043 ], [ -180.878906, 40.313043 ], [ -180.878906, 45.521744 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 0, "y": 1 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -146.821289, 66.513260 ], [ -144.887695, 66.160511 ], [ -180.878906, 66.160511 ], [ -180.878906, 67.453869 ], [ -180.000000, 67.516972 ], [ -169.101562, 68.269387 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -169.101562, 68.269387 ], [ -156.093750, 68.138852 ], [ -146.821289, 66.513260 ], [ -144.887695, 66.160511 ], [ -180.878906, 66.160511 ], [ -180.878906, 67.453869 ], [ -180.000000, 67.516972 ], [ -169.101562, 68.269387 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 2 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -135.878906, 62.915233 ], [ -135.000000, 62.573106 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -135.000000, 47.650588 ], [ -135.878906, 46.987747 ], [ -135.878906, 62.915233 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -135.878906, 62.915233 ], [ -135.000000, 62.573106 ], [ -134.648438, 62.431074 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -135.000000, 47.650588 ], [ -135.878906, 46.987747 ], [ -135.878906, 62.915233 ] ] ] } }
] }
] }
,
@ -96,79 +96,79 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.878906, 41.640078 ], [ 180.878906, 36.385913 ], [ 180.000000, 36.527295 ], [ 175.781250, 37.160317 ], [ 169.420166, 40.979898 ], [ 168.288574, 41.640078 ], [ 180.878906, 41.640078 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.878906, 41.640078 ], [ 180.878906, 36.385913 ], [ 180.000000, 36.518466 ], [ 175.781250, 37.160317 ], [ 169.420166, 40.979898 ], [ 168.288574, 41.640078 ], [ 180.878906, 41.640078 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 2 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.878906, 62.047288 ], [ 180.000000, 61.653379 ], [ 174.023438, 58.819430 ], [ 171.562500, 54.374158 ], [ 174.023438, 47.279229 ], [ 180.878906, 44.902578 ], [ 180.878906, 40.313043 ], [ 170.562744, 40.313043 ], [ 169.420166, 40.979898 ], [ 161.718750, 45.336702 ], [ 156.796875, 54.983918 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.778807 ], [ 175.187988, 66.513260 ], [ 176.165771, 66.861082 ], [ 180.878906, 66.861082 ], [ 180.878906, 62.047288 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.878906, 62.047288 ], [ 180.000000, 61.653379 ], [ 174.023438, 58.813742 ], [ 171.562500, 54.367759 ], [ 174.023438, 47.279229 ], [ 180.878906, 44.902578 ], [ 180.878906, 40.313043 ], [ 170.562744, 40.313043 ], [ 169.420166, 40.979898 ], [ 161.718750, 45.336702 ], [ 156.796875, 54.977614 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.774125 ], [ 175.187988, 66.513260 ], [ 176.165771, 66.861082 ], [ 180.878906, 66.861082 ], [ 180.878906, 62.047288 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 1 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.878906, 67.579908 ], [ 180.878906, 66.160511 ], [ 174.210205, 66.160511 ], [ 175.187988, 66.513260 ], [ 177.539062, 67.339861 ], [ 180.878906, 67.579908 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.878906, 67.579908 ], [ 180.878906, 66.160511 ], [ 174.210205, 66.160511 ], [ 175.187988, 66.513260 ], [ 177.539062, 67.339861 ], [ 180.878906, 67.579908 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 6 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.060547, 41.310824 ], [ -157.060547, 36.866438 ], [ -157.500000, 36.800488 ], [ -169.453125, 34.890437 ], [ -180.000000, 36.522881 ], [ -180.439453, 36.589068 ], [ -180.439453, 41.310824 ], [ -157.060547, 41.310824 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.060547, 41.310824 ], [ -157.060547, 36.866438 ], [ -157.500000, 36.796090 ], [ -169.453125, 34.885931 ], [ -180.000000, 36.518466 ], [ -180.439453, 36.589068 ], [ -180.439453, 41.310824 ], [ -157.060547, 41.310824 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 5 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.060547, 45.529441 ], [ -157.060547, 40.647304 ], [ -180.439453, 40.647304 ], [ -180.439453, 45.367584 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.329174 ], [ -157.500000, 45.406164 ], [ -157.060547, 45.529441 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.060547, 45.525592 ], [ -157.060547, 40.647304 ], [ -180.439453, 40.647304 ], [ -180.439453, 45.367584 ], [ -177.539062, 44.339565 ], [ -164.882812, 43.325178 ], [ -157.500000, 45.406164 ], [ -157.060547, 45.525592 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 4 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.060547, 66.687784 ], [ -157.060547, 63.484863 ], [ -157.500000, 63.597448 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.475161 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.650771 ], [ -180.439453, 61.451896 ], [ -180.439453, 66.687784 ], [ -157.060547, 66.687784 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.060547, 66.687784 ], [ -157.060547, 63.484863 ], [ -157.500000, 63.597448 ], [ -158.554688, 63.860036 ], [ -169.453125, 64.472794 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.650771 ], [ -180.439453, 61.451896 ], [ -180.439453, 66.687784 ], [ -157.060547, 66.687784 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 0, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -169.101562, 68.269387 ], [ -157.500000, 68.153165 ], [ -157.060547, 68.149077 ], [ -157.060547, 66.337505 ], [ -180.439453, 66.337505 ], [ -180.439453, 67.485442 ], [ -180.000000, 67.514872 ], [ -169.101562, 68.269387 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -169.101562, 68.269387 ], [ -157.500000, 68.153165 ], [ -157.060547, 68.149077 ], [ -157.060547, 66.337505 ], [ -180.439453, 66.337505 ], [ -180.439453, 67.485442 ], [ -180.000000, 67.514872 ], [ -169.101562, 68.269387 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 1, "y": 6 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -143.014526, 41.310824 ], [ -143.410034, 40.979898 ], [ -146.250000, 38.552461 ], [ -157.500000, 36.800488 ], [ -157.939453, 36.730080 ], [ -157.939453, 41.310824 ], [ -143.014526, 41.310824 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -143.009033, 41.310824 ], [ -143.404541, 40.979898 ], [ -146.250000, 38.548165 ], [ -157.500000, 36.796090 ], [ -157.939453, 36.725677 ], [ -157.939453, 41.310824 ], [ -143.009033, 41.310824 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 1, "y": 5 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.560547, 56.022948 ], [ -134.560547, 47.978891 ], [ -135.000000, 47.650588 ], [ -143.800049, 40.647304 ], [ -157.939453, 40.647304 ], [ -157.939453, 45.286482 ], [ -157.500000, 45.406164 ], [ -153.281250, 46.562637 ], [ -144.492188, 51.179343 ], [ -143.959351, 55.776573 ], [ -143.931885, 56.022948 ], [ -134.560547, 56.022948 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.560547, 56.022948 ], [ -134.560547, 47.978891 ], [ -135.000000, 47.650588 ], [ -143.800049, 40.647304 ], [ -157.939453, 40.647304 ], [ -157.939453, 45.282617 ], [ -157.500000, 45.406164 ], [ -153.281250, 46.558860 ], [ -144.492188, 51.179343 ], [ -143.959351, 55.776573 ], [ -143.931885, 56.022948 ], [ -134.560547, 56.022948 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 1, "y": 4 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -147.782593, 66.687784 ], [ -146.815796, 66.513260 ], [ -144.492188, 66.089364 ], [ -135.000000, 62.570575 ], [ -134.648438, 62.431074 ], [ -134.560547, 62.232115 ], [ -134.560547, 55.528631 ], [ -143.992310, 55.528631 ], [ -143.959351, 55.776573 ], [ -143.789062, 57.139220 ], [ -148.007812, 61.100789 ], [ -157.500000, 63.597448 ], [ -157.939453, 63.707156 ], [ -157.939453, 66.687784 ], [ -147.782593, 66.687784 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -147.782593, 66.687784 ], [ -146.815796, 66.513260 ], [ -144.492188, 66.089364 ], [ -135.000000, 62.570575 ], [ -134.648438, 62.431074 ], [ -134.560547, 62.232115 ], [ -134.560547, 55.528631 ], [ -143.992310, 55.528631 ], [ -143.959351, 55.776573 ], [ -143.789062, 57.136239 ], [ -148.007812, 61.100789 ], [ -157.500000, 63.597448 ], [ -157.939453, 63.707156 ], [ -157.939453, 66.687784 ], [ -147.782593, 66.687784 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 1, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.939453, 68.159297 ], [ -157.500000, 68.153165 ], [ -156.093750, 68.138852 ], [ -146.815796, 66.513260 ], [ -145.848999, 66.337505 ], [ -157.939453, 66.337505 ], [ -157.939453, 68.159297 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.939453, 68.159297 ], [ -157.500000, 68.153165 ], [ -156.093750, 68.138852 ], [ -146.815796, 66.513260 ], [ -145.848999, 66.337505 ], [ -157.939453, 66.337505 ], [ -157.939453, 68.159297 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 5 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -132.072144, 56.022948 ], [ -131.984253, 55.776573 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -135.000000, 47.650588 ], [ -135.439453, 47.320207 ], [ -135.439453, 56.022948 ], [ -132.072144, 56.022948 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -132.072144, 56.022948 ], [ -131.984253, 55.776573 ], [ -131.835938, 55.379110 ], [ -133.593750, 48.690960 ], [ -135.000000, 47.650588 ], [ -135.439453, 47.320207 ], [ -135.439453, 56.022948 ], [ -132.072144, 56.022948 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 4 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -135.439453, 62.744665 ], [ -135.000000, 62.570575 ], [ -134.648438, 62.431074 ], [ -131.984253, 55.776573 ], [ -131.890869, 55.528631 ], [ -135.439453, 55.528631 ], [ -135.439453, 62.744665 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -135.439453, 62.744665 ], [ -135.000000, 62.570575 ], [ -134.648438, 62.431074 ], [ -131.984253, 55.776573 ], [ -131.890869, 55.528631 ], [ -135.439453, 55.528631 ], [ -135.439453, 62.744665 ] ] ] } }
] }
] }
,
@ -186,187 +186,187 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 5 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 157.939453, 56.022948 ], [ 157.939453, 52.915527 ], [ 157.500000, 53.722717 ], [ 156.796875, 54.980766 ], [ 157.445068, 55.776573 ], [ 157.648315, 56.022948 ], [ 157.939453, 56.022948 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 157.939453, 56.022948 ], [ 157.939453, 52.915527 ], [ 157.500000, 53.719466 ], [ 156.796875, 54.977614 ], [ 157.445068, 55.776573 ], [ 157.648315, 56.022948 ], [ 157.939453, 56.022948 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 4 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 157.939453, 56.371335 ], [ 157.939453, 55.528631 ], [ 157.241821, 55.528631 ], [ 157.445068, 55.776573 ], [ 157.500000, 55.841398 ], [ 157.939453, 56.371335 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 157.939453, 56.368293 ], [ 157.939453, 55.528631 ], [ 157.241821, 55.528631 ], [ 157.445068, 55.776573 ], [ 157.500000, 55.841398 ], [ 157.939453, 56.368293 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 6 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.439453, 41.310824 ], [ 180.439453, 36.456636 ], [ 180.000000, 36.522881 ], [ 175.781250, 37.160317 ], [ 169.425659, 40.979898 ], [ 168.859863, 41.310824 ], [ 180.439453, 41.310824 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.439453, 41.310824 ], [ 180.439453, 36.452218 ], [ 180.000000, 36.518466 ], [ 175.781250, 37.160317 ], [ 169.425659, 40.979898 ], [ 168.859863, 41.310824 ], [ 180.439453, 41.310824 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 5 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.439453, 45.058001 ], [ 180.439453, 40.647304 ], [ 169.991455, 40.647304 ], [ 169.425659, 40.979898 ], [ 161.718750, 45.336702 ], [ 157.500000, 53.722717 ], [ 157.060547, 54.514704 ], [ 157.060547, 55.307264 ], [ 157.648315, 56.022948 ], [ 172.441406, 56.022948 ], [ 172.309570, 55.776573 ], [ 171.562500, 54.370959 ], [ 174.023438, 47.279229 ], [ 180.439453, 45.058001 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.439453, 45.058001 ], [ 180.439453, 40.647304 ], [ 169.991455, 40.647304 ], [ 169.425659, 40.979898 ], [ 161.718750, 45.336702 ], [ 157.500000, 53.719466 ], [ 157.060547, 54.511516 ], [ 157.060547, 55.304138 ], [ 157.648315, 56.022948 ], [ 172.441406, 56.022948 ], [ 172.309570, 55.776573 ], [ 171.562500, 54.367759 ], [ 174.023438, 47.279229 ], [ 180.439453, 45.058001 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 4 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.439453, 66.687784 ], [ 180.439453, 61.850966 ], [ 180.000000, 61.650771 ], [ 174.023438, 58.816586 ], [ 172.309570, 55.776573 ], [ 172.172241, 55.528631 ], [ 157.241821, 55.528631 ], [ 157.500000, 55.841398 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.776466 ], [ 175.187988, 66.513260 ], [ 175.676880, 66.687784 ], [ 180.439453, 66.687784 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.439453, 66.687784 ], [ 180.439453, 61.850966 ], [ 180.000000, 61.650771 ], [ 174.023438, 58.813742 ], [ 172.309570, 55.776573 ], [ 172.177734, 55.528631 ], [ 157.241821, 55.528631 ], [ 157.500000, 55.841398 ], [ 163.476562, 62.431074 ], [ 170.507812, 64.774125 ], [ 175.187988, 66.513260 ], [ 175.676880, 66.687784 ], [ 180.439453, 66.687784 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 15, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.439453, 67.546363 ], [ 180.439453, 66.337505 ], [ 174.699097, 66.337505 ], [ 175.187988, 66.513260 ], [ 177.539062, 67.339861 ], [ 180.000000, 67.514872 ], [ 180.439453, 67.546363 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.439453, 67.546363 ], [ 180.439453, 66.337505 ], [ 174.699097, 66.337505 ], [ 175.187988, 66.513260 ], [ 177.539062, 67.339861 ], [ 180.000000, 67.514872 ], [ 180.439453, 67.546363 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 0, "y": 12 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -168.530273, 41.145570 ], [ -168.530273, 35.038992 ], [ -168.750000, 35.003003 ], [ -169.453125, 34.888184 ], [ -180.000000, 36.522881 ], [ -180.219727, 36.555982 ], [ -180.219727, 41.145570 ], [ -168.530273, 41.145570 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -168.530273, 41.145570 ], [ -168.530273, 35.036743 ], [ -168.750000, 35.000754 ], [ -169.453125, 34.885931 ], [ -180.000000, 36.520673 ], [ -180.219727, 36.553775 ], [ -180.219727, 41.145570 ], [ -168.530273, 41.145570 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 0, "y": 11 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -168.530273, 43.622159 ], [ -168.530273, 40.813809 ], [ -180.219727, 40.813809 ], [ -180.219727, 45.290347 ], [ -177.539062, 44.339565 ], [ -168.750000, 43.640051 ], [ -168.530273, 43.622159 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -168.530273, 43.620171 ], [ -168.530273, 40.813809 ], [ -180.219727, 40.813809 ], [ -180.219727, 45.290347 ], [ -177.539062, 44.339565 ], [ -168.750000, 43.638063 ], [ -168.530273, 43.620171 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 0, "y": 9 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -179.868164, 61.710706 ], [ -180.219727, 61.551493 ], [ -180.219727, 61.710706 ], [ -179.868164, 61.710706 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -179.868164, 61.710706 ], [ -180.219727, 61.551493 ], [ -180.219727, 61.710706 ], [ -179.868164, 61.710706 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 0, "y": 8 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -168.530273, 66.600676 ], [ -168.530273, 64.423037 ], [ -168.750000, 64.434892 ], [ -169.453125, 64.473977 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.650771 ], [ -180.219727, 61.551493 ], [ -180.219727, 66.600676 ], [ -168.530273, 66.600676 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -168.530273, 66.600676 ], [ -168.530273, 64.421851 ], [ -168.750000, 64.433707 ], [ -169.453125, 64.472794 ], [ -177.890625, 62.593341 ], [ -180.000000, 61.650771 ], [ -180.219727, 61.551493 ], [ -180.219727, 66.600676 ], [ -168.530273, 66.600676 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 0, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -169.101562, 68.269387 ], [ -168.750000, 68.266336 ], [ -168.530273, 68.264302 ], [ -168.530273, 66.425537 ], [ -180.219727, 66.425537 ], [ -180.219727, 67.500161 ], [ -180.000000, 67.515922 ], [ -169.101562, 68.269387 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -169.101562, 68.269387 ], [ -168.750000, 68.266336 ], [ -168.530273, 68.264302 ], [ -168.530273, 66.425537 ], [ -180.219727, 66.425537 ], [ -180.219727, 67.500161 ], [ -180.000000, 67.515922 ], [ -169.101562, 68.269387 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 1, "y": 12 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.280273, 41.145570 ], [ -157.280273, 36.833470 ], [ -157.500000, 36.798289 ], [ -168.750000, 35.003003 ], [ -168.969727, 34.966999 ], [ -168.969727, 41.145570 ], [ -157.280273, 41.145570 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.280273, 41.145570 ], [ -157.280273, 36.831272 ], [ -157.500000, 36.796090 ], [ -168.750000, 35.000754 ], [ -168.969727, 34.964748 ], [ -168.969727, 41.145570 ], [ -157.280273, 41.145570 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 1, "y": 11 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.280273, 45.467836 ], [ -157.280273, 40.813809 ], [ -168.969727, 40.813809 ], [ -168.969727, 43.657937 ], [ -168.750000, 43.640051 ], [ -164.882812, 43.327176 ], [ -157.500000, 45.406164 ], [ -157.280273, 45.467836 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.280273, 45.465910 ], [ -157.280273, 40.813809 ], [ -168.969727, 40.813809 ], [ -168.969727, 43.655950 ], [ -168.750000, 43.638063 ], [ -164.882812, 43.325178 ], [ -157.500000, 45.404235 ], [ -157.280273, 45.465910 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 1, "y": 8 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.280273, 66.600676 ], [ -157.280273, 63.541211 ], [ -157.500000, 63.596226 ], [ -158.554688, 63.860036 ], [ -168.750000, 64.434892 ], [ -168.969727, 64.447927 ], [ -168.969727, 66.600676 ], [ -157.280273, 66.600676 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.280273, 66.600676 ], [ -157.280273, 63.541211 ], [ -157.500000, 63.596226 ], [ -158.554688, 63.860036 ], [ -168.750000, 64.433707 ], [ -168.969727, 64.446742 ], [ -168.969727, 66.600676 ], [ -157.280273, 66.600676 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 1, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -168.969727, 68.268370 ], [ -168.750000, 68.266336 ], [ -157.500000, 68.154187 ], [ -157.280273, 68.152143 ], [ -157.280273, 66.425537 ], [ -168.969727, 66.425537 ], [ -168.969727, 68.268370 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -168.969727, 68.268370 ], [ -168.750000, 68.266336 ], [ -157.500000, 68.154187 ], [ -157.280273, 68.152143 ], [ -157.280273, 66.425537 ], [ -168.969727, 66.425537 ], [ -168.969727, 68.268370 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 2, "y": 12 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.030273, 41.145570 ], [ -146.030273, 38.741231 ], [ -146.250000, 38.550313 ], [ -157.500000, 36.798289 ], [ -157.719727, 36.763092 ], [ -157.719727, 41.145570 ], [ -146.030273, 41.145570 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.030273, 41.145570 ], [ -146.030273, 38.739088 ], [ -146.250000, 38.548165 ], [ -157.500000, 36.796090 ], [ -157.719727, 36.760891 ], [ -157.719727, 41.145570 ], [ -146.030273, 41.145570 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 2, "y": 11 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.030273, 49.066668 ], [ -146.030273, 40.813809 ], [ -157.719727, 40.813809 ], [ -157.719727, 45.346354 ], [ -157.500000, 45.408092 ], [ -153.281250, 46.560749 ], [ -148.889465, 48.922499 ], [ -148.614807, 49.066668 ], [ -146.030273, 49.066668 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.030273, 49.066668 ], [ -146.030273, 40.813809 ], [ -157.719727, 40.813809 ], [ -157.719727, 45.344424 ], [ -157.500000, 45.406164 ], [ -153.281250, 46.558860 ], [ -148.612061, 49.066668 ], [ -146.030273, 49.066668 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 2, "y": 10 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.030273, 50.403266 ], [ -146.030273, 48.777913 ], [ -149.164124, 48.777913 ], [ -148.889465, 48.922499 ], [ -146.250000, 50.291094 ], [ -146.030273, 50.403266 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.030273, 50.401515 ], [ -146.030273, 48.777913 ], [ -149.161377, 48.777913 ], [ -146.030273, 50.401515 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 2, "y": 9 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.030273, 59.300954 ], [ -146.250000, 59.506455 ], [ -148.007812, 61.100789 ], [ -149.869995, 61.606396 ], [ -150.257263, 61.710706 ], [ -146.030273, 61.710706 ], [ -146.030273, 59.300954 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.030273, 59.299552 ], [ -146.250000, 59.505061 ], [ -148.007812, 61.100789 ], [ -149.869995, 61.606396 ], [ -150.257263, 61.710706 ], [ -146.030273, 61.710706 ], [ -146.030273, 59.299552 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 2, "y": 8 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -147.296448, 66.600676 ], [ -146.813049, 66.513260 ], [ -146.250000, 66.411253 ], [ -146.030273, 66.371654 ], [ -146.030273, 61.501734 ], [ -149.482727, 61.501734 ], [ -149.869995, 61.606396 ], [ -157.500000, 63.597448 ], [ -157.719727, 63.652355 ], [ -157.719727, 66.600676 ], [ -147.296448, 66.600676 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -147.296448, 66.600676 ], [ -146.813049, 66.513260 ], [ -146.250000, 66.411253 ], [ -146.030273, 66.371654 ], [ -146.030273, 61.501734 ], [ -149.482727, 61.501734 ], [ -149.869995, 61.606396 ], [ -157.500000, 63.597448 ], [ -157.719727, 63.652355 ], [ -157.719727, 66.600676 ], [ -147.296448, 66.600676 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 2, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.719727, 68.156231 ], [ -157.500000, 68.154187 ], [ -156.093750, 68.138852 ], [ -146.813049, 66.513260 ], [ -146.329651, 66.425537 ], [ -157.719727, 66.425537 ], [ -157.719727, 68.156231 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -157.719727, 68.156231 ], [ -157.500000, 68.154187 ], [ -156.093750, 68.138852 ], [ -146.813049, 66.513260 ], [ -146.329651, 66.425537 ], [ -157.719727, 66.425537 ], [ -157.719727, 68.156231 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 3, "y": 12 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -143.209534, 41.145570 ], [ -143.407288, 40.979898 ], [ -146.250000, 38.550313 ], [ -146.469727, 38.518086 ], [ -146.469727, 41.145570 ], [ -143.209534, 41.145570 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -143.206787, 41.145570 ], [ -143.404541, 40.979898 ], [ -146.250000, 38.548165 ], [ -146.469727, 38.515937 ], [ -146.469727, 41.145570 ], [ -143.206787, 41.145570 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 3, "y": 11 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.780273, 49.066668 ], [ -134.780273, 47.816843 ], [ -135.000000, 47.652438 ], [ -143.407288, 40.979898 ], [ -143.605042, 40.813809 ], [ -146.469727, 40.813809 ], [ -146.469727, 49.066668 ], [ -134.780273, 49.066668 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.780273, 49.066668 ], [ -134.780273, 47.816843 ], [ -135.000000, 47.652438 ], [ -143.407288, 40.979898 ], [ -143.605042, 40.813809 ], [ -146.469727, 40.813809 ], [ -146.469727, 49.066668 ], [ -134.780273, 49.066668 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 3, "y": 10 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.780273, 55.899956 ], [ -134.780273, 48.777913 ], [ -146.469727, 48.777913 ], [ -146.469727, 50.178657 ], [ -146.250000, 50.291094 ], [ -144.492188, 51.179343 ], [ -143.962097, 55.776573 ], [ -143.945618, 55.899956 ], [ -134.780273, 55.899956 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.780273, 55.899956 ], [ -134.780273, 48.777913 ], [ -146.469727, 48.777913 ], [ -146.469727, 50.176898 ], [ -144.492188, 51.179343 ], [ -143.962097, 55.776573 ], [ -143.945618, 55.899956 ], [ -134.780273, 55.899956 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 3, "y": 9 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.780273, 61.710706 ], [ -134.780273, 55.652798 ], [ -143.975830, 55.652798 ], [ -143.959351, 55.776573 ], [ -143.789062, 57.137730 ], [ -146.250000, 59.506455 ], [ -146.469727, 59.709327 ], [ -146.469727, 61.710706 ], [ -134.780273, 61.710706 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.780273, 61.710706 ], [ -134.780273, 55.652798 ], [ -143.975830, 55.652798 ], [ -143.959351, 55.776573 ], [ -143.789062, 57.136239 ], [ -146.250000, 59.505061 ], [ -146.469727, 59.709327 ], [ -146.469727, 61.710706 ], [ -134.780273, 61.710706 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 3, "y": 8 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.469727, 66.451887 ], [ -146.250000, 66.411253 ], [ -144.492188, 66.089364 ], [ -135.000000, 62.570575 ], [ -134.780273, 62.484415 ], [ -134.780273, 61.501734 ], [ -146.469727, 61.501734 ], [ -146.469727, 66.451887 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.469727, 66.451887 ], [ -146.250000, 66.411253 ], [ -144.492188, 66.089364 ], [ -135.000000, 62.570575 ], [ -134.780273, 62.484415 ], [ -134.780273, 61.501734 ], [ -146.469727, 61.501734 ], [ -146.469727, 66.451887 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 3, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.469727, 66.451887 ], [ -146.329651, 66.425537 ], [ -146.469727, 66.425537 ], [ -146.469727, 66.451887 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -146.469727, 66.451887 ], [ -146.329651, 66.425537 ], [ -146.469727, 66.425537 ], [ -146.469727, 66.451887 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 4, "y": 11 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -133.503113, 49.066668 ], [ -133.538818, 48.922499 ], [ -133.593750, 48.690960 ], [ -135.000000, 47.650588 ], [ -135.219727, 47.485657 ], [ -135.219727, 49.066668 ], [ -133.503113, 49.066668 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -133.503113, 49.066668 ], [ -133.538818, 48.922499 ], [ -133.593750, 48.690960 ], [ -135.000000, 47.650588 ], [ -135.219727, 47.485657 ], [ -135.219727, 49.066668 ], [ -133.503113, 49.066668 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 4, "y": 10 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -132.028198, 55.899956 ], [ -131.981506, 55.776573 ], [ -131.835938, 55.379110 ], [ -133.538818, 48.922499 ], [ -133.574524, 48.777913 ], [ -135.219727, 48.777913 ], [ -135.219727, 55.899956 ], [ -132.028198, 55.899956 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -132.028198, 55.899956 ], [ -131.981506, 55.776573 ], [ -131.835938, 55.379110 ], [ -133.538818, 48.922499 ], [ -133.574524, 48.777913 ], [ -135.219727, 48.777913 ], [ -135.219727, 55.899956 ], [ -132.028198, 55.899956 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 4, "y": 9 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.335327, 61.710706 ], [ -134.288635, 61.606396 ], [ -131.981506, 55.776573 ], [ -131.937561, 55.652798 ], [ -135.219727, 55.652798 ], [ -135.219727, 61.710706 ], [ -134.335327, 61.710706 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -134.335327, 61.710706 ], [ -134.288635, 61.606396 ], [ -131.981506, 55.776573 ], [ -131.937561, 55.652798 ], [ -135.219727, 55.652798 ], [ -135.219727, 61.710706 ], [ -134.335327, 61.710706 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 4, "y": 8 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -135.219727, 62.657748 ], [ -135.000000, 62.570575 ], [ -134.648438, 62.431074 ], [ -134.288635, 61.606396 ], [ -134.244690, 61.501734 ], [ -135.219727, 61.501734 ], [ -135.219727, 62.657748 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -135.219727, 62.657748 ], [ -135.000000, 62.570575 ], [ -134.648438, 62.431074 ], [ -134.288635, 61.606396 ], [ -134.244690, 61.501734 ], [ -135.219727, 61.501734 ], [ -135.219727, 62.657748 ] ] ] } }
] }
] }
,
@ -396,73 +396,73 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 29, "y": 10 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 157.719727, 55.899956 ], [ 157.719727, 53.321030 ], [ 157.500000, 53.722717 ], [ 156.796875, 54.979190 ], [ 157.445068, 55.776573 ], [ 157.546692, 55.899956 ], [ 157.719727, 55.899956 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 157.719727, 55.899956 ], [ 157.719727, 53.319390 ], [ 157.500000, 53.721092 ], [ 156.796875, 54.977614 ], [ 157.445068, 55.776573 ], [ 157.546692, 55.899956 ], [ 157.719727, 55.899956 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 29, "y": 9 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 157.719727, 56.107278 ], [ 157.719727, 55.652798 ], [ 157.343445, 55.652798 ], [ 157.445068, 55.776573 ], [ 157.719727, 56.107278 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 157.719727, 56.105747 ], [ 157.719727, 55.652798 ], [ 157.346191, 55.652798 ], [ 157.447815, 55.776573 ], [ 157.500000, 55.839856 ], [ 157.719727, 56.105747 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 11 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 168.969727, 49.066668 ], [ 168.969727, 41.248903 ], [ 161.718750, 45.336702 ], [ 160.002136, 48.922499 ], [ 159.930725, 49.066668 ], [ 168.969727, 49.066668 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 168.969727, 49.066668 ], [ 168.969727, 41.248903 ], [ 161.718750, 45.336702 ], [ 159.999390, 48.922499 ], [ 159.927979, 49.066668 ], [ 168.969727, 49.066668 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 10 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 168.969727, 55.899956 ], [ 168.969727, 48.777913 ], [ 160.073547, 48.777913 ], [ 160.002136, 48.922499 ], [ 157.500000, 53.722717 ], [ 157.280273, 54.120602 ], [ 157.280273, 55.575239 ], [ 157.546692, 55.899956 ], [ 168.969727, 55.899956 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 168.969727, 55.899956 ], [ 168.969727, 48.777913 ], [ 160.073547, 48.777913 ], [ 159.999390, 48.922499 ], [ 157.500000, 53.721092 ], [ 157.280273, 54.118993 ], [ 157.280273, 55.573687 ], [ 157.546692, 55.899956 ], [ 168.969727, 55.899956 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 9 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 168.969727, 61.710706 ], [ 168.969727, 55.652798 ], [ 157.343445, 55.652798 ], [ 157.500000, 55.842940 ], [ 162.660828, 61.606396 ], [ 162.762451, 61.710706 ], [ 168.969727, 61.710706 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 168.969727, 61.710706 ], [ 168.969727, 55.652798 ], [ 157.346191, 55.652798 ], [ 157.500000, 55.839856 ], [ 162.660828, 61.606396 ], [ 162.762451, 61.710706 ], [ 168.969727, 61.710706 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 30, "y": 8 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 168.969727, 64.279184 ], [ 168.969727, 61.501734 ], [ 162.559204, 61.501734 ], [ 162.660828, 61.606396 ], [ 163.476562, 62.431074 ], [ 168.750000, 64.207572 ], [ 168.969727, 64.279184 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 168.969727, 64.277992 ], [ 168.969727, 61.501734 ], [ 162.559204, 61.501734 ], [ 162.660828, 61.606396 ], [ 163.476562, 62.431074 ], [ 168.969727, 64.277992 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 12 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.219727, 41.145570 ], [ 180.219727, 36.489765 ], [ 180.000000, 36.522881 ], [ 175.781250, 37.160317 ], [ 169.425659, 40.979898 ], [ 169.142761, 41.145570 ], [ 180.219727, 41.145570 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.219727, 41.145570 ], [ 180.219727, 36.487557 ], [ 180.000000, 36.520673 ], [ 175.781250, 37.160317 ], [ 169.425659, 40.979898 ], [ 169.142761, 41.145570 ], [ 180.219727, 41.145570 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 11 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.219727, 45.135555 ], [ 180.219727, 40.813809 ], [ 169.708557, 40.813809 ], [ 169.425659, 40.979898 ], [ 168.750000, 41.376809 ], [ 168.530273, 41.504464 ], [ 168.530273, 49.066668 ], [ 173.435669, 49.066668 ], [ 173.485107, 48.922499 ], [ 174.023438, 47.279229 ], [ 180.219727, 45.135555 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.219727, 45.135555 ], [ 180.219727, 40.813809 ], [ 169.708557, 40.813809 ], [ 169.425659, 40.979898 ], [ 168.750000, 41.376809 ], [ 168.530273, 41.504464 ], [ 168.530273, 49.066668 ], [ 173.435669, 49.066668 ], [ 173.485107, 48.922499 ], [ 174.023438, 47.279229 ], [ 180.219727, 45.135555 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 10 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 172.375488, 55.899956 ], [ 172.309570, 55.776573 ], [ 171.562500, 54.369359 ], [ 173.485107, 48.922499 ], [ 173.531799, 48.777913 ], [ 168.530273, 48.777913 ], [ 168.530273, 55.899956 ], [ 172.375488, 55.899956 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 172.375488, 55.899956 ], [ 172.309570, 55.776573 ], [ 171.562500, 54.367759 ], [ 173.485107, 48.922499 ], [ 173.531799, 48.777913 ], [ 168.530273, 48.777913 ], [ 168.530273, 55.899956 ], [ 172.375488, 55.899956 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 9 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.131836, 61.710706 ], [ 179.901123, 61.606396 ], [ 174.023438, 58.815164 ], [ 172.306824, 55.776573 ], [ 172.240906, 55.652798 ], [ 168.530273, 55.652798 ], [ 168.530273, 61.710706 ], [ 180.131836, 61.710706 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.131836, 61.710706 ], [ 179.901123, 61.606396 ], [ 174.023438, 58.813742 ], [ 172.309570, 55.776573 ], [ 172.243652, 55.652798 ], [ 168.530273, 55.652798 ], [ 168.530273, 61.710706 ], [ 180.131836, 61.710706 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 8 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.219727, 66.600676 ], [ 180.219727, 61.751031 ], [ 180.000000, 61.650771 ], [ 179.901123, 61.606396 ], [ 179.670410, 61.501734 ], [ 168.530273, 61.501734 ], [ 168.530273, 64.135775 ], [ 170.507812, 64.775296 ], [ 175.190735, 66.513260 ], [ 175.435181, 66.600676 ], [ 180.219727, 66.600676 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.219727, 66.600676 ], [ 180.219727, 61.751031 ], [ 180.000000, 61.650771 ], [ 179.901123, 61.606396 ], [ 179.670410, 61.501734 ], [ 168.530273, 61.501734 ], [ 168.530273, 64.134577 ], [ 170.507812, 64.774125 ], [ 175.190735, 66.513260 ], [ 175.435181, 66.600676 ], [ 180.219727, 66.600676 ] ] ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 5, "x": 31, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27.00000000,27,1.4e27,{\"foo\":\"bar\"}]", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.219727, 67.531672 ], [ 180.219727, 66.425537 ], [ 174.946289, 66.425537 ], [ 175.190735, 66.513260 ], [ 177.539062, 67.339861 ], [ 180.000000, 67.515922 ], [ 180.219727, 67.531672 ] ] ] } }
{ "type": "Feature", "properties": { "boolean": true, "otherboolean": false, "stringify": "[\"yes\",27,27,1.4e+27,{\"foo\":\"bar\"}]", "": "something for nothing", "escape": "foo\u0001bar,ü\"\\/\u0008\u000c\u000a\u000d\u0009→🐂🐳", "prêt": "ready" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 180.219727, 67.531672 ], [ 180.219727, 66.425537 ], [ 174.946289, 66.425537 ], [ 175.190735, 66.513260 ], [ 177.539062, 67.339861 ], [ 180.000000, 67.515922 ], [ 180.219727, 67.531672 ] ] ] } }
] }
] }
] }

View File

@ -3,7 +3,7 @@
"center": "-122.249782,37.796763,14",
"description": "tests/empty-linestring/out/-ac.json.check.mbtiles",
"format": "pbf",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 14, \"fields\": {} } ] }",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 14, \"fields\": {} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 5,\"geometry\": \"LineString\",\"attributeCount\": 0,\"attributes\": []}]}}",
"maxzoom": "14",
"minzoom": "0",
"name": "tests/empty-linestring/out/-ac.json.check.mbtiles",

View File

@ -3,248 +3,248 @@
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::3857" } },
"features": [
{ "type": "Feature", "properties": { "SCALERANK": 8, "NATSCALE": 10, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Vatican City", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vatican City", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 0, "SOV0NAME": "Vatican (Holy Sea)", "SOV_A3": "VAT", "ADM0NAME": "Vatican (Holy Sea)", "ADM0_A3": "VAT", "ADM1NAME": "Lazio", "ISO_A2": "VA", "NOTE": null, "LATITUDE": 41.900012, "LONGITUDE": 12.447808, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 832, "POP_MIN": 832, "POP_OTHER": 562430, "RANK_MAX": 2, "RANK_MIN": 2, "GEONAMEID": 6691831.000000, "MEGANAME": null, "LS_NAME": "Vatican City", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 636762.000000, "MAX_POP20": 636762.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 20.000000, "MIN_AREAKM": 177.000000, "MAX_AREAKM": 177.000000, "MIN_AREAMI": 68.000000, "MAX_AREAMI": 68.000000, "MIN_PERKM": 160.000000, "MAX_PERKM": 160.000000, "MIN_PERMI": 99.000000, "MAX_PERMI": 99.000000, "MIN_BBXMIN": 12.333333, "MAX_BBXMIN": 12.333333, "MIN_BBXMAX": 12.481009, "MAX_BBXMAX": 12.481009, "MIN_BBYMIN": 41.766667, "MAX_BBYMIN": 41.766667, "MIN_BBYMAX": 42.050000, "MAX_BBYMAX": 42.050000, "MEAN_BBXC": 12.419907, "MEAN_BBYC": 41.903477, "COMPARE": 0, "GN_ASCII": "Vatican City", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 826.000000, "ELEVATION": 0.000000, "GTOPO30": 17.000000, "TIMEZONE": "Europe\/Vatican", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1386304.648838063003495, 5146502.575862345285714 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "San Marino", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "San Marino", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "San Marino", "SOV_A3": "SMR", "ADM0NAME": "San Marino", "ADM0_A3": "SMR", "ADM1NAME": null, "ISO_A2": "SM", "NOTE": null, "LATITUDE": 43.917150, "LONGITUDE": 12.466670, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 29579, "POP_MIN": 29000, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 3168070.000000, "MEGANAME": null, "LS_NAME": "San Marino", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 29088.000000, "MAX_POP20": 29579.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 20.000000, "MIN_AREAKM": 30.000000, "MAX_AREAKM": 30.000000, "MIN_AREAMI": 11.000000, "MAX_AREAMI": 11.000000, "MIN_PERKM": 63.000000, "MAX_PERKM": 63.000000, "MIN_PERMI": 39.000000, "MAX_PERMI": 39.000000, "MIN_BBXMIN": 12.391667, "MAX_BBXMIN": 12.391667, "MIN_BBXMAX": 12.541667, "MAX_BBXMAX": 12.541667, "MIN_BBYMIN": 43.900000, "MAX_BBYMIN": 43.900000, "MIN_BBYMAX": 44.000000, "MAX_BBYMAX": 44.000000, "MEAN_BBXC": 12.462153, "MEAN_BBYC": 43.953472, "COMPARE": 0, "GN_ASCII": "San Marino", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 29000.000000, "ELEVATION": 0.000000, "GTOPO30": 377.000000, "TIMEZONE": "Europe\/San_Marino", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1385011.518533257767558, 5455558.186449201777577 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Vaduz", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vaduz", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Liechtenstein", "SOV_A3": "LIE", "ADM0NAME": "Liechtenstein", "ADM0_A3": "LIE", "ADM1NAME": null, "ISO_A2": "LI", "NOTE": null, "LATITUDE": 47.133724, "LONGITUDE": 9.516669, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 36281, "POP_MIN": 5342, "POP_OTHER": 33009, "RANK_MAX": 7, "RANK_MIN": 5, "GEONAMEID": 3042030.000000, "MEGANAME": null, "LS_NAME": "Vaduz", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 45442.000000, "MAX_POP20": 45442.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 20.000000, "MIN_AREAKM": 45.000000, "MAX_AREAKM": 45.000000, "MIN_AREAMI": 17.000000, "MAX_AREAMI": 17.000000, "MIN_PERKM": 90.000000, "MAX_PERKM": 90.000000, "MIN_PERMI": 56.000000, "MAX_PERMI": 56.000000, "MIN_BBXMIN": 9.433333, "MAX_BBXMIN": 9.433333, "MIN_BBXMAX": 9.558333, "MAX_BBXMAX": 9.558333, "MIN_BBYMIN": 47.091667, "MAX_BBYMIN": 47.091667, "MIN_BBYMAX": 47.233333, "MAX_BBYMAX": 47.233333, "MEAN_BBXC": 9.503734, "MEAN_BBYC": 47.167478, "COMPARE": 0, "GN_ASCII": "Vaduz", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 5197.000000, "ELEVATION": 0.000000, "GTOPO30": 711.000000, "TIMEZONE": "Europe\/Vaduz", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1059390.799771927762777, 5963928.576226930133998 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital alt", "NAME": "Lobamba", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lobamba", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Legislative and", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Swaziland", "SOV_A3": "SWZ", "ADM0NAME": "Swaziland", "ADM0_A3": "SWZ", "ADM1NAME": "Manzini", "ISO_A2": "SZ", "NOTE": null, "LATITUDE": -26.466667, "LONGITUDE": 31.199997, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 9782, "POP_MIN": 4557, "POP_OTHER": 0, "RANK_MAX": 5, "RANK_MIN": 4, "GEONAMEID": 935048.000000, "MEGANAME": null, "LS_NAME": "Lobamba", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 9782.000000, "MAX_POP20": 9782.000000, "MAX_POP50": 9782.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 18.000000, "MAX_AREAKM": 18.000000, "MIN_AREAMI": 7.000000, "MAX_AREAMI": 7.000000, "MIN_PERKM": 32.000000, "MAX_PERKM": 32.000000, "MIN_PERMI": 20.000000, "MAX_PERMI": 20.000000, "MIN_BBXMIN": 31.183333, "MAX_BBXMIN": 31.183333, "MIN_BBXMAX": 31.233333, "MAX_BBXMAX": 31.233333, "MIN_BBYMIN": -26.458333, "MAX_BBYMIN": -26.458333, "MIN_BBYMAX": -26.391667, "MAX_BBYMAX": -26.391667, "MEAN_BBXC": 31.201993, "MEAN_BBYC": -26.430254, "COMPARE": 0, "GN_ASCII": "Lobamba", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 4557.000000, "ELEVATION": 0.000000, "GTOPO30": 651.000000, "TIMEZONE": "Africa\/Mbabane", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3473167.79100483097136, -3056995.45730366744101 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Luxembourg", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Luxembourg", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Luxembourg", "SOV_A3": "LUX", "ADM0NAME": "Luxembourg", "ADM0_A3": "LUX", "ADM1NAME": "Luxembourg", "ISO_A2": "LU", "NOTE": null, "LATITUDE": 49.611660, "LONGITUDE": 6.130003, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 107260, "POP_MIN": 76684, "POP_OTHER": 106219, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 2960316.000000, "MEGANAME": null, "LS_NAME": "Luxembourg", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 107260.000000, "MAX_POP20": 107260.000000, "MAX_POP50": 107260.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 60.000000, "MAX_AREAKM": 60.000000, "MIN_AREAMI": 23.000000, "MAX_AREAMI": 23.000000, "MIN_PERKM": 71.000000, "MAX_PERKM": 71.000000, "MIN_PERMI": 44.000000, "MAX_PERMI": 44.000000, "MIN_BBXMIN": 6.041667, "MAX_BBXMIN": 6.041667, "MIN_BBXMAX": 6.183333, "MAX_BBXMAX": 6.183333, "MIN_BBYMIN": 49.558333, "MAX_BBYMIN": 49.558333, "MIN_BBYMAX": 49.708333, "MAX_BBYMAX": 49.708333, "MEAN_BBXC": 6.125273, "MEAN_BBYC": 49.620833, "COMPARE": 0, "GN_ASCII": "Luxembourg", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 76684.000000, "ELEVATION": 0.000000, "GTOPO30": 259.000000, "TIMEZONE": "Europe\/Luxembourg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 682388.790950537077151, 6379291.915456847287714 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Palikir", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Palikir", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Federated States of Micronesia", "SOV_A3": "FSM", "ADM0NAME": "Federated States of Micronesia", "ADM0_A3": "FSM", "ADM1NAME": null, "ISO_A2": "FM", "NOTE": null, "LATITUDE": 6.916644, "LONGITUDE": 158.149974, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4645, "POP_MIN": 4645, "POP_OTHER": 0, "RANK_MAX": 4, "RANK_MIN": 4, "GEONAMEID": 2081986.000000, "MEGANAME": null, "LS_NAME": "Palikir", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 412.000000, "MAX_POP20": 412.000000, "MAX_POP50": 412.000000, "MAX_POP300": 412.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1.000000, "MAX_AREAKM": 1.000000, "MIN_AREAMI": 0.000000, "MAX_AREAMI": 0.000000, "MIN_PERKM": 4.000000, "MAX_PERKM": 4.000000, "MIN_PERMI": 2.000000, "MAX_PERMI": 2.000000, "MIN_BBXMIN": 158.158333, "MAX_BBXMIN": 158.158333, "MIN_BBXMAX": 158.166667, "MAX_BBXMAX": 158.166667, "MIN_BBYMIN": 6.908333, "MAX_BBYMIN": 6.908333, "MIN_BBYMAX": 6.916667, "MAX_BBYMAX": 6.916667, "MEAN_BBXC": 158.162500, "MEAN_BBYC": 6.912500, "COMPARE": 0, "GN_ASCII": "Palikir", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 4645.000000, "ELEVATION": 0.000000, "GTOPO30": 159.000000, "TIMEZONE": "Pacific\/Ponape", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 17605174.610690511763096, 771834.17944869666826 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Majuro", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Majuro", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Marshall Islands", "SOV_A3": "MHL", "ADM0NAME": "Marshall Islands", "ADM0_A3": "MHL", "ADM1NAME": null, "ISO_A2": "MH", "NOTE": null, "LATITUDE": 7.103004, "LONGITUDE": 171.380000, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 25400, "POP_MIN": 20500, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2113779.000000, "MEGANAME": null, "LS_NAME": "Majuro", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2084.000000, "MAX_POP20": 2084.000000, "MAX_POP50": 2084.000000, "MAX_POP300": 2084.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 3.000000, "MAX_AREAKM": 3.000000, "MIN_AREAMI": 1.000000, "MAX_AREAMI": 1.000000, "MIN_PERKM": 7.000000, "MAX_PERKM": 7.000000, "MIN_PERMI": 5.000000, "MAX_PERMI": 5.000000, "MIN_BBXMIN": 171.366667, "MAX_BBXMIN": 171.366667, "MIN_BBXMAX": 171.375000, "MAX_BBXMAX": 171.375000, "MIN_BBYMIN": 7.091667, "MAX_BBYMIN": 7.091667, "MIN_BBYMAX": 7.116667, "MAX_BBYMAX": 7.116667, "MEAN_BBXC": 171.370833, "MEAN_BBYC": 7.104167, "COMPARE": 0, "GN_ASCII": "Majuro", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 20500.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Pacific\/Majuro", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19077934.351715244352818, 792735.993679151404649 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Funafuti", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Funafuti", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Tuvalu", "SOV_A3": "TUV", "ADM0NAME": "Tuvalu", "ADM0_A3": "TUV", "ADM1NAME": null, "ISO_A2": "TV", "NOTE": null, "LATITUDE": -8.516652, "LONGITUDE": 179.216647, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Population from GeoNames. Changed scale rank.", "POP_MAX": 4749, "POP_MIN": 4749, "POP_OTHER": 0, "RANK_MAX": 4, "RANK_MIN": 4, "GEONAMEID": 2110394.000000, "MEGANAME": null, "LS_NAME": "Funafuti", "LS_MATCH": 0, "CHECKME": 5, "MAX_POP10": 0.000000, "MAX_POP20": 0.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 0.000000, "MIN_AREAKM": 0.000000, "MAX_AREAKM": 0.000000, "MIN_AREAMI": 0.000000, "MAX_AREAMI": 0.000000, "MIN_PERKM": 0.000000, "MAX_PERKM": 0.000000, "MIN_PERMI": 0.000000, "MAX_PERMI": 0.000000, "MIN_BBXMIN": 0.000000, "MAX_BBXMIN": 0.000000, "MIN_BBXMAX": 0.000000, "MAX_BBXMAX": 0.000000, "MIN_BBYMIN": 0.000000, "MAX_BBYMIN": 0.000000, "MIN_BBYMAX": 0.000000, "MAX_BBYMAX": 0.000000, "MEAN_BBXC": 0.000000, "MEAN_BBYC": 0.000000, "COMPARE": 0, "GN_ASCII": "Funafuti", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 4749.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Pacific\/Funafuti", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19950305.896185114979744, -951580.02682121284306 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Melekeok", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Melekeok", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Palau", "SOV_A3": "PLW", "ADM0NAME": "Palau", "ADM0_A3": "PLW", "ADM1NAME": null, "ISO_A2": "PW", "NOTE": null, "LATITUDE": 7.487396, "LONGITUDE": 134.626548, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 7026, "POP_MIN": 7026, "POP_OTHER": 0, "RANK_MAX": 5, "RANK_MIN": 5, "GEONAMEID": 1559804.000000, "MEGANAME": null, "LS_NAME": "Melekeok", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 0.000000, "MAX_POP20": 0.000000, "MAX_POP50": 0.000000, "MAX_POP300": 7026.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 6.000000, "MAX_AREAKM": 6.000000, "MIN_AREAMI": 2.000000, "MAX_AREAMI": 2.000000, "MIN_PERKM": 15.000000, "MAX_PERKM": 15.000000, "MIN_PERMI": 9.000000, "MAX_PERMI": 9.000000, "MIN_BBXMIN": 134.466667, "MAX_BBXMIN": 134.466667, "MIN_BBXMAX": 134.500000, "MAX_BBXMAX": 134.500000, "MIN_BBYMIN": 7.325000, "MAX_BBYMIN": 7.325000, "MIN_BBYMAX": 7.350000, "MAX_BBYMAX": 7.350000, "MEAN_BBXC": 134.481548, "MEAN_BBYC": 7.339881, "COMPARE": 0, "GN_ASCII": "Melekeok", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 217.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Pacific\/Palau", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 14986558.822601536288857, 835875.594339321018197 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital alt", "NAME": "Bir Lehlou", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bir Lehlou", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Claimed as inte", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Western Sahara", "SOV_A3": "SAH", "ADM0NAME": "Western Sahara", "ADM0_A3": "SAH", "ADM1NAME": null, "ISO_A2": "EH", "NOTE": null, "LATITUDE": 26.119167, "LONGITUDE": -9.652522, "CHANGED": 4.000000, "NAMEDIFF": 1, "DIFFNOTE": "Added place.", "POP_MAX": 500, "POP_MIN": 200, "POP_OTHER": 0, "RANK_MAX": 2, "RANK_MIN": 1, "GEONAMEID": -1.000000, "MEGANAME": null, "LS_NAME": null, "LS_MATCH": 2, "CHECKME": 0, "MAX_POP10": 0.000000, "MAX_POP20": 0.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 0.000000, "MIN_AREAKM": 0.000000, "MAX_AREAKM": 0.000000, "MIN_AREAMI": 0.000000, "MAX_AREAMI": 0.000000, "MIN_PERKM": 0.000000, "MAX_PERKM": 0.000000, "MIN_PERMI": 0.000000, "MAX_PERMI": 0.000000, "MIN_BBXMIN": 0.000000, "MAX_BBXMIN": 0.000000, "MIN_BBXMAX": 0.000000, "MAX_BBXMAX": 0.000000, "MIN_BBYMIN": 0.000000, "MAX_BBYMIN": 0.000000, "MIN_BBYMAX": 0.000000, "MAX_BBYMAX": 0.000000, "MEAN_BBXC": 0.000000, "MEAN_BBYC": 0.000000, "COMPARE": 1, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1074513.858206360833719, 3013847.749461546074599 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Monaco", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Monaco", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Monaco", "SOV_A3": "MCO", "ADM0NAME": "Monaco", "ADM0_A3": "MCO", "ADM1NAME": null, "ISO_A2": "MC", "NOTE": null, "LATITUDE": 43.739646, "LONGITUDE": 7.406913, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 36371, "POP_MIN": 36371, "POP_OTHER": 102371, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2993458.000000, "MEGANAME": null, "LS_NAME": "Monaco", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 108543.000000, "MAX_POP20": 108543.000000, "MAX_POP50": 108543.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 36.000000, "MAX_AREAKM": 36.000000, "MIN_AREAMI": 14.000000, "MAX_AREAMI": 14.000000, "MIN_PERKM": 57.000000, "MAX_PERKM": 57.000000, "MIN_PERMI": 35.000000, "MAX_PERMI": 35.000000, "MIN_BBXMIN": 7.350000, "MAX_BBXMIN": 7.350000, "MIN_BBXMAX": 7.533333, "MAX_BBXMAX": 7.533333, "MIN_BBYMIN": 43.716667, "MAX_BBYMIN": 43.716667, "MIN_BBYMAX": 43.800000, "MAX_BBYMAX": 43.800000, "MEAN_BBXC": 7.442529, "MEAN_BBYC": 43.754167, "COMPARE": 0, "GN_ASCII": "Monaco", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1020.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Europe\/Monaco", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 824533.802820121054538, 5425239.758034981787205 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Tarawa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tarawa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Kiribati", "SOV_A3": "KIR", "ADM0NAME": "Kiribati", "ADM0_A3": "KIR", "ADM1NAME": null, "ISO_A2": "KI", "NOTE": null, "LATITUDE": 1.338188, "LONGITUDE": 173.017571, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 28802, "POP_MIN": 22534, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2110079.000000, "MEGANAME": null, "LS_NAME": "Tarawa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 22534.000000, "MAX_POP20": 22534.000000, "MAX_POP50": 22534.000000, "MAX_POP300": 22534.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 12.000000, "MAX_AREAKM": 12.000000, "MIN_AREAMI": 5.000000, "MAX_AREAMI": 5.000000, "MIN_PERKM": 28.000000, "MAX_PERKM": 28.000000, "MIN_PERMI": 17.000000, "MAX_PERMI": 17.000000, "MIN_BBXMIN": 172.966667, "MAX_BBXMIN": 172.966667, "MIN_BBXMAX": 173.058333, "MAX_BBXMAX": 173.058333, "MIN_BBYMIN": 1.325000, "MAX_BBYMIN": 1.325000, "MIN_BBYMAX": 1.358333, "MAX_BBYMAX": 1.358333, "MEAN_BBXC": 173.015476, "MEAN_BBYC": 1.338690, "COMPARE": 0, "GN_ASCII": "Tarawa", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 28802.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Pacific\/Tarawa", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19260227.882923271507025, 148979.896893877390539 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Moroni", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Moroni", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Comoros", "SOV_A3": "COM", "ADM0NAME": "Comoros", "ADM0_A3": "COM", "ADM1NAME": null, "ISO_A2": "KM", "NOTE": null, "LATITUDE": -11.704158, "LONGITUDE": 43.240244, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 128698, "POP_MIN": 42872, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 7, "GEONAMEID": 921772.000000, "MEGANAME": null, "LS_NAME": "Moroni", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 128698.000000, "MAX_POP20": 128698.000000, "MAX_POP50": 128698.000000, "MAX_POP300": 128698.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 60.000000, "MAX_AREAKM": 60.000000, "MIN_AREAMI": 23.000000, "MAX_AREAMI": 23.000000, "MIN_PERKM": 98.000000, "MAX_PERKM": 98.000000, "MIN_PERMI": 61.000000, "MAX_PERMI": 61.000000, "MIN_BBXMIN": 43.225000, "MAX_BBXMIN": 43.225000, "MIN_BBXMAX": 43.291667, "MAX_BBXMAX": 43.291667, "MIN_BBYMIN": -11.758333, "MAX_BBYMIN": -11.758333, "MIN_BBYMAX": -11.475000, "MAX_BBYMAX": -11.475000, "MEAN_BBXC": 43.264352, "MEAN_BBYC": -11.639931, "COMPARE": 0, "GN_ASCII": "Moroni", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 42872.000000, "ELEVATION": 0.000000, "GTOPO30": 35.000000, "TIMEZONE": "Indian\/Comoro", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4813481.954843393526971, -1312057.963742661988363 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Andorra", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Andorra", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Andorra", "SOV_A3": "AND", "ADM0NAME": "Andorra", "ADM0_A3": "AND", "ADM1NAME": null, "ISO_A2": "AD", "NOTE": null, "LATITUDE": 42.500001, "LONGITUDE": 1.516486, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 53998, "POP_MIN": 22256, "POP_OTHER": 53371, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 3130067.000000, "MEGANAME": null, "LS_NAME": "Andorra", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 53998.000000, "MAX_POP20": 53998.000000, "MAX_POP50": 53998.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 23.000000, "MAX_AREAKM": 23.000000, "MIN_AREAMI": 9.000000, "MAX_AREAMI": 9.000000, "MIN_PERKM": 49.000000, "MAX_PERKM": 49.000000, "MIN_PERMI": 31.000000, "MAX_PERMI": 31.000000, "MIN_BBXMIN": 1.483333, "MAX_BBXMIN": 1.483333, "MIN_BBXMAX": 1.591667, "MAX_BBXMAX": 1.591667, "MIN_BBYMIN": 42.483333, "MAX_BBYMIN": 42.483333, "MIN_BBYMAX": 42.550000, "MAX_BBYMAX": 42.550000, "MEAN_BBXC": 1.535473, "MEAN_BBYC": 42.518131, "COMPARE": 0, "GN_ASCII": "Andorra", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 52.000000, "GN_POP": 7890.000000, "ELEVATION": 0.000000, "GTOPO30": 687.000000, "TIMEZONE": "Europe\/Madrid", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 168814.444918624125421, 5236174.001877997070551 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port-of-Spain", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port-of-Spain", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Trinidad and Tobago", "SOV_A3": "TTO", "ADM0NAME": "Trinidad and Tobago", "ADM0_A3": "TTO", "ADM1NAME": "Port of Spain", "ISO_A2": "TT", "NOTE": null, "LATITUDE": 10.651997, "LONGITUDE": -61.517031, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 294934, "POP_MIN": 49031, "POP_OTHER": 419082, "RANK_MAX": 10, "RANK_MIN": 7, "GEONAMEID": 3573890.000000, "MEGANAME": null, "LS_NAME": "Port-of-Spain", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 294934.000000, "MAX_POP20": 294934.000000, "MAX_POP50": 294934.000000, "MAX_POP300": 294934.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 112.000000, "MAX_AREAKM": 112.000000, "MIN_AREAMI": 43.000000, "MAX_AREAMI": 43.000000, "MIN_PERKM": 109.000000, "MAX_PERKM": 109.000000, "MIN_PERMI": 67.000000, "MAX_PERMI": 67.000000, "MIN_BBXMIN": -61.533333, "MAX_BBXMIN": -61.533333, "MIN_BBXMAX": -61.250000, "MAX_BBXMAX": -61.250000, "MIN_BBYMIN": 10.583333, "MAX_BBYMIN": 10.583333, "MIN_BBYMAX": 10.666667, "MAX_BBYMAX": 10.666667, "MEAN_BBXC": -61.383365, "MEAN_BBYC": 10.638816, "COMPARE": 0, "GN_ASCII": "Port-of-Spain", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 49657.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "America\/Port_of_Spain", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6848044.553282350301743, 1192665.255435108905658 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Kigali", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kigali", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Rwanda", "SOV_A3": "RWA", "ADM0NAME": "Rwanda", "ADM0_A3": "RWA", "ADM1NAME": "Kigali City", "ISO_A2": "RW", "NOTE": null, "LATITUDE": -1.953590, "LONGITUDE": 30.060532, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 860000, "POP_MIN": 745261, "POP_OTHER": 1152904, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 202061.000000, "MEGANAME": "Kigali", "LS_NAME": "Kigali", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1046787.000000, "MAX_POP20": 2263899.000000, "MAX_POP50": 5065653.000000, "MAX_POP300": 7102391.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 601.000000, "MAX_AREAKM": 8753.000000, "MIN_AREAMI": 232.000000, "MAX_AREAMI": 3380.000000, "MIN_PERKM": 735.000000, "MAX_PERKM": 9184.000000, "MIN_PERMI": 457.000000, "MAX_PERMI": 5707.000000, "MIN_BBXMIN": 29.166667, "MAX_BBXMIN": 29.833333, "MIN_BBXMAX": 30.233333, "MAX_BBXMAX": 30.475000, "MIN_BBYMIN": -2.991667, "MAX_BBYMIN": -2.075000, "MIN_BBYMAX": -1.766630, "MAX_BBYMAX": -1.075000, "MEAN_BBXC": 29.913775, "MEAN_BBYC": -2.034427, "COMPARE": 0, "GN_ASCII": "Kigali", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 745261.000000, "ELEVATION": 0.000000, "GTOPO30": 1568.000000, "TIMEZONE": "Africa\/Kigali", "GEONAMESNO": "GeoNames match general.", "UN_FID": 439, "UN_ADM0": "Rwanda", "UN_LAT": -1.950000, "UN_LONG": 30.050000, "POP1950": 18.000000, "POP1955": 25.000000, "POP1960": 34.000000, "POP1965": 45.000000, "POP1970": 59.000000, "POP1975": 90.000000, "POP1980": 128.000000, "POP1985": 168.000000, "POP1990": 219.000000, "POP1995": 289.000000, "POP2000": 497.000000, "POP2005": 775.000000, "POP2010": 860.000000, "POP2015": 947.000000, "POP2020": 1152.000000, "POP2025": 1413.000000, "POP2050": 1715.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3346106.478476080112159, -217298.064181762572844 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Mbabane", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Mbabane", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Administrative", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Swaziland", "SOV_A3": "SWZ", "ADM0NAME": "Swaziland", "ADM0_A3": "SWZ", "ADM1NAME": "Hhohho", "ISO_A2": "SZ", "NOTE": null, "LATITUDE": -26.316651, "LONGITUDE": 31.133335, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 90138, "POP_MIN": 76218, "POP_OTHER": 89979, "RANK_MAX": 8, "RANK_MIN": 8, "GEONAMEID": 934985.000000, "MEGANAME": null, "LS_NAME": "Mbabane", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 90138.000000, "MAX_POP20": 90138.000000, "MAX_POP50": 90138.000000, "MAX_POP300": 90138.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 28.000000, "MAX_AREAKM": 28.000000, "MIN_AREAMI": 11.000000, "MAX_AREAMI": 11.000000, "MIN_PERKM": 37.000000, "MAX_PERKM": 37.000000, "MIN_PERMI": 23.000000, "MAX_PERMI": 23.000000, "MIN_BBXMIN": 31.100000, "MAX_BBXMIN": 31.100000, "MIN_BBXMAX": 31.158333, "MAX_BBXMAX": 31.158333, "MIN_BBYMIN": -26.350000, "MAX_BBYMIN": -26.350000, "MIN_BBYMAX": -26.283333, "MAX_BBYMAX": -26.283333, "MEAN_BBXC": 31.129842, "MEAN_BBYC": -26.315428, "COMPARE": 0, "GN_ASCII": "Mbabane", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 76218.000000, "ELEVATION": 0.000000, "GTOPO30": 1156.000000, "TIMEZONE": "Africa\/Mbabane", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3465746.944578766357154, -3038352.650455256458372 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Juba", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Juba", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "South Sudan", "SOV_A3": "SSD", "ADM0NAME": "South Sudan", "ADM0_A3": "SSD", "ADM1NAME": "Central Equatoria", "ISO_A2": "SS", "NOTE": null, "LATITUDE": 4.829975, "LONGITUDE": 31.580026, "CHANGED": 20.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed country.", "POP_MAX": 111975, "POP_MIN": 111975, "POP_OTHER": 111975, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 373303.000000, "MEGANAME": null, "LS_NAME": "Juba", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 111975.000000, "MAX_POP20": 111975.000000, "MAX_POP50": 111975.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 21.000000, "MAX_AREAKM": 21.000000, "MIN_AREAMI": 8.000000, "MAX_AREAMI": 8.000000, "MIN_PERKM": 30.000000, "MAX_PERKM": 30.000000, "MIN_PERMI": 18.000000, "MAX_PERMI": 18.000000, "MIN_BBXMIN": 31.575000, "MAX_BBXMIN": 31.575000, "MIN_BBXMAX": 31.625000, "MAX_BBXMAX": 31.625000, "MIN_BBYMIN": 4.816667, "MAX_BBYMIN": 4.816667, "MIN_BBYMAX": 4.883333, "MAX_BBYMAX": 4.883333, "MEAN_BBXC": 31.601500, "MEAN_BBYC": 4.845167, "COMPARE": 0, "GN_ASCII": "Juba", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 44.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 551.000000, "TIMEZONE": "Africa\/Khartoum", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3515472.368227631784976, 538308.322600076440722 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital alt", "NAME": "The Hague", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "The Hague", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Official, legis", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Kingdom of the Netherlands", "SOV_A3": "NLD", "ADM0NAME": "Netherlands", "ADM0_A3": "NLD", "ADM1NAME": "Zuid-Holland", "ISO_A2": "NL", "NOTE": null, "LATITUDE": 52.080037, "LONGITUDE": 4.269961, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1406000, "POP_MIN": 501725, "POP_OTHER": 688599, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2747373.000000, "MEGANAME": null, "LS_NAME": "The Hague", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 708489.000000, "MAX_POP20": 708489.000000, "MAX_POP50": 2312867.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 195.000000, "MAX_AREAKM": 710.000000, "MIN_AREAMI": 75.000000, "MAX_AREAMI": 274.000000, "MIN_PERKM": 217.000000, "MAX_PERKM": 764.000000, "MIN_PERMI": 135.000000, "MAX_PERMI": 475.000000, "MIN_BBXMIN": 4.150000, "MAX_BBXMIN": 4.150000, "MIN_BBXMAX": 4.450000, "MAX_BBXMAX": 4.749141, "MIN_BBYMIN": 51.766667, "MAX_BBYMIN": 51.958333, "MIN_BBYMAX": 52.158333, "MAX_BBYMAX": 52.158333, "MEAN_BBXC": 4.355912, "MEAN_BBYC": 52.021475, "COMPARE": 0, "GN_ASCII": "Den Haag", "FEATURE_CL": "P", "FEATURE_CO": "PPLG", "ADMIN1_COD": 11.000000, "GN_POP": 474292.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Europe\/Amsterdam", "GEONAMESNO": "GeoNames rough area, rough name.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 475329.917880515393335, 6814610.099835072644055 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Ljubljana", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ljubljana", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Slovenia", "SOV_A3": "SVN", "ADM0NAME": "Slovenia", "ADM0_A3": "SVN", "ADM1NAME": "Osrednjeslovenska", "ISO_A2": "SI", "NOTE": null, "LATITUDE": 46.055288, "LONGITUDE": 14.514969, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 314807, "POP_MIN": 255115, "POP_OTHER": 256316, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3196359.000000, "MEGANAME": null, "LS_NAME": "Ljubljana", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 314807.000000, "MAX_POP20": 314807.000000, "MAX_POP50": 314807.000000, "MAX_POP300": 314807.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 145.000000, "MAX_AREAKM": 145.000000, "MIN_AREAMI": 56.000000, "MAX_AREAMI": 56.000000, "MIN_PERKM": 208.000000, "MAX_PERKM": 208.000000, "MIN_PERMI": 129.000000, "MAX_PERMI": 129.000000, "MIN_BBXMIN": 14.433333, "MAX_BBXMIN": 14.433333, "MIN_BBXMAX": 14.633333, "MAX_BBXMAX": 14.633333, "MIN_BBYMIN": 46.000000, "MAX_BBYMIN": 46.000000, "MIN_BBYMAX": 46.241667, "MAX_BBYMAX": 46.241667, "MEAN_BBXC": 14.541032, "MEAN_BBYC": 46.091958, "COMPARE": 0, "GN_ASCII": "Ljubljana", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 61.000000, "GN_POP": 255115.000000, "ELEVATION": 0.000000, "GTOPO30": 284.000000, "TIMEZONE": "Europe\/Ljubljana", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1615798.961686474969611, 5789213.641489177010953 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Bratislava", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bratislava", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Slovakia", "SOV_A3": "SVK", "ADM0NAME": "Slovakia", "ADM0_A3": "SVK", "ADM1NAME": "Bratislavský", "ISO_A2": "SK", "NOTE": null, "LATITUDE": 48.150018, "LONGITUDE": 17.116981, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 423737, "POP_MIN": 373687, "POP_OTHER": 361489, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3060972.000000, "MEGANAME": null, "LS_NAME": "Bratislava", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 373687.000000, "MAX_POP20": 373687.000000, "MAX_POP50": 373687.000000, "MAX_POP300": 373687.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 113.000000, "MAX_AREAKM": 113.000000, "MIN_AREAMI": 43.000000, "MAX_AREAMI": 43.000000, "MIN_PERKM": 121.000000, "MAX_PERKM": 121.000000, "MIN_PERMI": 75.000000, "MAX_PERMI": 75.000000, "MIN_BBXMIN": 17.016667, "MAX_BBXMIN": 17.016667, "MIN_BBXMAX": 17.233333, "MAX_BBXMAX": 17.233333, "MIN_BBYMIN": 48.091667, "MAX_BBYMIN": 48.091667, "MIN_BBYMAX": 48.225000, "MAX_BBYMAX": 48.225000, "MEAN_BBXC": 17.131335, "MEAN_BBYC": 48.159311, "COMPARE": 0, "GN_ASCII": "Bratislava", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 423737.000000, "ELEVATION": 0.000000, "GTOPO30": 132.000000, "TIMEZONE": "Europe\/Bratislava", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1905453.581257021753117, 6131848.926394967362285 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Doha", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Doha", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Qatar", "SOV_A3": "QAT", "ADM0NAME": "Qatar", "ADM0_A3": "QAT", "ADM1NAME": "Ad Dawhah", "ISO_A2": "QA", "NOTE": null, "LATITUDE": 25.286556, "LONGITUDE": 51.532968, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 1450000, "POP_MIN": 731310, "POP_OTHER": 0, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 290030.000000, "MEGANAME": null, "LS_NAME": "Doha", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 731310.000000, "MAX_POP20": 731310.000000, "MAX_POP50": 731310.000000, "MAX_POP300": 731310.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 270.000000, "MAX_AREAKM": 270.000000, "MIN_AREAMI": 104.000000, "MAX_AREAMI": 104.000000, "MIN_PERKM": 205.000000, "MAX_PERKM": 205.000000, "MIN_PERMI": 127.000000, "MAX_PERMI": 127.000000, "MIN_BBXMIN": 51.358333, "MAX_BBXMIN": 51.358333, "MIN_BBXMAX": 51.583333, "MAX_BBXMAX": 51.583333, "MIN_BBYMIN": 25.158333, "MAX_BBYMIN": 25.158333, "MIN_BBYMAX": 25.408333, "MAX_BBYMAX": 25.408333, "MEAN_BBXC": 51.468439, "MEAN_BBYC": 25.281154, "COMPARE": 0, "GN_ASCII": "Doha", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 344939.000000, "ELEVATION": 0.000000, "GTOPO30": 21.000000, "TIMEZONE": "Asia\/Qatar", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5736623.745059514418244, 2910982.827040837612003 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Podgorica", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Podgorica", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Montenegro", "SOV_A3": "MNE", "ADM0NAME": "Montenegro", "ADM0_A3": "MNE", "ADM1NAME": "Podgorica", "ISO_A2": "ME", "NOTE": null, "LATITUDE": 42.465973, "LONGITUDE": 19.266307, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 145850, "POP_MIN": 136473, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 3193044.000000, "MEGANAME": null, "LS_NAME": "Podgorica", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 145850.000000, "MAX_POP20": 145850.000000, "MAX_POP50": 145850.000000, "MAX_POP300": 145850.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 41.000000, "MAX_AREAKM": 41.000000, "MIN_AREAMI": 16.000000, "MAX_AREAMI": 16.000000, "MIN_PERKM": 44.000000, "MAX_PERKM": 44.000000, "MIN_PERMI": 27.000000, "MAX_PERMI": 27.000000, "MIN_BBXMIN": 19.208333, "MAX_BBXMIN": 19.208333, "MIN_BBXMAX": 19.316667, "MAX_BBXMAX": 19.316667, "MIN_BBYMIN": 42.408333, "MAX_BBYMIN": 42.408333, "MIN_BBYMAX": 42.475000, "MAX_BBYMAX": 42.475000, "MEAN_BBXC": 19.263397, "MEAN_BBYC": 42.442115, "COMPARE": 0, "GN_ASCII": "Podgorica", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 136473.000000, "ELEVATION": 0.000000, "GTOPO30": 58.000000, "TIMEZONE": "Europe\/Podgorica", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2144715.476259761489928, 5231037.46377420425415 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital alt", "NAME": "Sri Jawewardenepura Kotte", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sri Jawewardenepura Kotte", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Legislative cap", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Sri Lanka", "SOV_A3": "LKA", "ADM0NAME": "Sri Lanka", "ADM0_A3": "LKA", "ADM1NAME": "Colombo", "ISO_A2": "LK", "NOTE": null, "LATITUDE": 6.900004, "LONGITUDE": 79.949993, "CHANGED": 4.000000, "NAMEDIFF": 1, "DIFFNOTE": "Name changed.", "POP_MAX": 115826, "POP_MIN": 115826, "POP_OTHER": 2456292, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 1238992.000000, "MEGANAME": null, "LS_NAME": "Kotte", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2189383.000000, "MAX_POP20": 3439184.000000, "MAX_POP50": 4689795.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 1265.000000, "MAX_AREAKM": 2843.000000, "MIN_AREAMI": 488.000000, "MAX_AREAMI": 1098.000000, "MIN_PERKM": 1148.000000, "MAX_PERKM": 2388.000000, "MIN_PERMI": 713.000000, "MAX_PERMI": 1484.000000, "MIN_BBXMIN": 79.866667, "MAX_BBXMIN": 79.883827, "MIN_BBXMAX": 80.366283, "MAX_BBXMAX": 80.733333, "MIN_BBYMIN": 5.916667, "MAX_BBYMIN": 6.708333, "MIN_BBYMAX": 7.345790, "MAX_BBYMAX": 7.345790, "MEAN_BBXC": 80.097600, "MEAN_BBYC": 6.842005, "COMPARE": 1, "GN_ASCII": "Sri Jayewardenepura Kotte", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 36.000000, "GN_POP": 115826.000000, "ELEVATION": 0.000000, "GTOPO30": 35.000000, "TIMEZONE": "Asia\/Colombo", "GEONAMESNO": "GeoNames rough area, rough name.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8899992.514238476753235, 769968.297603190178052 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital alt", "NAME": "Baguio City", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Baguio City", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Philippines", "SOV_A3": "PHL", "ADM0NAME": "Philippines", "ADM0_A3": "PHL", "ADM1NAME": "Benguet", "ISO_A2": "PH", "NOTE": null, "LATITUDE": 16.429991, "LONGITUDE": 120.569943, "CHANGED": 40.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 447824, "POP_MIN": 272714, "POP_OTHER": 164877, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 1728930.000000, "MEGANAME": null, "LS_NAME": "Baguio City", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 447824.000000, "MAX_POP20": 447824.000000, "MAX_POP50": 447824.000000, "MAX_POP300": 447824.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 89.000000, "MAX_AREAKM": 89.000000, "MIN_AREAMI": 34.000000, "MAX_AREAMI": 34.000000, "MIN_PERKM": 78.000000, "MAX_PERKM": 78.000000, "MIN_PERMI": 48.000000, "MAX_PERMI": 48.000000, "MIN_BBXMIN": 120.541667, "MAX_BBXMIN": 120.541667, "MIN_BBXMAX": 120.650000, "MAX_BBXMAX": 120.650000, "MIN_BBYMIN": 16.358333, "MAX_BBYMIN": 16.358333, "MIN_BBYMAX": 16.483333, "MAX_BBYMAX": 16.483333, "MEAN_BBXC": 120.598765, "MEAN_BBYC": 16.421065, "COMPARE": 0, "GN_ASCII": "Baguio", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 272714.000000, "ELEVATION": 0.000000, "GTOPO30": 1448.000000, "TIMEZONE": "Asia\/Manila", "GEONAMESNO": "GeoNames spatial join with similar names only.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13421784.61357326246798, 1854572.21848 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital alt", "NAME": "Dodoma", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dodoma", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Offical capital", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "United Republic of Tanzania", "SOV_A3": "TZA", "ADM0NAME": "Tanzania", "ADM0_A3": "TZA", "ADM1NAME": "Dodoma", "ISO_A2": "TZ", "NOTE": null, "LATITUDE": -6.183306, "LONGITUDE": 35.750004, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 218269, "POP_MIN": 180541, "POP_OTHER": 0, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 160196.000000, "MEGANAME": null, "LS_NAME": "Dodoma", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 218269.000000, "MAX_POP20": 218269.000000, "MAX_POP50": 218269.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 55.000000, "MAX_AREAKM": 55.000000, "MIN_AREAMI": 21.000000, "MAX_AREAMI": 21.000000, "MIN_PERKM": 61.000000, "MAX_PERKM": 61.000000, "MIN_PERMI": 38.000000, "MAX_PERMI": 38.000000, "MIN_BBXMIN": 35.691667, "MAX_BBXMIN": 35.691667, "MIN_BBXMAX": 35.808333, "MAX_BBXMAX": 35.808333, "MIN_BBYMIN": -6.208333, "MAX_BBYMIN": -6.208333, "MIN_BBYMAX": -6.116667, "MAX_BBYMAX": -6.116667, "MEAN_BBXC": 35.747500, "MEAN_BBYC": -6.162244, "COMPARE": 0, "GN_ASCII": "Dodoma", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 180541.000000, "ELEVATION": 0.000000, "GTOPO30": 1129.000000, "TIMEZONE": "Africa\/Dar_es_Salaam", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3979672.198852524161339, -689662.478249167324975 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Bern", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bern", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Switzerland", "SOV_A3": "CHE", "ADM0NAME": "Switzerland", "ADM0_A3": "CHE", "ADM1NAME": "Bern", "ISO_A2": "CH", "NOTE": null, "LATITUDE": 46.916683, "LONGITUDE": 7.466975, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 275329, "POP_MIN": 121631, "POP_OTHER": 267814, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 2661552.000000, "MEGANAME": null, "LS_NAME": "Bern", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 275329.000000, "MAX_POP20": 275329.000000, "MAX_POP50": 275329.000000, "MAX_POP300": 275329.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 78.000000, "MAX_AREAKM": 78.000000, "MIN_AREAMI": 30.000000, "MAX_AREAMI": 30.000000, "MIN_PERKM": 85.000000, "MAX_PERKM": 85.000000, "MIN_PERMI": 53.000000, "MAX_PERMI": 53.000000, "MIN_BBXMIN": 7.375000, "MAX_BBXMIN": 7.375000, "MIN_BBXMAX": 7.533333, "MAX_BBXMAX": 7.533333, "MIN_BBYMIN": 46.900000, "MAX_BBYMIN": 46.900000, "MIN_BBYMAX": 47.041667, "MAX_BBYMAX": 47.041667, "MEAN_BBXC": 7.453227, "MEAN_BBYC": 46.958239, "COMPARE": 0, "GN_ASCII": "Bern", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 121631.000000, "ELEVATION": 0.000000, "GTOPO30": 527.000000, "TIMEZONE": "Europe\/Zurich", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 831219.906249413383193, 5928485.165733484551311 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital alt", "NAME": "Laayoune", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Laayoune", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Claimed as capi", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Morocco", "SOV_A3": "MAR", "ADM0NAME": "Morocco", "ADM0_A3": "MAR", "ADM1NAME": "Laâyoune - Boujdour - Sakia El Hamra", "ISO_A2": "MA", "NOTE": null, "LATITUDE": 27.149982, "LONGITUDE": -13.200006, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 188084, "POP_MIN": 176365, "POP_OTHER": 176365, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 2462881.000000, "MEGANAME": null, "LS_NAME": "Laayoune", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 176365.000000, "MAX_POP20": 176365.000000, "MAX_POP50": 176365.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 21.000000, "MAX_AREAKM": 21.000000, "MIN_AREAMI": 8.000000, "MAX_AREAMI": 8.000000, "MIN_PERKM": 26.000000, "MAX_PERKM": 26.000000, "MIN_PERMI": 16.000000, "MAX_PERMI": 16.000000, "MIN_BBXMIN": -13.225000, "MAX_BBXMIN": -13.225000, "MIN_BBXMAX": -13.158333, "MAX_BBXMAX": -13.158333, "MIN_BBYMIN": 27.125000, "MAX_BBYMIN": 27.125000, "MIN_BBYMAX": 27.175000, "MAX_BBYMAX": 27.175000, "MEAN_BBXC": -13.194643, "MEAN_BBYC": 27.146131, "COMPARE": 0, "GN_ASCII": "Ejbei Uad el Aabd", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 188084.000000, "ELEVATION": 0.000000, "GTOPO30": 72.000000, "TIMEZONE": "Africa\/El_Aaiun", "GEONAMESNO": "GeoNames rough area, rough name.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1469417.939956413116306, 3142222.586829502601177 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Pristina", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Pristina", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Kosovo", "SOV_A3": "KOS", "ADM0NAME": "Kosovo", "ADM0_A3": "KOS", "ADM1NAME": "Pristina", "ISO_A2": "-99", "NOTE": null, "LATITUDE": 42.666710, "LONGITUDE": 21.165984, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 465186, "POP_MIN": 198214, "POP_OTHER": 261783, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 786714.000000, "MEGANAME": null, "LS_NAME": "Pristina", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 265361.000000, "MAX_POP20": 265361.000000, "MAX_POP50": 265361.000000, "MAX_POP300": 265361.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 41.000000, "MAX_AREAKM": 41.000000, "MIN_AREAMI": 16.000000, "MAX_AREAMI": 16.000000, "MIN_PERKM": 69.000000, "MAX_PERKM": 69.000000, "MIN_PERMI": 43.000000, "MAX_PERMI": 43.000000, "MIN_BBXMIN": 21.066667, "MAX_BBXMIN": 21.066667, "MIN_BBXMAX": 21.208333, "MAX_BBXMAX": 21.208333, "MIN_BBYMIN": 42.625000, "MAX_BBYMIN": 42.625000, "MIN_BBYMAX": 42.733333, "MAX_BBYMAX": 42.733333, "MEAN_BBXC": 21.146346, "MEAN_BBYC": 42.666218, "COMPARE": 0, "GN_ASCII": "Pristina", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 1.000000, "GN_POP": 550000.000000, "ELEVATION": 0.000000, "GTOPO30": 668.000000, "TIMEZONE": "Europe\/Belgrade", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2356186.58902654517442, 5261378.463817734271288 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Roseau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Roseau", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Dominica", "SOV_A3": "DMA", "ADM0NAME": "Dominica", "ADM0_A3": "DMA", "ADM1NAME": "Saint George", "ISO_A2": "DM", "NOTE": null, "LATITUDE": 15.301016, "LONGITUDE": -61.387013, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 23336, "POP_MIN": 16571, "POP_OTHER": 23336, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 3575635.000000, "MEGANAME": null, "LS_NAME": "Roseau", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 23336.000000, "MAX_POP20": 23336.000000, "MAX_POP50": 23336.000000, "MAX_POP300": 23336.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 12.000000, "MAX_AREAKM": 12.000000, "MIN_AREAMI": 5.000000, "MAX_AREAMI": 5.000000, "MIN_PERKM": 25.000000, "MAX_PERKM": 25.000000, "MIN_PERMI": 16.000000, "MAX_PERMI": 16.000000, "MIN_BBXMIN": -61.400000, "MAX_BBXMIN": -61.400000, "MIN_BBXMAX": -61.350000, "MAX_BBXMAX": -61.350000, "MIN_BBYMIN": 15.266667, "MAX_BBYMIN": 15.266667, "MIN_BBYMAX": 15.325000, "MAX_BBYMAX": 15.325000, "MEAN_BBXC": -61.377500, "MEAN_BBYC": 15.298056, "COMPARE": 0, "GN_ASCII": "Roseau", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 16571.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "America\/Dominica", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6833571.026454426348209, 1723915.714688211213797 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Djibouti", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Djibouti", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Djibouti", "SOV_A3": "DJI", "ADM0NAME": "Djibouti", "ADM0_A3": "DJI", "ADM1NAME": "Djibouti", "ISO_A2": "DJ", "NOTE": null, "LATITUDE": 11.595014, "LONGITUDE": 43.148002, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 923000, "POP_MIN": 604013, "POP_OTHER": 335001, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 223817.000000, "MEGANAME": null, "LS_NAME": "Djibouti", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 335001.000000, "MAX_POP20": 335001.000000, "MAX_POP50": 335001.000000, "MAX_POP300": 335001.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 42.000000, "MAX_AREAKM": 42.000000, "MIN_AREAMI": 16.000000, "MAX_AREAMI": 16.000000, "MIN_PERKM": 44.000000, "MAX_PERKM": 44.000000, "MIN_PERMI": 27.000000, "MAX_PERMI": 27.000000, "MIN_BBXMIN": 43.066667, "MAX_BBXMIN": 43.066667, "MIN_BBXMAX": 43.166667, "MAX_BBXMAX": 43.166667, "MIN_BBYMIN": 11.533333, "MAX_BBYMIN": 11.533333, "MIN_BBYMAX": 11.625000, "MAX_BBYMAX": 11.625000, "MEAN_BBXC": 43.129167, "MEAN_BBYC": 11.571500, "COMPARE": 0, "GN_ASCII": "Djibouti", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 623891.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Africa\/Djibouti", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4803213.574323576875031, 1299652.654118061764166 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital alt", "NAME": "Putrajaya", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Putrajaya", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Administrative", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Malaysia", "SOV_A3": "MYS", "ADM0NAME": "Malaysia", "ADM0_A3": "MYS", "ADM1NAME": "Selangor", "ISO_A2": "MY", "NOTE": null, "LATITUDE": 2.914020, "LONGITUDE": 101.701947, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 67964, "POP_MIN": 50000, "POP_OTHER": 956431, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 6697380.000000, "MEGANAME": null, "LS_NAME": "Putrajaya", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 955607.000000, "MAX_POP20": 964830.000000, "MAX_POP50": 1651113.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 486.000000, "MAX_AREAKM": 805.000000, "MIN_AREAMI": 188.000000, "MAX_AREAMI": 311.000000, "MIN_PERKM": 467.000000, "MAX_PERKM": 737.000000, "MIN_PERMI": 290.000000, "MAX_PERMI": 458.000000, "MIN_BBXMIN": 101.358333, "MAX_BBXMIN": 101.575000, "MIN_BBXMAX": 101.891667, "MAX_BBXMAX": 101.891667, "MIN_BBYMIN": 2.700000, "MAX_BBYMIN": 2.708333, "MIN_BBYMAX": 3.041194, "MAX_BBYMAX": 3.041194, "MEAN_BBXC": 101.716617, "MEAN_BBYC": 2.915909, "COMPARE": 0, "GN_ASCII": "Putrajaya", "FEATURE_CL": "P", "FEATURE_CO": "PPLG", "ADMIN1_COD": 17.000000, "GN_POP": 50000.000000, "ELEVATION": 0.000000, "GTOPO30": 30.000000, "TIMEZONE": "Asia\/Kuala_Lumpur", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11321408.950474340468645, 324527.13689018425066 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital alt", "NAME": "Kyoto", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kyoto", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Official capita", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Japan", "SOV_A3": "JPN", "ADM0NAME": "Japan", "ADM0_A3": "JPN", "ADM1NAME": "Kyoto", "ISO_A2": "JP", "NOTE": null, "LATITUDE": 35.029992, "LONGITUDE": 135.749998, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1805000, "POP_MIN": 1459640, "POP_OTHER": 1827367, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1857910.000000, "MEGANAME": "Kyoto", "LS_NAME": "Kyoto", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1946052.000000, "MAX_POP20": 2520813.000000, "MAX_POP50": 2520813.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 340.000000, "MAX_AREAKM": 486.000000, "MIN_AREAMI": 131.000000, "MAX_AREAMI": 188.000000, "MIN_PERKM": 130.000000, "MAX_PERKM": 218.000000, "MIN_PERMI": 81.000000, "MAX_PERMI": 135.000000, "MIN_BBXMIN": 135.611529, "MAX_BBXMIN": 135.611529, "MIN_BBXMAX": 135.808333, "MAX_BBXMAX": 135.858333, "MIN_BBYMIN": 34.645060, "MAX_BBYMIN": 34.783333, "MIN_BBYMAX": 35.100000, "MAX_BBYMAX": 35.100000, "MEAN_BBXC": 135.743212, "MEAN_BBYC": 34.913171, "COMPARE": 0, "GN_ASCII": "Kyoto", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 22.000000, "GN_POP": 1459640.000000, "ELEVATION": 0.000000, "GTOPO30": 86.000000, "TIMEZONE": "Asia\/Tokyo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 313, "UN_ADM0": "Japan", "UN_LAT": 35.000000, "UN_LONG": 135.750000, "POP1950": 1002.000000, "POP1955": 1091.000000, "POP1960": 1165.000000, "POP1965": 1229.000000, "POP1970": 1298.000000, "POP1975": 1622.000000, "POP1980": 1701.000000, "POP1985": 1714.000000, "POP1990": 1760.000000, "POP1995": 1804.000000, "POP2000": 1806.000000, "POP2005": 1805.000000, "POP2010": 1805.000000, "POP2015": 1804.000000, "POP2020": 1804.000000, "POP2025": 1804.000000, "POP2050": 1804.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 15111404.032090259715915, 4168222.258126295171678 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Banjul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Banjul", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Gambia, The", "SOV_A3": "GMB", "ADM0NAME": "The Gambia", "ADM0_A3": "GMB", "ADM1NAME": "Banjul", "ISO_A2": "GM", "NOTE": null, "LATITUDE": 13.453876, "LONGITUDE": -16.591701, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 43094, "POP_MIN": 34589, "POP_OTHER": 581300, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2413876.000000, "MEGANAME": null, "LS_NAME": "Banjul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 43094.000000, "MAX_POP20": 43094.000000, "MAX_POP50": 43094.000000, "MAX_POP300": 43094.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 7.000000, "MAX_AREAKM": 7.000000, "MIN_AREAMI": 3.000000, "MAX_AREAMI": 3.000000, "MIN_PERKM": 13.000000, "MAX_PERKM": 13.000000, "MIN_PERMI": 8.000000, "MAX_PERMI": 8.000000, "MIN_BBXMIN": -16.600000, "MAX_BBXMIN": -16.600000, "MIN_BBXMAX": -16.566667, "MAX_BBXMAX": -16.566667, "MIN_BBYMIN": 13.441667, "MAX_BBYMIN": 13.441667, "MIN_BBYMAX": 13.466667, "MAX_BBYMAX": 13.466667, "MEAN_BBXC": -16.581250, "MEAN_BBYC": 13.455208, "COMPARE": 0, "GN_ASCII": "Banjul", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 34589.000000, "ELEVATION": 0.000000, "GTOPO30": 5.000000, "TIMEZONE": "Africa\/Banjul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1846979.761173146544024, 1511634.609642389463261 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Skopje", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Skopje", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Macedonia", "SOV_A3": "MKD", "ADM0NAME": "Macedonia", "ADM0_A3": "MKD", "ADM1NAME": "Centar", "ISO_A2": "MK", "NOTE": null, "LATITUDE": 42.000006, "LONGITUDE": 21.433461, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 494087, "POP_MIN": 474889, "POP_OTHER": 491890, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 785842.000000, "MEGANAME": null, "LS_NAME": "Skopje", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 494087.000000, "MAX_POP20": 494087.000000, "MAX_POP50": 494087.000000, "MAX_POP300": 494087.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 114.000000, "MAX_AREAKM": 114.000000, "MIN_AREAMI": 44.000000, "MAX_AREAMI": 44.000000, "MIN_PERKM": 98.000000, "MAX_PERKM": 98.000000, "MIN_PERMI": 61.000000, "MAX_PERMI": 61.000000, "MIN_BBXMIN": 21.300000, "MAX_BBXMIN": 21.300000, "MIN_BBXMAX": 21.533333, "MAX_BBXMAX": 21.533333, "MIN_BBYMIN": 41.950000, "MAX_BBYMIN": 41.950000, "MIN_BBYMAX": 42.066667, "MAX_BBYMAX": 42.066667, "MEAN_BBXC": 21.430243, "MEAN_BBYC": 42.007257, "COMPARE": 0, "GN_ASCII": "Skopje", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 474889.000000, "ELEVATION": 0.000000, "GTOPO30": 246.000000, "TIMEZONE": "Europe\/Skopje", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2385962.016236913856119, 5160980.361231430433691 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bridgetown", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bridgetown", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Barbados", "SOV_A3": "BRB", "ADM0NAME": "Barbados", "ADM0_A3": "BRB", "ADM1NAME": "Saint Michael", "ISO_A2": "BB", "NOTE": null, "LATITUDE": 13.102003, "LONGITUDE": -59.616527, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 191152, "POP_MIN": 96578, "POP_OTHER": 191814, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 2075807.000000, "MEGANAME": null, "LS_NAME": "Bridgetown", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 191152.000000, "MAX_POP20": 191152.000000, "MAX_POP50": 191152.000000, "MAX_POP300": 191152.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 106.000000, "MAX_AREAKM": 106.000000, "MIN_AREAMI": 41.000000, "MAX_AREAMI": 41.000000, "MIN_PERKM": 131.000000, "MAX_PERKM": 131.000000, "MIN_PERMI": 82.000000, "MAX_PERMI": 82.000000, "MIN_BBXMIN": -59.641667, "MAX_BBXMIN": -59.641667, "MIN_BBXMAX": -59.500000, "MAX_BBXMAX": -59.500000, "MIN_BBYMIN": 13.050000, "MAX_BBYMIN": 13.050000, "MIN_BBYMAX": 13.266667, "MAX_BBYMAX": 13.266667, "MEAN_BBXC": -59.589731, "MEAN_BBYC": 13.128773, "COMPARE": 0, "GN_ASCII": "Bridgetown", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 8.000000, "GN_POP": 2971.000000, "ELEVATION": 0.000000, "GTOPO30": 152.000000, "TIMEZONE": "Australia\/Perth", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6636481.399009522981942, 1471388.229003618471324 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital alt", "NAME": "Porto-Novo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Porto-Novo", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Official capita", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Benin", "SOV_A3": "BEN", "ADM0NAME": "Benin", "ADM0_A3": "BEN", "ADM1NAME": "Ouémé", "ISO_A2": "BJ", "NOTE": null, "LATITUDE": 6.483311, "LONGITUDE": 2.616626, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 300000, "POP_MIN": 234168, "POP_OTHER": 806945, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2392087.000000, "MEGANAME": null, "LS_NAME": "Porto-Novo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 517453.000000, "MAX_POP20": 457770.000000, "MAX_POP50": 457770.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 278.000000, "MAX_AREAKM": 319.000000, "MIN_AREAMI": 107.000000, "MAX_AREAMI": 123.000000, "MIN_PERKM": 251.000000, "MAX_PERKM": 312.000000, "MIN_PERMI": 156.000000, "MAX_PERMI": 194.000000, "MIN_BBXMIN": 2.558333, "MAX_BBXMIN": 2.558333, "MIN_BBXMAX": 2.883333, "MAX_BBXMAX": 2.883333, "MIN_BBYMIN": 6.450000, "MAX_BBYMIN": 6.450000, "MIN_BBYMAX": 6.650000, "MAX_BBYMAX": 6.733333, "MEAN_BBXC": 2.708025, "MEAN_BBYC": 6.520662, "COMPARE": 0, "GN_ASCII": "Porto-Novo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 16.000000, "GN_POP": 234168.000000, "ELEVATION": 0.000000, "GTOPO30": 39.000000, "TIMEZONE": "Africa\/Porto-Novo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 291281.421325459610671, 723263.982585314079188 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bujumbura", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bujumbura", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Burundi", "SOV_A3": "BDI", "ADM0NAME": "Burundi", "ADM0_A3": "BDI", "ADM1NAME": "Bujumbura Mairie", "ISO_A2": "BI", "NOTE": null, "LATITUDE": -3.376087, "LONGITUDE": 29.360006, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 331700, "POP_MIN": 331700, "POP_OTHER": 1208361, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 425378.000000, "MEGANAME": null, "LS_NAME": "Bujumbura", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1123733.000000, "MAX_POP20": 2140496.000000, "MAX_POP50": 3536914.000000, "MAX_POP300": 3539151.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1093.000000, "MAX_AREAKM": 5563.000000, "MIN_AREAMI": 422.000000, "MAX_AREAMI": 2148.000000, "MIN_PERKM": 1180.000000, "MAX_PERKM": 5081.000000, "MIN_PERMI": 733.000000, "MAX_PERMI": 3157.000000, "MIN_BBXMIN": 29.254336, "MAX_BBXMIN": 29.258333, "MIN_BBXMAX": 29.640630, "MAX_BBXMAX": 30.272423, "MIN_BBYMIN": -3.841667, "MAX_BBYMIN": -3.675000, "MIN_BBYMAX": -2.950000, "MAX_BBYMAX": -2.544862, "MEAN_BBXC": 29.649864, "MEAN_BBYC": -3.227847, "COMPARE": 0, "GN_ASCII": "Bujumbura", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 331700.000000, "ELEVATION": 0.000000, "GTOPO30": 795.000000, "TIMEZONE": "Africa\/Bujumbura", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3268340.924456766340882, -376041.977378407958895 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Kingstown", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kingstown", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Saint Vincent and the Grenadines", "SOV_A3": "VCT", "ADM0NAME": "Saint Vincent and the Grenadines", "ADM0_A3": "VCT", "ADM1NAME": null, "ISO_A2": "VC", "NOTE": null, "LATITUDE": 13.148279, "LONGITUDE": -61.212062, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 49485, "POP_MIN": 24518, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 4359981.000000, "MEGANAME": null, "LS_NAME": "Kingstown", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 49485.000000, "MAX_POP20": 49485.000000, "MAX_POP50": 49485.000000, "MAX_POP300": 49485.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 17.000000, "MAX_AREAKM": 17.000000, "MIN_AREAMI": 7.000000, "MAX_AREAMI": 7.000000, "MIN_PERKM": 31.000000, "MAX_PERKM": 31.000000, "MIN_PERMI": 19.000000, "MAX_PERMI": 19.000000, "MIN_BBXMIN": -61.241667, "MAX_BBXMIN": -61.241667, "MIN_BBXMAX": -61.158333, "MAX_BBXMAX": -61.158333, "MIN_BBYMIN": 13.125000, "MAX_BBYMIN": 13.125000, "MIN_BBYMAX": 13.175000, "MAX_BBYMAX": 13.175000, "MEAN_BBXC": -61.202183, "MEAN_BBYC": 13.145833, "COMPARE": 0, "GN_ASCII": "Kingstown", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 1662.000000, "ELEVATION": 5.000000, "GTOPO30": 1.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6814095.619031571783125, 1476677.86132567259483 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Castries", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Castries", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Saint Lucia", "SOV_A3": "LCA", "ADM0NAME": "Saint Lucia", "ADM0_A3": "LCA", "ADM1NAME": null, "ISO_A2": "LC", "NOTE": null, "LATITUDE": 14.001973, "LONGITUDE": -61.000008, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 37963, "POP_MIN": 10634, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 3028258.000000, "MEGANAME": null, "LS_NAME": "Castries", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 64343.000000, "MAX_POP20": 64343.000000, "MAX_POP50": 64343.000000, "MAX_POP300": 64343.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 16.000000, "MAX_AREAKM": 16.000000, "MIN_AREAMI": 6.000000, "MAX_AREAMI": 6.000000, "MIN_PERKM": 22.000000, "MAX_PERKM": 22.000000, "MIN_PERMI": 14.000000, "MAX_PERMI": 14.000000, "MIN_BBXMIN": -61.008333, "MAX_BBXMIN": -61.008333, "MIN_BBXMAX": -60.966667, "MAX_BBXMAX": -60.966667, "MIN_BBYMIN": 13.975000, "MAX_BBYMIN": 13.975000, "MIN_BBYMAX": 14.025000, "MAX_BBYMAX": 14.025000, "MEAN_BBXC": -60.988377, "MEAN_BBYC": 14.005921, "COMPARE": 0, "GN_ASCII": "Castries", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 5790.000000, "ELEVATION": 0.000000, "GTOPO30": 47.000000, "TIMEZONE": "Europe\/Paris", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6790489.849024262279272, 1574442.962402771925554 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Basseterre", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Basseterre", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Saint Kitts and Nevis", "SOV_A3": "KNA", "ADM0NAME": "Saint Kitts and Nevis", "ADM0_A3": "KNA", "ADM1NAME": null, "ISO_A2": "KN", "NOTE": null, "LATITUDE": 17.302030, "LONGITUDE": -62.717009, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 21887, "POP_MIN": 15500, "POP_OTHER": 21887, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 3575551.000000, "MEGANAME": null, "LS_NAME": "Basseterre", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 21887.000000, "MAX_POP20": 21887.000000, "MAX_POP50": 21887.000000, "MAX_POP300": 21887.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 7.000000, "MAX_AREAKM": 7.000000, "MIN_AREAMI": 3.000000, "MAX_AREAMI": 3.000000, "MIN_PERKM": 16.000000, "MAX_PERKM": 16.000000, "MIN_PERMI": 10.000000, "MAX_PERMI": 10.000000, "MIN_BBXMIN": -62.741667, "MAX_BBXMIN": -62.741667, "MIN_BBXMAX": -62.708333, "MAX_BBXMAX": -62.708333, "MIN_BBYMIN": 17.291667, "MAX_BBYMIN": 17.291667, "MIN_BBYMAX": 17.333333, "MAX_BBYMAX": 17.333333, "MEAN_BBXC": -62.726389, "MEAN_BBYC": 17.306019, "COMPARE": 0, "GN_ASCII": "Basseterre", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 12920.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "America\/St_Kitts", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6981625.541545924730599, 1956011.684171723900363 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Port Louis", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port Louis", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Mauritius", "SOV_A3": "MUS", "ADM0NAME": "Mauritius", "ADM0_A3": "MUS", "ADM1NAME": null, "ISO_A2": "MU", "NOTE": null, "LATITUDE": -20.166639, "LONGITUDE": 57.499994, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 595491, "POP_MIN": 148416, "POP_OTHER": 304613, "RANK_MAX": 11, "RANK_MIN": 9, "GEONAMEID": 934154.000000, "MEGANAME": null, "LS_NAME": "Port Louis", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 291837.000000, "MAX_POP20": 595491.000000, "MAX_POP50": 595491.000000, "MAX_POP300": 595491.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 70.000000, "MAX_AREAKM": 152.000000, "MIN_AREAMI": 27.000000, "MAX_AREAMI": 59.000000, "MIN_PERKM": 85.000000, "MAX_PERKM": 154.000000, "MIN_PERMI": 53.000000, "MAX_PERMI": 96.000000, "MIN_BBXMIN": 57.425000, "MAX_BBXMIN": 57.425000, "MIN_BBXMAX": 57.541667, "MAX_BBXMAX": 57.575000, "MIN_BBYMIN": -20.333333, "MAX_BBYMIN": -20.248073, "MIN_BBYMAX": -20.108333, "MAX_BBYMAX": -20.108333, "MEAN_BBXC": 57.491611, "MEAN_BBYC": -20.221833, "COMPARE": 0, "GN_ASCII": "Port Louis", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 18.000000, "GN_POP": 155226.000000, "ELEVATION": 0.000000, "GTOPO30": 133.000000, "TIMEZONE": "Indian\/Mauritius", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6400870.036511515267193, -2292782.036980749107897 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Saint George's", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Saint George's", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Grenada", "SOV_A3": "GRD", "ADM0NAME": "Grenada", "ADM0_A3": "GRD", "ADM1NAME": null, "ISO_A2": "GD", "NOTE": null, "LATITUDE": 12.052633, "LONGITUDE": -61.741643, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 33734, "POP_MIN": 27343, "POP_OTHER": 27343, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 3579925.000000, "MEGANAME": null, "LS_NAME": "Saint George‰?s", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 27343.000000, "MAX_POP20": 27343.000000, "MAX_POP50": 27343.000000, "MAX_POP300": 27343.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 10.000000, "MAX_AREAKM": 10.000000, "MIN_AREAMI": 4.000000, "MAX_AREAMI": 4.000000, "MIN_PERKM": 18.000000, "MAX_PERKM": 18.000000, "MIN_PERMI": 11.000000, "MAX_PERMI": 11.000000, "MIN_BBXMIN": -61.758333, "MAX_BBXMIN": -61.758333, "MIN_BBXMAX": -61.725000, "MAX_BBXMAX": -61.725000, "MIN_BBYMIN": 12.025000, "MAX_BBYMIN": 12.025000, "MIN_BBYMAX": 12.066667, "MAX_BBYMAX": 12.066667, "MEAN_BBXC": -61.745833, "MEAN_BBYC": 12.046528, "COMPARE": 0, "GN_ASCII": "Saint George's", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 7500.000000, "ELEVATION": 0.000000, "GTOPO30": 26.000000, "TIMEZONE": "America\/Grenada", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6873048.284666612744331, 1351699.01391572970897 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Manama", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Manama", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bahrain", "SOV_A3": "BHR", "ADM0NAME": "Bahrain", "ADM0_A3": "BHR", "ADM1NAME": null, "ISO_A2": "BH", "NOTE": null, "LATITUDE": 26.236136, "LONGITUDE": 50.583052, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 563920, "POP_MIN": 157474, "POP_OTHER": 563666, "RANK_MAX": 11, "RANK_MIN": 9, "GEONAMEID": 290340.000000, "MEGANAME": null, "LS_NAME": "Manama", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 563920.000000, "MAX_POP20": 563920.000000, "MAX_POP50": 563920.000000, "MAX_POP300": 563920.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 178.000000, "MAX_AREAKM": 178.000000, "MIN_AREAMI": 69.000000, "MAX_AREAMI": 69.000000, "MIN_PERKM": 184.000000, "MAX_PERKM": 184.000000, "MIN_PERMI": 115.000000, "MAX_PERMI": 115.000000, "MIN_BBXMIN": 50.441667, "MAX_BBXMIN": 50.441667, "MIN_BBXMAX": 50.633333, "MAX_BBXMAX": 50.633333, "MIN_BBYMIN": 26.050000, "MAX_BBYMIN": 26.050000, "MIN_BBYMAX": 26.250000, "MAX_BBYMAX": 26.250000, "MEAN_BBXC": 50.542529, "MEAN_BBYC": 26.164763, "COMPARE": 0, "GN_ASCII": "Manama", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 147074.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Asia\/Bahrain", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5630879.559784943237901, 3028356.950982266105711 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Saint John's", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Saint John's", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Antigua and Barbuda", "SOV_A3": "ATG", "ADM0NAME": "Antigua and Barbuda", "ADM0_A3": "ATG", "ADM1NAME": null, "ISO_A2": "AG", "NOTE": null, "LATITUDE": 17.118037, "LONGITUDE": -61.850034, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 35499, "POP_MIN": 24226, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 3576022.000000, "MEGANAME": null, "LS_NAME": "Saint John's", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 35499.000000, "MAX_POP20": 35499.000000, "MAX_POP50": 35499.000000, "MAX_POP300": 35499.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 25.000000, "MAX_AREAKM": 25.000000, "MIN_AREAMI": 10.000000, "MAX_AREAMI": 10.000000, "MIN_PERKM": 38.000000, "MAX_PERKM": 38.000000, "MIN_PERMI": 24.000000, "MAX_PERMI": 24.000000, "MIN_BBXMIN": -61.858333, "MAX_BBXMIN": -61.858333, "MIN_BBXMAX": -61.783333, "MAX_BBXMAX": -61.783333, "MIN_BBYMIN": 17.091667, "MAX_BBYMIN": 17.091667, "MIN_BBYMAX": 17.141667, "MAX_BBYMAX": 17.141667, "MEAN_BBXC": -61.824059, "MEAN_BBYC": 17.120565, "COMPARE": 0, "GN_ASCII": "Saint John's", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 24226.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "America\/Antigua", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6885114.269847990013659, 1934569.523055175086483 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Montevideo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Montevideo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Uruguay", "SOV_A3": "URY", "ADM0NAME": "Uruguay", "ADM0_A3": "URY", "ADM1NAME": "Montevideo", "ISO_A2": "UY", "NOTE": null, "LATITUDE": -34.858042, "LONGITUDE": -56.171052, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1513000, "POP_MIN": 5324, "POP_OTHER": 1276128, "RANK_MAX": 12, "RANK_MIN": 5, "GEONAMEID": 5038018.000000, "MEGANAME": "Montevideo", "LS_NAME": "Montevideo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1381747.000000, "MAX_POP20": 1381747.000000, "MAX_POP50": 1381747.000000, "MAX_POP300": 1381747.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 347.000000, "MAX_AREAKM": 347.000000, "MIN_AREAMI": 134.000000, "MAX_AREAMI": 134.000000, "MIN_PERKM": 266.000000, "MAX_PERKM": 266.000000, "MIN_PERMI": 165.000000, "MAX_PERMI": 165.000000, "MIN_BBXMIN": -56.291667, "MAX_BBXMIN": -56.291667, "MIN_BBXMAX": -55.800000, "MAX_BBXMAX": -55.800000, "MIN_BBYMIN": -34.933333, "MAX_BBYMIN": -34.933333, "MIN_BBYMAX": -34.650000, "MAX_BBYMAX": -34.650000, "MEAN_BBXC": -56.122730, "MEAN_BBYC": -34.828337, "COMPARE": 0, "GN_ASCII": "Montevideo", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 5324.000000, "ELEVATION": 284.000000, "GTOPO30": 305.000000, "TIMEZONE": "America\/Chicago", "GEONAMESNO": "GeoNames match general.", "UN_FID": 579, "UN_ADM0": "Uruguay", "UN_LAT": -34.920000, "UN_LONG": -56.160000, "POP1950": 1212.000000, "POP1955": 1248.000000, "POP1960": 1285.000000, "POP1965": 1323.000000, "POP1970": 1362.000000, "POP1975": 1403.000000, "POP1980": 1454.000000, "POP1985": 1508.000000, "POP1990": 1546.000000, "POP1995": 1584.000000, "POP2000": 1561.000000, "POP2005": 1525.000000, "POP2010": 1513.000000, "POP2015": 1504.000000, "POP2020": 1506.000000, "POP2025": 1515.000000, "POP2050": 1520.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6253149.550059545785189, -4144342.280923968646675 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Lome", "NAMEPAR": null, "NAMEALT": "Lomé", "DIFFASCII": 0, "NAMEASCII": "Lome", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Togo", "SOV_A3": "TGO", "ADM0NAME": "Togo", "ADM0_A3": "TGO", "ADM1NAME": "Maritime", "ISO_A2": "TG", "NOTE": null, "LATITUDE": 6.131937, "LONGITUDE": 1.222757, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1452000, "POP_MIN": 749700, "POP_OTHER": 1256715, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2365267.000000, "MEGANAME": "Lomé", "LS_NAME": "Lome", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 954448.000000, "MAX_POP20": 953569.000000, "MAX_POP50": 954013.000000, "MAX_POP300": 953569.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 343.000000, "MAX_AREAKM": 364.000000, "MIN_AREAMI": 133.000000, "MAX_AREAMI": 140.000000, "MIN_PERKM": 353.000000, "MAX_PERKM": 360.000000, "MIN_PERMI": 219.000000, "MAX_PERMI": 224.000000, "MIN_BBXMIN": 0.950000, "MAX_BBXMIN": 0.950000, "MIN_BBXMAX": 1.483333, "MAX_BBXMAX": 1.483333, "MIN_BBYMIN": 6.025000, "MAX_BBYMIN": 6.025000, "MIN_BBYMAX": 6.283333, "MAX_BBYMAX": 6.283333, "MEAN_BBXC": 1.190359, "MEAN_BBYC": 6.153924, "COMPARE": 0, "GN_ASCII": "Lome", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 24.000000, "GN_POP": 749700.000000, "ELEVATION": 0.000000, "GTOPO30": 64.000000, "TIMEZONE": "Africa\/Lome", "GEONAMESNO": "GeoNames match general.", "UN_FID": 497, "UN_ADM0": "Togo", "UN_LAT": 6.100000, "UN_LONG": 1.200000, "POP1950": 33.000000, "POP1955": 56.000000, "POP1960": 95.000000, "POP1965": 138.000000, "POP1970": 192.000000, "POP1975": 257.000000, "POP1980": 344.000000, "POP1985": 466.000000, "POP1990": 619.000000, "POP1995": 796.000000, "POP2000": 1023.000000, "POP2005": 1315.000000, "POP2010": 1452.000000, "POP2015": 1669.000000, "POP2020": 2038.000000, "POP2025": 2410.000000, "POP2050": 2791.000000, "CITYALT": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 135900.087900896091014, 684128.785037161782384 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Tunis", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tunis", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Tunisia", "SOV_A3": "TUN", "ADM0NAME": "Tunisia", "ADM0_A3": "TUN", "ADM1NAME": "Tunis", "ISO_A2": "TN", "NOTE": null, "LATITUDE": 36.802778, "LONGITUDE": 10.179678, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 2412500, "POP_MIN": 728453, "POP_OTHER": 1675117, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2464470.000000, "MEGANAME": null, "LS_NAME": "Tunis", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1831176.000000, "MAX_POP20": 1831176.000000, "MAX_POP50": 1838972.000000, "MAX_POP300": 1838972.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 480.000000, "MAX_AREAKM": 502.000000, "MIN_AREAMI": 185.000000, "MAX_AREAMI": 194.000000, "MIN_PERKM": 485.000000, "MAX_PERKM": 524.000000, "MIN_PERMI": 302.000000, "MAX_PERMI": 326.000000, "MIN_BBXMIN": 9.950000, "MAX_BBXMIN": 9.950000, "MIN_BBXMAX": 10.497585, "MAX_BBXMAX": 10.575000, "MIN_BBYMIN": 36.633333, "MAX_BBYMIN": 36.633333, "MIN_BBYMAX": 36.966667, "MAX_BBYMAX": 36.966667, "MEAN_BBXC": 10.202041, "MEAN_BBYC": 36.802974, "COMPARE": 0, "GN_ASCII": "Tunis", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 38.000000, "GN_POP": 693210.000000, "ELEVATION": 0.000000, "GTOPO30": 13.000000, "TIMEZONE": "Africa\/Tunis", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1133196.58244372298941, 4411652.140065941028297 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Abu Dhabi", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Abu Dhabi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "United Arab Emirates", "SOV_A3": "ARE", "ADM0NAME": "United Arab Emirates", "ADM0_A3": "ARE", "ADM1NAME": "Abu Dhabi", "ISO_A2": "AE", "NOTE": null, "LATITUDE": 24.466684, "LONGITUDE": 54.366593, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 603492, "POP_MIN": 560230, "POP_OTHER": 560230, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 292968.000000, "MEGANAME": null, "LS_NAME": "Abu Dhabi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 560230.000000, "MAX_POP20": 560230.000000, "MAX_POP50": 560230.000000, "MAX_POP300": 560230.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 96.000000, "MAX_AREAKM": 96.000000, "MIN_AREAMI": 37.000000, "MAX_AREAMI": 37.000000, "MIN_PERKM": 87.000000, "MAX_PERKM": 87.000000, "MIN_PERMI": 54.000000, "MAX_PERMI": 54.000000, "MIN_BBXMIN": 54.316667, "MAX_BBXMIN": 54.316667, "MIN_BBXMAX": 54.525000, "MAX_BBXMAX": 54.525000, "MIN_BBYMIN": 24.391667, "MAX_BBYMIN": 24.391667, "MIN_BBYMAX": 24.525000, "MAX_BBYMAX": 24.525000, "MEAN_BBXC": 54.410671, "MEAN_BBYC": 24.444343, "COMPARE": 0, "GN_ASCII": "Abu Dhabi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 603492.000000, "ELEVATION": 0.000000, "GTOPO30": 14.000000, "TIMEZONE": "Asia\/Dubai", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6052061.491515097208321, 2810379.529587164986879 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Ashgabat", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ashgabat", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Turkmenistan", "SOV_A3": "TKM", "ADM0NAME": "Turkmenistan", "ADM0_A3": "TKM", "ADM1NAME": "Ahal", "ISO_A2": "TM", "NOTE": null, "LATITUDE": 37.949995, "LONGITUDE": 58.383299, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 727700, "POP_MIN": 577982, "POP_OTHER": 556048, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 162183.000000, "MEGANAME": null, "LS_NAME": "Ashgabat", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 577982.000000, "MAX_POP20": 589324.000000, "MAX_POP50": 589324.000000, "MAX_POP300": 589324.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 108.000000, "MAX_AREAKM": 128.000000, "MIN_AREAMI": 42.000000, "MAX_AREAMI": 49.000000, "MIN_PERKM": 109.000000, "MAX_PERKM": 144.000000, "MIN_PERMI": 68.000000, "MAX_PERMI": 90.000000, "MIN_BBXMIN": 58.200000, "MAX_BBXMIN": 58.286370, "MIN_BBXMAX": 58.483333, "MAX_BBXMAX": 58.483333, "MIN_BBYMIN": 37.866667, "MAX_BBYMIN": 37.866667, "MIN_BBYMAX": 38.016667, "MAX_BBYMAX": 38.016667, "MEAN_BBXC": 58.371343, "MEAN_BBYC": 37.946190, "COMPARE": 0, "GN_ASCII": "Ashgabat", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 727700.000000, "ELEVATION": 0.000000, "GTOPO30": 219.000000, "TIMEZONE": "Asia\/Ashgabat", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6499199.127954133786261, 4572364.180398941971362 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Lusaka", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lusaka", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Zambia", "SOV_A3": "ZMB", "ADM0NAME": "Zambia", "ADM0_A3": "ZMB", "ADM1NAME": "Lusaka", "ISO_A2": "ZM", "NOTE": null, "LATITUDE": -15.416644, "LONGITUDE": 28.283328, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1328000, "POP_MIN": 1267440, "POP_OTHER": 1240558, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 909137.000000, "MEGANAME": "Lusaka", "LS_NAME": "Lusaka", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1289566.000000, "MAX_POP20": 1289566.000000, "MAX_POP50": 1289566.000000, "MAX_POP300": 1289566.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 183.000000, "MAX_AREAKM": 183.000000, "MIN_AREAMI": 71.000000, "MAX_AREAMI": 71.000000, "MIN_PERKM": 122.000000, "MAX_PERKM": 122.000000, "MIN_PERMI": 76.000000, "MAX_PERMI": 76.000000, "MIN_BBXMIN": 28.225000, "MAX_BBXMIN": 28.225000, "MIN_BBXMAX": 28.416667, "MAX_BBXMAX": 28.416667, "MIN_BBYMIN": -15.483333, "MAX_BBYMIN": -15.483333, "MIN_BBYMAX": -15.333333, "MAX_BBYMAX": -15.333333, "MEAN_BBXC": 28.308596, "MEAN_BBYC": -15.403941, "COMPARE": 0, "GN_ASCII": "Lusaka", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 1267440.000000, "ELEVATION": 0.000000, "GTOPO30": 1277.000000, "TIMEZONE": "Africa\/Lusaka", "GEONAMESNO": "GeoNames match general.", "UN_FID": 589, "UN_ADM0": "Zambia", "UN_LAT": -15.420000, "UN_LONG": 28.170000, "POP1950": 31.000000, "POP1955": 53.000000, "POP1960": 91.000000, "POP1965": 160.000000, "POP1970": 278.000000, "POP1975": 385.000000, "POP1980": 533.000000, "POP1985": 636.000000, "POP1990": 757.000000, "POP1995": 902.000000, "POP2000": 1073.000000, "POP2005": 1261.000000, "POP2010": 1328.000000, "POP2015": 1421.000000, "POP2020": 1587.000000, "POP2025": 1797.000000, "POP2050": 2047.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3148269.013794428668916, -1737039.467660029884428 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Harare", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Harare", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Zimbabwe", "SOV_A3": "ZWE", "ADM0NAME": "Zimbabwe", "ADM0_A3": "ZWE", "ADM1NAME": "Harare", "ISO_A2": "ZW", "NOTE": null, "LATITUDE": -17.817790, "LONGITUDE": 31.044709, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1572000, "POP_MIN": 1542813, "POP_OTHER": 1831877, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 890299.000000, "MEGANAME": "Harare", "LS_NAME": "Harare", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1833439.000000, "MAX_POP20": 1833439.000000, "MAX_POP50": 1833439.000000, "MAX_POP300": 1839463.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 310.000000, "MAX_AREAKM": 326.000000, "MIN_AREAMI": 120.000000, "MAX_AREAMI": 126.000000, "MIN_PERKM": 186.000000, "MAX_PERKM": 210.000000, "MIN_PERMI": 115.000000, "MAX_PERMI": 130.000000, "MIN_BBXMIN": 30.908333, "MAX_BBXMIN": 30.908333, "MIN_BBXMAX": 31.175000, "MAX_BBXMAX": 31.191667, "MIN_BBYMIN": -17.925000, "MAX_BBYMIN": -17.925000, "MIN_BBYMAX": -17.725000, "MAX_BBYMAX": -17.725000, "MEAN_BBXC": 31.045288, "MEAN_BBYC": -17.832399, "COMPARE": 0, "GN_ASCII": "Harare", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 1542813.000000, "ELEVATION": 0.000000, "GTOPO30": 1481.000000, "TIMEZONE": "Africa\/Harare", "GEONAMESNO": "GeoNames match general.", "UN_FID": 462, "UN_ADM0": "Zimbabwe", "UN_LAT": -17.820000, "UN_LONG": 31.020000, "POP1950": 143.000000, "POP1955": 192.000000, "POP1960": 248.000000, "POP1965": 319.000000, "POP1970": 417.000000, "POP1975": 532.000000, "POP1980": 616.000000, "POP1985": 778.000000, "POP1990": 1047.000000, "POP1995": 1255.000000, "POP2000": 1379.000000, "POP2005": 1515.000000, "POP2010": 1572.000000, "POP2015": 1663.000000, "POP2020": 1839.000000, "POP2025": 2037.000000, "POP2050": 2247.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3455664.633658015169203, -2016004.600457515567541 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Dili", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dili", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "East Timor", "SOV_A3": "TLS", "ADM0NAME": "East Timor", "ADM0_A3": "TLS", "ADM1NAME": "Dili", "ISO_A2": "TL", "NOTE": null, "LATITUDE": -8.559388, "LONGITUDE": 125.579456, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 234331, "POP_MIN": 193563, "POP_OTHER": 55154, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 1645457.000000, "MEGANAME": null, "LS_NAME": "Dili", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 55154.000000, "MAX_POP20": 55154.000000, "MAX_POP50": 55154.000000, "MAX_POP300": 55154.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 27.000000, "MAX_AREAKM": 27.000000, "MIN_AREAMI": 10.000000, "MAX_AREAMI": 10.000000, "MIN_PERKM": 31.000000, "MAX_PERKM": 31.000000, "MIN_PERMI": 19.000000, "MAX_PERMI": 19.000000, "MIN_BBXMIN": 125.516667, "MAX_BBXMIN": 125.516667, "MIN_BBXMAX": 125.608333, "MAX_BBXMAX": 125.608333, "MIN_BBYMIN": -8.583333, "MAX_BBYMIN": -8.583333, "MIN_BBYMAX": -8.541667, "MAX_BBYMAX": -8.541667, "MEAN_BBXC": 125.565104, "MEAN_BBYC": -8.559115, "COMPARE": 0, "GN_ASCII": "Dili", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 150000.000000, "ELEVATION": 0.000000, "GTOPO30": 9.000000, "TIMEZONE": "Asia\/Dili", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13979441.088413750752807, -956390.736671779421158 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port Vila", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port-Vila", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Vanuatu", "SOV_A3": "VUT", "ADM0NAME": "Vanuatu", "ADM0_A3": "VUT", "ADM1NAME": "Shefa", "ISO_A2": "VU", "NOTE": null, "LATITUDE": -17.733350, "LONGITUDE": 168.316641, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 44040, "POP_MIN": 35901, "POP_OTHER": 7702, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2135171.000000, "MEGANAME": null, "LS_NAME": "Port-Vila", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 7702.000000, "MAX_POP20": 7702.000000, "MAX_POP50": 7702.000000, "MAX_POP300": 7702.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 7.000000, "MAX_AREAKM": 7.000000, "MIN_AREAMI": 3.000000, "MAX_AREAMI": 3.000000, "MIN_PERKM": 16.000000, "MAX_PERKM": 16.000000, "MIN_PERMI": 10.000000, "MAX_PERMI": 10.000000, "MIN_BBXMIN": 168.300000, "MAX_BBXMIN": 168.300000, "MIN_BBXMAX": 168.325000, "MAX_BBXMAX": 168.325000, "MIN_BBYMIN": -17.758333, "MAX_BBYMIN": -17.758333, "MIN_BBYMAX": -17.708333, "MAX_BBYMAX": -17.708333, "MEAN_BBXC": 168.312500, "MEAN_BBYC": -17.728125, "COMPARE": 0, "GN_ASCII": "Port-Vila", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 35901.000000, "ELEVATION": 0.000000, "GTOPO30": 7.000000, "TIMEZONE": "Pacific\/Efate", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 18736922.721797306090593, -2006361.140518263913691 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Tegucigalpa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tegucigalpa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Honduras", "SOV_A3": "HND", "ADM0NAME": "Honduras", "ADM0_A3": "HND", "ADM1NAME": "Francisco Morazán", "ISO_A2": "HN", "NOTE": null, "LATITUDE": 14.102045, "LONGITUDE": -87.217529, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 946000, "POP_MIN": 850848, "POP_OTHER": 1014546, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3600949.000000, "MEGANAME": "Tegucigalpa", "LS_NAME": "Tegucigalpa", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1014546.000000, "MAX_POP20": 1014546.000000, "MAX_POP50": 1014546.000000, "MAX_POP300": 1014546.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 97.000000, "MAX_AREAKM": 97.000000, "MIN_AREAMI": 37.000000, "MAX_AREAMI": 37.000000, "MIN_PERKM": 66.000000, "MAX_PERKM": 66.000000, "MIN_PERMI": 41.000000, "MAX_PERMI": 41.000000, "MIN_BBXMIN": -87.266667, "MAX_BBXMIN": -87.266667, "MIN_BBXMAX": -87.141667, "MAX_BBXMAX": -87.141667, "MIN_BBYMIN": 14.033333, "MAX_BBYMIN": 14.033333, "MIN_BBYMAX": 14.133333, "MAX_BBYMAX": 14.133333, "MEAN_BBXC": -87.199110, "MEAN_BBYC": 14.083298, "COMPARE": 0, "GN_ASCII": "Tegucigalpa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 850848.000000, "ELEVATION": 0.000000, "GTOPO30": 997.000000, "TIMEZONE": "America\/Tegucigalpa", "GEONAMESNO": "GeoNames match general.", "UN_FID": 209, "UN_ADM0": "Honduras", "UN_LAT": 14.090000, "UN_LONG": -87.200000, "POP1950": 73.000000, "POP1955": 96.000000, "POP1960": 128.000000, "POP1965": 169.000000, "POP1970": 223.000000, "POP1975": 292.000000, "POP1980": 371.000000, "POP1985": 471.000000, "POP1990": 578.000000, "POP1995": 677.000000, "POP2000": 793.000000, "POP2005": 901.000000, "POP2010": 946.000000, "POP2015": 1022.000000, "POP2020": 1165.000000, "POP2025": 1317.000000, "POP2050": 1472.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9709227.566291403025389, 1586149.842771453550085 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Georgetown", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Georgetown", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Guyana", "SOV_A3": "GUY", "ADM0NAME": "Guyana", "ADM0_A3": "GUY", "ADM1NAME": "East Berbice-Corentyne", "ISO_A2": "GY", "NOTE": null, "LATITUDE": 6.801974, "LONGITUDE": -58.167029, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 264350, "POP_MIN": 235017, "POP_OTHER": 264350, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3378644.000000, "MEGANAME": null, "LS_NAME": "Georgetown1", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 264350.000000, "MAX_POP20": 264350.000000, "MAX_POP50": 264350.000000, "MAX_POP300": 264350.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 37.000000, "MAX_AREAKM": 37.000000, "MIN_AREAMI": 14.000000, "MAX_AREAMI": 14.000000, "MIN_PERKM": 44.000000, "MAX_PERKM": 44.000000, "MIN_PERMI": 27.000000, "MAX_PERMI": 27.000000, "MIN_BBXMIN": -58.200000, "MAX_BBXMIN": -58.200000, "MIN_BBXMAX": -58.116667, "MAX_BBXMAX": -58.116667, "MIN_BBYMIN": 6.750000, "MAX_BBYMIN": 6.750000, "MIN_BBYMAX": 6.833333, "MAX_BBYMAX": 6.833333, "MEAN_BBXC": -58.153788, "MEAN_BBYC": 6.797348, "COMPARE": 0, "GN_ASCII": "Georgetown", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 235017.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "America\/Guyana", "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6475124.009995299391448, 758977.14553861238528 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Reykjavík", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 1, "NAMEASCII": "Reykjavik", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Iceland", "SOV_A3": "ISL", "ADM0NAME": "Iceland", "ADM0_A3": "ISL", "ADM1NAME": "Suðurnes", "ISO_A2": "IS", "NOTE": null, "LATITUDE": 64.150024, "LONGITUDE": -21.950014, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 166212, "POP_MIN": 113906, "POP_OTHER": 160116, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 3413829.000000, "MEGANAME": null, "LS_NAME": "Reykjavik", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 166212.000000, "MAX_POP20": 166212.000000, "MAX_POP50": 166212.000000, "MAX_POP300": 166212.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 75.000000, "MAX_AREAKM": 75.000000, "MIN_AREAMI": 29.000000, "MAX_AREAMI": 29.000000, "MIN_PERKM": 119.000000, "MAX_PERKM": 119.000000, "MIN_PERMI": 74.000000, "MAX_PERMI": 74.000000, "MIN_BBXMIN": -22.008333, "MAX_BBXMIN": -22.008333, "MIN_BBXMAX": -21.750000, "MAX_BBXMAX": -21.750000, "MIN_BBYMIN": 64.050000, "MAX_BBYMIN": 64.050000, "MIN_BBYMAX": 64.166667, "MAX_BBYMAX": 64.166667, "MEAN_BBXC": -21.882500, "MEAN_BBYC": 64.116125, "COMPARE": 0, "GN_ASCII": "Reykjavik", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 39.000000, "GN_POP": 113906.000000, "ELEVATION": 0.000000, "GTOPO30": 16.000000, "TIMEZONE": "Atlantic\/Reykjavik", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -2443464.435617804527283, 9387963.6817487180233 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port-au-Prince", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port-au-Prince", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Haiti", "SOV_A3": "HTI", "ADM0NAME": "Haiti", "ADM0_A3": "HTI", "ADM1NAME": "Ouest", "ISO_A2": "HT", "NOTE": null, "LATITUDE": 18.541025, "LONGITUDE": -72.336035, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1998000, "POP_MIN": 1234742, "POP_OTHER": 2385397, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3718426.000000, "MEGANAME": "Port-au-Prince", "LS_NAME": "Port-au-Prince", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2445384.000000, "MAX_POP20": 2445384.000000, "MAX_POP50": 2445384.000000, "MAX_POP300": 2445384.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 374.000000, "MAX_AREAKM": 374.000000, "MIN_AREAMI": 144.000000, "MAX_AREAMI": 144.000000, "MIN_PERKM": 287.000000, "MAX_PERKM": 287.000000, "MIN_PERMI": 179.000000, "MAX_PERMI": 179.000000, "MIN_BBXMIN": -72.441667, "MAX_BBXMIN": -72.441667, "MIN_BBXMAX": -72.033333, "MAX_BBXMAX": -72.033333, "MIN_BBYMIN": 18.491667, "MAX_BBYMIN": 18.491667, "MIN_BBYMAX": 18.666667, "MAX_BBYMAX": 18.666667, "MEAN_BBXC": -72.222424, "MEAN_BBYC": 18.569460, "COMPARE": 0, "GN_ASCII": "Port-au-Prince", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1234742.000000, "ELEVATION": 0.000000, "GTOPO30": 65.000000, "TIMEZONE": "America\/Port-au-Prince", "GEONAMESNO": "GeoNames match general.", "UN_FID": 208, "UN_ADM0": "Haiti", "UN_LAT": 18.520000, "UN_LONG": -72.340000, "POP1950": 133.000000, "POP1955": 182.000000, "POP1960": 247.000000, "POP1965": 337.000000, "POP1970": 460.000000, "POP1975": 575.000000, "POP1980": 701.000000, "POP1985": 881.000000, "POP1990": 1134.000000, "POP1995": 1427.000000, "POP2000": 1653.000000, "POP2005": 1885.000000, "POP2010": 1998.000000, "POP2015": 2209.000000, "POP2020": 2621.000000, "POP2025": 3012.000000, "POP2050": 3346.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8052627.148363305255771, 2101201.282250009477139 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Kampala", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kampala", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Uganda", "SOV_A3": "UGA", "ADM0NAME": "Uganda", "ADM0_A3": "UGA", "ADM1NAME": "Kampala", "ISO_A2": "UG", "NOTE": null, "LATITUDE": 0.316659, "LONGITUDE": 32.583324, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1420000, "POP_MIN": 1353189, "POP_OTHER": 2153702, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 232422.000000, "MEGANAME": "Kampala", "LS_NAME": "Kampala", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2155592.000000, "MAX_POP20": 2153391.000000, "MAX_POP50": 2322955.000000, "MAX_POP300": 2322955.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 405.000000, "MAX_AREAKM": 465.000000, "MIN_AREAMI": 156.000000, "MAX_AREAMI": 180.000000, "MIN_PERKM": 391.000000, "MAX_PERKM": 470.000000, "MIN_PERMI": 243.000000, "MAX_PERMI": 292.000000, "MIN_BBXMIN": 32.450000, "MAX_BBXMIN": 32.500000, "MIN_BBXMAX": 32.800000, "MAX_BBXMAX": 32.800000, "MIN_BBYMIN": 0.033333, "MAX_BBYMIN": 0.166719, "MIN_BBYMAX": 0.475000, "MAX_BBYMAX": 0.475000, "MEAN_BBXC": 32.614686, "MEAN_BBYC": 0.323809, "COMPARE": 0, "GN_ASCII": "Kampala", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 18.000000, "GN_POP": 1353189.000000, "ELEVATION": 0.000000, "GTOPO30": 1206.000000, "TIMEZONE": "Africa\/Kampala", "GEONAMESNO": "GeoNames match general.", "UN_FID": 507, "UN_ADM0": "Uganda", "UN_LAT": 0.320000, "UN_LONG": 32.570000, "POP1950": 95.000000, "POP1955": 110.000000, "POP1960": 137.000000, "POP1965": 222.000000, "POP1970": 340.000000, "POP1975": 398.000000, "POP1980": 469.000000, "POP1985": 595.000000, "POP1990": 755.000000, "POP1995": 912.000000, "POP2000": 1097.000000, "POP2005": 1318.000000, "POP2010": 1420.000000, "POP2015": 1597.000000, "POP2020": 1979.000000, "POP2025": 2506.000000, "POP2050": 3198.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3626942.371247250586748, 35467.108372801711084 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Paramaribo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Paramaribo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Suriname", "SOV_A3": "SUR", "ADM0NAME": "Suriname", "ADM0_A3": "SUR", "ADM1NAME": "Paramaribo", "ISO_A2": "SR", "NOTE": null, "LATITUDE": 5.835030, "LONGITUDE": -55.167031, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 254169, "POP_MIN": 223757, "POP_OTHER": 248161, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3383330.000000, "MEGANAME": null, "LS_NAME": "Paramaribo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 254169.000000, "MAX_POP20": 254169.000000, "MAX_POP50": 254169.000000, "MAX_POP300": 254169.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 104.000000, "MAX_AREAKM": 105.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 83.000000, "MAX_PERKM": 85.000000, "MIN_PERMI": 51.000000, "MAX_PERMI": 53.000000, "MIN_BBXMIN": -55.283333, "MAX_BBXMIN": -55.283333, "MIN_BBXMAX": -55.107566, "MAX_BBXMAX": -55.100000, "MIN_BBYMIN": 5.766667, "MAX_BBYMIN": 5.766667, "MIN_BBYMAX": 5.866667, "MAX_BBYMAX": 5.866667, "MEAN_BBXC": -55.188737, "MEAN_BBYC": 5.826428, "COMPARE": 0, "GN_ASCII": "Paramaribo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 16.000000, "GN_POP": 223757.000000, "ELEVATION": 0.000000, "GTOPO30": 3.000000, "TIMEZONE": "America\/Paramaribo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6141165.786742237396538, 650678.307050795876421 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Niamey", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Niamey", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Niger", "SOV_A3": "NER", "ADM0NAME": "Niger", "ADM0_A3": "NER", "ADM1NAME": "Niamey", "ISO_A2": "NE", "NOTE": null, "LATITUDE": 13.516706, "LONGITUDE": 2.116656, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 915000, "POP_MIN": 742791, "POP_OTHER": 715325, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2440485.000000, "MEGANAME": "Niamey", "LS_NAME": "Niamey", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 742791.000000, "MAX_POP20": 742791.000000, "MAX_POP50": 742791.000000, "MAX_POP300": 742791.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 122.000000, "MAX_AREAKM": 122.000000, "MIN_AREAMI": 47.000000, "MAX_AREAMI": 47.000000, "MIN_PERKM": 102.000000, "MAX_PERKM": 102.000000, "MIN_PERMI": 64.000000, "MAX_PERMI": 64.000000, "MIN_BBXMIN": 2.033333, "MAX_BBXMIN": 2.033333, "MIN_BBXMAX": 2.216667, "MAX_BBXMAX": 2.216667, "MIN_BBYMIN": 13.466667, "MAX_BBYMIN": 13.466667, "MIN_BBYMAX": 13.600000, "MAX_BBYMAX": 13.600000, "MEAN_BBXC": 2.125595, "MEAN_BBYC": 13.522591, "COMPARE": 0, "GN_ASCII": "Niamey", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 774235.000000, "ELEVATION": 0.000000, "GTOPO30": 203.000000, "TIMEZONE": "Africa\/Niamey", "GEONAMESNO": "GeoNames match general.", "UN_FID": 385, "UN_ADM0": "Niger", "UN_LAT": 13.510000, "UN_LONG": 2.120000, "POP1950": 24.000000, "POP1955": 37.000000, "POP1960": 58.000000, "POP1965": 85.000000, "POP1970": 129.000000, "POP1975": 198.000000, "POP1980": 274.000000, "POP1985": 344.000000, "POP1990": 432.000000, "POP1995": 542.000000, "POP2000": 680.000000, "POP2005": 846.000000, "POP2010": 915.000000, "POP2015": 1027.000000, "POP2020": 1258.000000, "POP2025": 1580.000000, "POP2050": 2028.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 235408.461139908904443, 1519049.837621010141447 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Dushanbe", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dushanbe", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Tajikistan", "SOV_A3": "TJK", "ADM0NAME": "Tajikistan", "ADM0_A3": "TJK", "ADM1NAME": "Tadzhikistan Territories", "ISO_A2": "TJ", "NOTE": null, "LATITUDE": 38.560035, "LONGITUDE": 68.773879, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1086244, "POP_MIN": 679400, "POP_OTHER": 1081361, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 1221874.000000, "MEGANAME": null, "LS_NAME": "Dushanbe", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1086244.000000, "MAX_POP20": 1086244.000000, "MAX_POP50": 1086244.000000, "MAX_POP300": 1086244.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 415.000000, "MAX_AREAKM": 415.000000, "MIN_AREAMI": 160.000000, "MAX_AREAMI": 160.000000, "MIN_PERKM": 411.000000, "MAX_PERKM": 411.000000, "MIN_PERMI": 255.000000, "MAX_PERMI": 255.000000, "MIN_BBXMIN": 68.641667, "MAX_BBXMIN": 68.641667, "MIN_BBXMAX": 69.150000, "MAX_BBXMAX": 69.150000, "MIN_BBYMIN": 38.416667, "MAX_BBYMIN": 38.416667, "MIN_BBYMAX": 38.675000, "MAX_BBYMAX": 38.675000, "MEAN_BBXC": 68.864837, "MEAN_BBYC": 38.542754, "COMPARE": 0, "GN_ASCII": "Dushanbe", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 543107.000000, "ELEVATION": 0.000000, "GTOPO30": 808.000000, "TIMEZONE": "Asia\/Dushanbe", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 7655873.229420786723495, 4658844.908380904234946 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Asuncion", "NAMEPAR": null, "NAMEALT": "Asunción", "DIFFASCII": 0, "NAMEASCII": "Asuncion", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Paraguay", "SOV_A3": "PRY", "ADM0NAME": "Paraguay", "ADM0_A3": "PRY", "ADM1NAME": "Asunción", "ISO_A2": "PY", "NOTE": null, "LATITUDE": -25.296403, "LONGITUDE": -57.641505, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1870000, "POP_MIN": 11693, "POP_OTHER": 636771, "RANK_MAX": 12, "RANK_MIN": 6, "GEONAMEID": 1730025.000000, "MEGANAME": "Asunción", "LS_NAME": "Asuncion", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 745924.000000, "MAX_POP20": 1829910.000000, "MAX_POP50": 2141255.000000, "MAX_POP300": 2141255.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 105.000000, "MAX_AREAKM": 651.000000, "MIN_AREAMI": 41.000000, "MAX_AREAMI": 251.000000, "MIN_PERKM": 63.000000, "MAX_PERKM": 331.000000, "MIN_PERMI": 39.000000, "MAX_PERMI": 206.000000, "MIN_BBXMIN": -57.675000, "MAX_BBXMIN": -57.675000, "MIN_BBXMAX": -57.543999, "MAX_BBXMAX": -57.316667, "MIN_BBYMIN": -25.491667, "MAX_BBYMIN": -25.391667, "MIN_BBYMAX": -25.208333, "MAX_BBYMAX": -25.100000, "MEAN_BBXC": -57.535385, "MEAN_BBYC": -25.307462, "COMPARE": 0, "GN_ASCII": "Asuncion", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 24.000000, "GN_POP": 11693.000000, "ELEVATION": 0.000000, "GTOPO30": 24.000000, "TIMEZONE": "Asia\/Manila", "GEONAMESNO": "GeoNames match general.", "UN_FID": 409, "UN_ADM0": "Paraguay", "UN_LAT": -25.300000, "UN_LONG": -57.620000, "POP1950": 258.000000, "POP1955": 314.000000, "POP1960": 382.000000, "POP1965": 461.000000, "POP1970": 552.000000, "POP1975": 654.000000, "POP1980": 770.000000, "POP1985": 914.000000, "POP1990": 1091.000000, "POP1995": 1287.000000, "POP2000": 1507.000000, "POP2005": 1762.000000, "POP2010": 1870.000000, "POP2015": 2030.000000, "POP2020": 2277.000000, "POP2025": 2506.000000, "POP2050": 2715.000000, "CITYALT": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -6416839.615992981009185, -2911955.612619844730943 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Managua", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Managua", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Nicaragua", "SOV_A3": "NIC", "ADM0NAME": "Nicaragua", "ADM0_A3": "NIC", "ADM1NAME": "Managua", "ISO_A2": "NI", "NOTE": null, "LATITUDE": 12.153017, "LONGITUDE": -86.268492, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 920000, "POP_MIN": 920000, "POP_OTHER": 1088194, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3617763.000000, "MEGANAME": "Managua", "LS_NAME": "Managua", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1105973.000000, "MAX_POP20": 1105973.000000, "MAX_POP50": 1105973.000000, "MAX_POP300": 1105973.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 131.000000, "MAX_AREAKM": 131.000000, "MIN_AREAMI": 51.000000, "MAX_AREAMI": 51.000000, "MIN_PERKM": 97.000000, "MAX_PERKM": 97.000000, "MIN_PERMI": 60.000000, "MAX_PERMI": 60.000000, "MIN_BBXMIN": -86.383333, "MAX_BBXMIN": -86.383333, "MIN_BBXMAX": -86.158333, "MAX_BBXMAX": -86.158333, "MIN_BBYMIN": 12.075000, "MAX_BBYMIN": 12.075000, "MIN_BBYMAX": 12.175000, "MAX_BBYMAX": 12.175000, "MEAN_BBXC": -86.263402, "MEAN_BBYC": 12.133360, "COMPARE": 0, "GN_ASCII": "Managua", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 973087.000000, "ELEVATION": 0.000000, "GTOPO30": 59.000000, "TIMEZONE": "America\/Managua", "GEONAMESNO": "GeoNames match general.", "UN_FID": 382, "UN_ADM0": "Nicaragua", "UN_LAT": 12.150000, "UN_LONG": -86.270000, "POP1950": 110.000000, "POP1955": 148.000000, "POP1960": 199.000000, "POP1965": 269.000000, "POP1970": 366.000000, "POP1975": 443.000000, "POP1980": 525.000000, "POP1985": 621.000000, "POP1990": 735.000000, "POP1995": 865.000000, "POP2000": 887.000000, "POP2005": 909.000000, "POP2010": 920.000000, "POP2015": 944.000000, "POP2020": 1015.000000, "POP2025": 1104.000000, "POP2050": 1193.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9603581.175117006525397, 1363349.223720661364496 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Freetown", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Freetown", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Sierra Leone", "SOV_A3": "SLE", "ADM0NAME": "Sierra Leone", "ADM0_A3": "SLE", "ADM1NAME": "Western", "ISO_A2": "SL", "NOTE": null, "LATITUDE": 8.470011, "LONGITUDE": -13.234216, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 827000, "POP_MIN": 13768, "POP_OTHER": 1074640, "RANK_MAX": 11, "RANK_MIN": 6, "GEONAMEID": 2408770.000000, "MEGANAME": "Freetown", "LS_NAME": "Freetown", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1074311.000000, "MAX_POP20": 1074311.000000, "MAX_POP50": 1074311.000000, "MAX_POP300": 1074311.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 77.000000, "MAX_AREAKM": 77.000000, "MIN_AREAMI": 30.000000, "MAX_AREAMI": 30.000000, "MIN_PERKM": 81.000000, "MAX_PERKM": 81.000000, "MIN_PERMI": 50.000000, "MAX_PERMI": 50.000000, "MIN_BBXMIN": -13.300000, "MAX_BBXMIN": -13.300000, "MIN_BBXMAX": -13.150000, "MAX_BBXMAX": -13.150000, "MIN_BBYMIN": 8.408333, "MAX_BBYMIN": 8.408333, "MIN_BBYMAX": 8.500000, "MAX_BBYMAX": 8.500000, "MEAN_BBXC": -13.230082, "MEAN_BBYC": 8.462592, "COMPARE": 0, "GN_ASCII": "Freetown", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 4.000000, "GN_POP": 13768.000000, "ELEVATION": 0.000000, "GTOPO30": 15.000000, "TIMEZONE": "Africa\/Freetown", "GEONAMESNO": "GeoNames match general.", "UN_FID": 449, "UN_ADM0": "Sierra Leone", "UN_LAT": 8.480000, "UN_LONG": -13.230000, "POP1950": 92.000000, "POP1955": 104.000000, "POP1960": 119.000000, "POP1965": 148.000000, "POP1970": 206.000000, "POP1975": 284.000000, "POP1980": 361.000000, "POP1985": 460.000000, "POP1990": 529.000000, "POP1995": 603.000000, "POP2000": 688.000000, "POP2005": 785.000000, "POP2010": 827.000000, "POP2015": 894.000000, "POP2020": 1029.000000, "POP2025": 1200.000000, "POP2050": 1406.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1473442.769259580411017, 946549.449675023555756 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Islamabad", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Islamabad", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Pakistan", "SOV_A3": "PAK", "ADM0NAME": "Pakistan", "ADM0_A3": "PAK", "ADM1NAME": "F.C.T.", "ISO_A2": "PK", "NOTE": null, "LATITUDE": 33.699996, "LONGITUDE": 73.166634, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 780000, "POP_MIN": 601600, "POP_OTHER": 893673, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 1176615.000000, "MEGANAME": "Islamabad", "LS_NAME": "Islamabad", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 742356.000000, "MAX_POP20": 742356.000000, "MAX_POP50": 7482035.000000, "MAX_POP300": 7482969.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 772.000000, "MAX_AREAKM": 5463.000000, "MIN_AREAMI": 298.000000, "MAX_AREAMI": 2109.000000, "MIN_PERKM": 545.000000, "MAX_PERKM": 4154.000000, "MIN_PERMI": 339.000000, "MAX_PERMI": 2581.000000, "MIN_BBXMIN": 72.286464, "MAX_BBXMIN": 73.033333, "MIN_BBXMAX": 73.516667, "MAX_BBXMAX": 73.816667, "MIN_BBYMIN": 32.700000, "MAX_BBYMIN": 33.258333, "MIN_BBYMAX": 33.766667, "MAX_BBYMAX": 34.533333, "MEAN_BBXC": 73.182617, "MEAN_BBYC": 33.557939, "COMPARE": 0, "GN_ASCII": "Islamabad", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 601600.000000, "ELEVATION": 0.000000, "GTOPO30": 497.000000, "TIMEZONE": "Asia\/Karachi", "GEONAMESNO": "GeoNames match general.", "UN_FID": 401, "UN_ADM0": "Pakistan", "UN_LAT": 33.710000, "UN_LONG": 73.060000, "POP1950": 36.000000, "POP1955": 41.000000, "POP1960": 45.000000, "POP1965": 56.000000, "POP1970": 70.000000, "POP1975": 107.000000, "POP1980": 189.000000, "POP1985": 260.000000, "POP1990": 343.000000, "POP1995": 452.000000, "POP2000": 594.000000, "POP2005": 732.000000, "POP2010": 780.000000, "POP2015": 851.000000, "POP2020": 988.000000, "POP2025": 1148.000000, "POP2050": 1320.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8144655.881344769150019, 3988849.965398874599487 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Kathmandu", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kathmandu", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Nepal", "SOV_A3": "NPL", "ADM0NAME": "Nepal", "ADM0_A3": "NPL", "ADM1NAME": "Bhaktapur", "ISO_A2": "NP", "NOTE": null, "LATITUDE": 27.716692, "LONGITUDE": 85.316642, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 895000, "POP_MIN": 895000, "POP_OTHER": 1099610, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 1283240.000000, "MEGANAME": "Kathmandu", "LS_NAME": "Kathmandu", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1154222.000000, "MAX_POP20": 2297630.000000, "MAX_POP50": 2297630.000000, "MAX_POP300": 2297630.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 233.000000, "MAX_AREAKM": 580.000000, "MIN_AREAMI": 90.000000, "MAX_AREAMI": 224.000000, "MIN_PERKM": 228.000000, "MAX_PERKM": 511.000000, "MIN_PERMI": 142.000000, "MAX_PERMI": 318.000000, "MIN_BBXMIN": 85.108333, "MAX_BBXMIN": 85.108333, "MIN_BBXMAX": 85.450066, "MAX_BBXMAX": 85.675000, "MIN_BBYMIN": 27.541667, "MAX_BBYMIN": 27.669456, "MIN_BBYMAX": 27.850000, "MAX_BBYMAX": 27.850000, "MEAN_BBXC": 85.356097, "MEAN_BBYC": 27.697735, "COMPARE": 0, "GN_ASCII": "Kathmandu", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1442271.000000, "ELEVATION": 1317.000000, "GTOPO30": 1304.000000, "TIMEZONE": "Asia\/Kathmandu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 378, "UN_ADM0": "Nepal", "UN_LAT": 27.710000, "UN_LONG": 85.310000, "POP1950": 104.000000, "POP1955": 110.000000, "POP1960": 119.000000, "POP1965": 132.000000, "POP1970": 147.000000, "POP1975": 180.000000, "POP1980": 225.000000, "POP1985": 297.000000, "POP1990": 398.000000, "POP1995": 509.000000, "POP2000": 644.000000, "POP2005": 815.000000, "POP2010": 895.000000, "POP2015": 1029.000000, "POP2020": 1284.000000, "POP2025": 1578.000000, "POP2050": 1907.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 9497188.555112762376666, 3213546.53896749438718 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Bloemfontein", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bloemfontein", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Judicial capita", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "South Africa", "SOV_A3": "ZAF", "ADM0NAME": "South Africa", "ADM0_A3": "ZAF", "ADM1NAME": "Orange Free State", "ISO_A2": "ZA", "NOTE": null, "LATITUDE": -29.119994, "LONGITUDE": 26.229913, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 463064, "POP_MIN": 456669, "POP_OTHER": 456513, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 1018725.000000, "MEGANAME": null, "LS_NAME": "Bloemfontein", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 456669.000000, "MAX_POP20": 456669.000000, "MAX_POP50": 456669.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 105.000000, "MAX_AREAKM": 105.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 78.000000, "MAX_PERKM": 78.000000, "MIN_PERMI": 48.000000, "MAX_PERMI": 48.000000, "MIN_BBXMIN": 26.166667, "MAX_BBXMIN": 26.166667, "MIN_BBXMAX": 26.300000, "MAX_BBXMAX": 26.300000, "MIN_BBYMIN": -29.200000, "MAX_BBYMIN": -29.200000, "MIN_BBYMAX": -29.058333, "MAX_BBYMAX": -29.058333, "MEAN_BBXC": 26.225714, "MEAN_BBYC": -29.128155, "COMPARE": 0, "GN_ASCII": "Bloemfontein", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 3.000000, "GN_POP": 463064.000000, "ELEVATION": 0.000000, "GTOPO30": 1398.000000, "TIMEZONE": "Africa\/Johannesburg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2919900.545484591275454, -3390927.449620628263801 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Pretoria", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Pretoria", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Administrative", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "South Africa", "SOV_A3": "ZAF", "ADM0NAME": "South Africa", "ADM0_A3": "ZAF", "ADM1NAME": "Gauteng", "ISO_A2": "ZA", "NOTE": null, "LATITUDE": -25.706921, "LONGITUDE": 28.229429, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1338000, "POP_MIN": 1338000, "POP_OTHER": 1443084, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 964137.000000, "MEGANAME": "Pretoria", "LS_NAME": "Pretoria", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1444949.000000, "MAX_POP20": 1444949.000000, "MAX_POP50": 1444949.000000, "MAX_POP300": 1444949.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 502.000000, "MAX_AREAKM": 502.000000, "MIN_AREAMI": 194.000000, "MAX_AREAMI": 194.000000, "MIN_PERKM": 256.000000, "MAX_PERKM": 256.000000, "MIN_PERMI": 159.000000, "MAX_PERMI": 159.000000, "MIN_BBXMIN": 28.041667, "MAX_BBXMIN": 28.041667, "MIN_BBXMAX": 28.400000, "MAX_BBXMAX": 28.400000, "MIN_BBYMIN": -25.891667, "MAX_BBYMIN": -25.891667, "MIN_BBYMAX": -25.641667, "MAX_BBYMAX": -25.641667, "MEAN_BBXC": 28.214676, "MEAN_BBYC": -25.755716, "COMPARE": 0, "GN_ASCII": "Pretoria", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 6.000000, "GN_POP": 1619438.000000, "ELEVATION": 0.000000, "GTOPO30": 1282.000000, "TIMEZONE": "Africa\/Johannesburg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 460, "UN_ADM0": "South Africa", "UN_LAT": -25.730000, "UN_LONG": 28.210000, "POP1950": 275.000000, "POP1955": 340.000000, "POP1960": 419.000000, "POP1965": 488.000000, "POP1970": 565.000000, "POP1975": 624.000000, "POP1980": 688.000000, "POP1985": 763.000000, "POP1990": 911.000000, "POP1995": 951.000000, "POP2000": 1084.000000, "POP2005": 1273.000000, "POP2010": 1338.000000, "POP2015": 1409.000000, "POP2020": 1482.000000, "POP2025": 1544.000000, "POP2050": 1604.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3142269.058118146844208, -2962586.442413057666272 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port Moresby", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port Moresby", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Central", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -9.464708, "LONGITUDE": 147.192504, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 283733, "POP_MIN": 251136, "POP_OTHER": 251304, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2088122.000000, "MEGANAME": null, "LS_NAME": "Port Moresby", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 251136.000000, "MAX_POP20": 251136.000000, "MAX_POP50": 251136.000000, "MAX_POP300": 251136.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 89.000000, "MAX_AREAKM": 89.000000, "MIN_AREAMI": 35.000000, "MAX_AREAMI": 35.000000, "MIN_PERKM": 92.000000, "MAX_PERKM": 92.000000, "MIN_PERMI": 57.000000, "MAX_PERMI": 57.000000, "MIN_BBXMIN": 147.141667, "MAX_BBXMIN": 147.141667, "MIN_BBXMAX": 147.241667, "MAX_BBXMAX": 147.241667, "MIN_BBYMIN": -9.508333, "MAX_BBYMIN": -9.508333, "MIN_BBYMAX": -9.358333, "MAX_BBYMAX": -9.358333, "MEAN_BBXC": 147.185377, "MEAN_BBYC": -9.433491, "COMPARE": 0, "GN_ASCII": "Port Moresby", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 20.000000, "GN_POP": 283733.000000, "ELEVATION": 0.000000, "GTOPO30": 50.000000, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 16385394.551631554961205, -1058431.180387732340023 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Honiara", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Honiara", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Solomon Islands", "SOV_A3": "SLB", "ADM0NAME": "Solomon Islands", "ADM0_A3": "SLB", "ADM1NAME": "Guadalcanal", "ISO_A2": "SB", "NOTE": null, "LATITUDE": -9.437994, "LONGITUDE": 159.949766, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 76328, "POP_MIN": 56298, "POP_OTHER": 76328, "RANK_MAX": 8, "RANK_MIN": 8, "GEONAMEID": 2108502.000000, "MEGANAME": null, "LS_NAME": "Honiara", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 76328.000000, "MAX_POP20": 76328.000000, "MAX_POP50": 76328.000000, "MAX_POP300": 76328.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 18.000000, "MAX_AREAKM": 18.000000, "MIN_AREAMI": 7.000000, "MAX_AREAMI": 7.000000, "MIN_PERKM": 33.000000, "MAX_PERKM": 33.000000, "MIN_PERMI": 21.000000, "MAX_PERMI": 21.000000, "MIN_BBXMIN": 159.916667, "MAX_BBXMIN": 159.916667, "MIN_BBXMAX": 160.016667, "MAX_BBXMAX": 160.016667, "MIN_BBYMIN": -9.441667, "MAX_BBYMIN": -9.441667, "MIN_BBYMAX": -9.408333, "MAX_BBYMAX": -9.408333, "MEAN_BBXC": 159.966865, "MEAN_BBYC": -9.429960, "COMPARE": 0, "GN_ASCII": "Honiara", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 56298.000000, "ELEVATION": 0.000000, "GTOPO30": 12.000000, "TIMEZONE": "Pacific\/Guadalcanal", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 17805526.473968386650085, -1055416.520874450681731 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Panama City", "NAMEPAR": null, "NAMEALT": "Ciudad de Panamá|Panama City|Panama", "DIFFASCII": 0, "NAMEASCII": "Panama City", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Panama", "SOV_A3": "PAN", "ADM0NAME": "Panama", "ADM0_A3": "PAN", "ADM1NAME": "Panama", "ISO_A2": "PA", "NOTE": null, "LATITUDE": 8.968017, "LONGITUDE": -79.533037, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1281000, "POP_MIN": 408168, "POP_OTHER": 939725, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": 3703443.000000, "MEGANAME": "Ciudad de Panamá (Panama City)", "LS_NAME": "Panama City1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 958016.000000, "MAX_POP20": 958016.000000, "MAX_POP50": 989053.000000, "MAX_POP300": 989053.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 141.000000, "MAX_AREAKM": 157.000000, "MIN_AREAMI": 54.000000, "MAX_AREAMI": 61.000000, "MIN_PERKM": 98.000000, "MAX_PERKM": 107.000000, "MIN_PERMI": 61.000000, "MAX_PERMI": 66.000000, "MIN_BBXMIN": -79.591667, "MAX_BBXMIN": -79.576315, "MIN_BBXMAX": -79.400000, "MAX_BBXMAX": -79.400000, "MIN_BBYMIN": 8.933333, "MAX_BBYMIN": 8.943752, "MIN_BBYMAX": 9.100000, "MAX_BBYMAX": 9.100000, "MEAN_BBXC": -79.494919, "MEAN_BBYC": 9.035936, "COMPARE": 0, "GN_ASCII": "Panama City", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 408168.000000, "ELEVATION": 0.000000, "GTOPO30": 2.000000, "TIMEZONE": "America\/Panama", "GEONAMESNO": "GeoNames match general.", "UN_FID": 408, "UN_ADM0": "Panama", "UN_LAT": 9.000000, "UN_LONG": -79.510000, "POP1950": 171.000000, "POP1955": 220.000000, "POP1960": 283.000000, "POP1965": 360.000000, "POP1970": 455.000000, "POP1975": 528.000000, "POP1980": 613.000000, "POP1985": 721.000000, "POP1990": 847.000000, "POP1995": 953.000000, "POP2000": 1072.000000, "POP2005": 1216.000000, "POP2010": 1281.000000, "POP2015": 1379.000000, "POP2020": 1527.000000, "POP2025": 1653.000000, "POP2050": 1759.000000, "CITYALT": "Panama" }, "geometry": { "type": "Point", "coordinates": [ -8853793.808970592916012, 1002635.825442812405527 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Rabat", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Rabat", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Morocco", "SOV_A3": "MAR", "ADM0NAME": "Morocco", "ADM0_A3": "MAR", "ADM1NAME": "Rabat - Salé - Zemmour - Zaer", "ISO_A2": "MA", "NOTE": null, "LATITUDE": 34.025299, "LONGITUDE": -6.836131, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1705000, "POP_MIN": 1655753, "POP_OTHER": 2029349, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2538475.000000, "MEGANAME": "Rabat", "LS_NAME": "Rabat", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2037124.000000, "MAX_POP20": 2037124.000000, "MAX_POP50": 2037124.000000, "MAX_POP300": 2037124.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 428.000000, "MAX_AREAKM": 428.000000, "MIN_AREAMI": 165.000000, "MAX_AREAMI": 165.000000, "MIN_PERKM": 475.000000, "MAX_PERKM": 475.000000, "MIN_PERMI": 295.000000, "MAX_PERMI": 295.000000, "MIN_BBXMIN": -7.116667, "MAX_BBXMIN": -7.116667, "MIN_BBXMAX": -6.725000, "MAX_BBXMAX": -6.725000, "MIN_BBYMIN": 33.741667, "MAX_BBYMIN": 33.741667, "MIN_BBYMAX": 34.125000, "MAX_BBYMAX": 34.125000, "MEAN_BBXC": -6.874910, "MEAN_BBYC": 33.912847, "COMPARE": 0, "GN_ASCII": "Rabat", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 49.000000, "GN_POP": 1655753.000000, "ELEVATION": 0.000000, "GTOPO30": 54.000000, "TIMEZONE": "Africa\/Casablanca", "GEONAMESNO": "GeoNames match general.", "UN_FID": 375, "UN_ADM0": "Morocco", "UN_LAT": 34.010000, "UN_LONG": -6.830000, "POP1950": 145.000000, "POP1955": 184.000000, "POP1960": 233.000000, "POP1965": 339.000000, "POP1970": 494.000000, "POP1975": 641.000000, "POP1980": 808.000000, "POP1985": 986.000000, "POP1990": 1174.000000, "POP1995": 1379.000000, "POP2000": 1507.000000, "POP2005": 1647.000000, "POP2010": 1705.000000, "POP2015": 1793.000000, "POP2020": 1938.000000, "POP2025": 2083.000000, "POP2050": 2222.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -761025.474794943002053, 4032200.686111582908779 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Chisinau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Chisinau", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Moldova", "SOV_A3": "MDA", "ADM0NAME": "Moldova", "ADM0_A3": "MDA", "ADM1NAME": "Chisinau", "ISO_A2": "MD", "NOTE": null, "LATITUDE": 47.005024, "LONGITUDE": 28.857711, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 688134, "POP_MIN": 635994, "POP_OTHER": 664472, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 618426.000000, "MEGANAME": null, "LS_NAME": "Chisinau", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 688134.000000, "MAX_POP20": 688134.000000, "MAX_POP50": 688134.000000, "MAX_POP300": 688134.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 109.000000, "MAX_AREAKM": 109.000000, "MIN_AREAMI": 42.000000, "MAX_AREAMI": 42.000000, "MIN_PERKM": 85.000000, "MAX_PERKM": 85.000000, "MIN_PERMI": 53.000000, "MAX_PERMI": 53.000000, "MIN_BBXMIN": 28.741667, "MAX_BBXMIN": 28.741667, "MIN_BBXMAX": 28.925000, "MAX_BBXMAX": 28.925000, "MIN_BBYMIN": 46.950000, "MAX_BBYMIN": 46.950000, "MIN_BBYMAX": 47.075000, "MAX_BBYMAX": 47.075000, "MEAN_BBXC": 28.840203, "MEAN_BBYC": 47.017185, "COMPARE": 0, "GN_ASCII": "Chisinau", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 57.000000, "GN_POP": 635994.000000, "ELEVATION": 0.000000, "GTOPO30": 52.000000, "TIMEZONE": "Europe\/Chisinau", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3212425.709525375626981, 5942894.093576508574188 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Maputo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Maputo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Mozambique", "SOV_A3": "MOZ", "ADM0NAME": "Mozambique", "ADM0_A3": "MOZ", "ADM1NAME": "Maputo", "ISO_A2": "MZ", "NOTE": null, "LATITUDE": -25.955277, "LONGITUDE": 32.589163, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1446000, "POP_MIN": 1191613, "POP_OTHER": 1365454, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1040652.000000, "MEGANAME": "Maputo", "LS_NAME": "Maputo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1369629.000000, "MAX_POP20": 1823845.000000, "MAX_POP50": 1822603.000000, "MAX_POP300": 1823845.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 187.000000, "MAX_AREAKM": 313.000000, "MIN_AREAMI": 72.000000, "MAX_AREAMI": 121.000000, "MIN_PERKM": 160.000000, "MAX_PERKM": 234.000000, "MIN_PERMI": 100.000000, "MAX_PERMI": 145.000000, "MIN_BBXMIN": 32.425000, "MAX_BBXMIN": 32.506986, "MIN_BBXMAX": 32.650000, "MAX_BBXMAX": 32.650000, "MIN_BBYMIN": -25.991667, "MAX_BBYMIN": -25.983333, "MIN_BBYMAX": -25.750000, "MAX_BBYMAX": -25.750000, "MEAN_BBXC": 32.543778, "MEAN_BBYC": -25.880831, "COMPARE": 0, "GN_ASCII": "Maputo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1191613.000000, "ELEVATION": 0.000000, "GTOPO30": 47.000000, "TIMEZONE": "Africa\/Maputo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 376, "UN_ADM0": "Mozambique", "UN_LAT": -25.960000, "UN_LONG": 32.570000, "POP1950": 92.000000, "POP1955": 129.000000, "POP1960": 181.000000, "POP1965": 259.000000, "POP1970": 371.000000, "POP1975": 456.000000, "POP1980": 550.000000, "POP1985": 653.000000, "POP1990": 776.000000, "POP1995": 921.000000, "POP2000": 1096.000000, "POP2005": 1334.000000, "POP2010": 1446.000000, "POP2015": 1621.000000, "POP2020": 1921.000000, "POP2025": 2235.000000, "POP2050": 2560.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3627592.41438380535692, -2993302.013058113399893 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Mogadishu", "NAMEPAR": null, "NAMEALT": "Muqdisho", "DIFFASCII": 0, "NAMEASCII": "Mogadishu", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Somalia", "SOV_A3": "SOM", "ADM0NAME": "Somalia", "ADM0_A3": "SOM", "ADM1NAME": "Banaadir", "ISO_A2": "SO", "NOTE": null, "LATITUDE": 2.066681, "LONGITUDE": 45.366678, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1100000, "POP_MIN": 875388, "POP_OTHER": 849392, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 53654.000000, "MEGANAME": "Muqdisho", "LS_NAME": "Mogadishu", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 875388.000000, "MAX_POP20": 875388.000000, "MAX_POP50": 875388.000000, "MAX_POP300": 875388.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 99.000000, "MAX_AREAKM": 99.000000, "MIN_AREAMI": 38.000000, "MAX_AREAMI": 38.000000, "MIN_PERKM": 68.000000, "MAX_PERKM": 68.000000, "MIN_PERMI": 43.000000, "MAX_PERMI": 43.000000, "MIN_BBXMIN": 45.250000, "MAX_BBXMIN": 45.250000, "MIN_BBXMAX": 45.416667, "MAX_BBXMAX": 45.416667, "MIN_BBYMIN": 2.000000, "MAX_BBYMIN": 2.000000, "MIN_BBYMAX": 2.116667, "MAX_BBYMAX": 2.116667, "MEAN_BBXC": 45.331178, "MEAN_BBYC": 2.054239, "COMPARE": 0, "GN_ASCII": "Mogadishu", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 2587183.000000, "ELEVATION": 0.000000, "GTOPO30": 39.000000, "TIMEZONE": "Africa\/Mogadishu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 454, "UN_ADM0": "Somalia", "UN_LAT": 2.040000, "UN_LONG": 45.340000, "POP1950": 69.000000, "POP1955": 73.000000, "POP1960": 94.000000, "POP1965": 146.000000, "POP1970": 272.000000, "POP1975": 445.000000, "POP1980": 551.000000, "POP1985": 747.000000, "POP1990": 1035.000000, "POP1995": 1147.000000, "POP2000": 1201.000000, "POP2005": 1415.000000, "POP2010": 1100.000000, "POP2015": 1500.000000, "POP2020": 1794.000000, "POP2025": 2142.000000, "POP2050": 2529.000000, "CITYALT": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 5049978.838657155632973, 230328.571019230934326 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Muscat", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Muscat", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Oman", "SOV_A3": "OMN", "ADM0NAME": "Oman", "ADM0_A3": "OMN", "ADM1NAME": "Muscat", "ISO_A2": "OM", "NOTE": null, "LATITUDE": 23.613325, "LONGITUDE": 58.593312, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 734697, "POP_MIN": 586861, "POP_OTHER": 586861, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 287286.000000, "MEGANAME": null, "LS_NAME": "Muscat", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 586861.000000, "MAX_POP20": 586861.000000, "MAX_POP50": 586861.000000, "MAX_POP300": 586861.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 104.000000, "MAX_AREAKM": 104.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 121.000000, "MAX_PERKM": 121.000000, "MIN_PERMI": 75.000000, "MAX_PERMI": 75.000000, "MIN_BBXMIN": 58.333333, "MAX_BBXMIN": 58.333333, "MIN_BBXMAX": 58.600000, "MAX_BBXMAX": 58.600000, "MIN_BBYMIN": 23.558333, "MAX_BBYMIN": 23.558333, "MIN_BBYMAX": 23.641667, "MAX_BBYMAX": 23.641667, "MEAN_BBXC": 58.474684, "MEAN_BBYC": 23.599306, "COMPARE": 0, "GN_ASCII": "Muscat", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 6.000000, "GN_POP": 797000.000000, "ELEVATION": 0.000000, "GTOPO30": 69.000000, "TIMEZONE": "Asia\/Muscat", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6522577.670493356883526, 2706360.344861418474466 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Colombo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Colombo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto, admin", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Sri Lanka", "SOV_A3": "LKA", "ADM0NAME": "Sri Lanka", "ADM0_A3": "LKA", "ADM1NAME": "Colombo", "ISO_A2": "LK", "NOTE": null, "LATITUDE": 6.931966, "LONGITUDE": 79.857751, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 217000, "POP_MIN": 217000, "POP_OTHER": 2490974, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3465927.000000, "MEGANAME": null, "LS_NAME": "Colombo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2664418.000000, "MAX_POP20": 2742979.000000, "MAX_POP50": 2742979.000000, "MAX_POP300": 9759831.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1054.000000, "MAX_AREAKM": 6238.000000, "MIN_AREAMI": 407.000000, "MAX_AREAMI": 2408.000000, "MIN_PERKM": 847.000000, "MAX_PERKM": 5343.000000, "MIN_PERMI": 526.000000, "MAX_PERMI": 3320.000000, "MIN_BBXMIN": 79.800000, "MAX_BBXMIN": 79.800000, "MIN_BBXMAX": 80.097553, "MAX_BBXMAX": 80.833333, "MIN_BBYMIN": 5.916667, "MAX_BBYMIN": 6.854447, "MIN_BBYMAX": 7.633333, "MAX_BBYMAX": 7.800000, "MEAN_BBXC": 79.996849, "MEAN_BBYC": 7.222799, "COMPARE": 0, "GN_ASCII": "Colombo", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 18.000000, "GN_POP": 217000.000000, "ELEVATION": 0.000000, "GTOPO30": 927.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8889724.133718660101295, 773552.355489372392185 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Ulaanbaatar", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ulaanbaatar", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Mongolia", "SOV_A3": "MNG", "ADM0NAME": "Mongolia", "ADM0_A3": "MNG", "ADM1NAME": "Ulaanbaatar", "ISO_A2": "MN", "NOTE": null, "LATITUDE": 47.916673, "LONGITUDE": 106.916616, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 885000, "POP_MIN": 769612, "POP_OTHER": 765359, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2028462.000000, "MEGANAME": "Ulaanbaatar", "LS_NAME": "Ulaanbaatar", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 769612.000000, "MAX_POP20": 769612.000000, "MAX_POP50": 769612.000000, "MAX_POP300": 769612.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 143.000000, "MAX_AREAKM": 143.000000, "MIN_AREAMI": 55.000000, "MAX_AREAMI": 55.000000, "MIN_PERKM": 144.000000, "MAX_PERKM": 144.000000, "MIN_PERMI": 89.000000, "MAX_PERMI": 89.000000, "MIN_BBXMIN": 106.725000, "MAX_BBXMIN": 106.725000, "MIN_BBXMAX": 107.041667, "MAX_BBXMAX": 107.041667, "MIN_BBYMIN": 47.883333, "MAX_BBYMIN": 47.883333, "MIN_BBYMAX": 48.016667, "MAX_BBYMAX": 48.016667, "MEAN_BBXC": 106.883013, "MEAN_BBYC": 47.932237, "COMPARE": 0, "GN_ASCII": "Ulaanbaatar", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 20.000000, "GN_POP": 844818.000000, "ELEVATION": 0.000000, "GTOPO30": 1299.000000, "TIMEZONE": "Asia\/Ulaanbaatar", "GEONAMESNO": "GeoNames match general.", "UN_FID": 367, "UN_ADM0": "Mongolia", "UN_LAT": 47.920000, "UN_LONG": 106.910000, "POP1950": 70.000000, "POP1955": 112.000000, "POP1960": 179.000000, "POP1965": 248.000000, "POP1970": 298.000000, "POP1975": 356.000000, "POP1980": 423.000000, "POP1985": 492.000000, "POP1990": 572.000000, "POP1995": 661.000000, "POP2000": 763.000000, "POP2005": 856.000000, "POP2010": 885.000000, "POP2015": 919.000000, "POP2020": 978.000000, "POP2025": 1044.000000, "POP2050": 1112.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11901686.61201599612832, 6093326.642045327462256 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Wellington", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Wellington", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "New Zealand", "SOV_A3": "NZL", "ADM0NAME": "New Zealand", "ADM0_A3": "NZL", "ADM1NAME": "Manawatu-Wanganui", "ISO_A2": "NZ", "NOTE": null, "LATITUDE": -41.299974, "LONGITUDE": 174.783274, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 393400, "POP_MIN": 199200, "POP_OTHER": 140594, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 2144168.000000, "MEGANAME": null, "LS_NAME": "Wellington", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 144164.000000, "MAX_POP20": 144164.000000, "MAX_POP50": 144164.000000, "MAX_POP300": 144164.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 77.000000, "MAX_AREAKM": 77.000000, "MIN_AREAMI": 30.000000, "MAX_AREAMI": 30.000000, "MIN_PERKM": 79.000000, "MAX_PERKM": 79.000000, "MIN_PERMI": 49.000000, "MAX_PERMI": 49.000000, "MIN_BBXMIN": 174.725000, "MAX_BBXMIN": 174.725000, "MIN_BBXMAX": 174.841667, "MAX_BBXMAX": 174.841667, "MIN_BBYMIN": -41.350000, "MAX_BBYMIN": -41.350000, "MIN_BBYMAX": -41.200000, "MAX_BBYMAX": -41.200000, "MEAN_BBXC": 174.787920, "MEAN_BBYC": -41.285539, "COMPARE": 0, "GN_ASCII": "Wellington", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 2.000000, "GN_POP": 5428.000000, "ELEVATION": 0.000000, "GTOPO30": 304.000000, "TIMEZONE": "Australia\/Sydney", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19456785.093286015093327, -5056688.947184218093753 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Windhoek", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Windhoek", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Namibia", "SOV_A3": "NAM", "ADM0NAME": "Namibia", "ADM0_A3": "NAM", "ADM1NAME": "Khomas", "ISO_A2": "NA", "NOTE": null, "LATITUDE": -22.570006, "LONGITUDE": 17.083546, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 268132, "POP_MIN": 262796, "POP_OTHER": 262796, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3352136.000000, "MEGANAME": null, "LS_NAME": "Windhoek", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 262796.000000, "MAX_POP20": 262796.000000, "MAX_POP50": 262796.000000, "MAX_POP300": 262796.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 89.000000, "MAX_AREAKM": 89.000000, "MIN_AREAMI": 35.000000, "MAX_AREAMI": 35.000000, "MIN_PERKM": 60.000000, "MAX_PERKM": 60.000000, "MIN_PERMI": 37.000000, "MAX_PERMI": 37.000000, "MIN_BBXMIN": 17.008333, "MAX_BBXMIN": 17.008333, "MIN_BBXMAX": 17.116667, "MAX_BBXMAX": 17.116667, "MIN_BBYMIN": -22.625000, "MAX_BBYMIN": -22.625000, "MIN_BBYMAX": -22.491667, "MAX_BBYMAX": -22.491667, "MEAN_BBXC": 17.064196, "MEAN_BBYC": -22.551143, "COMPARE": 0, "GN_ASCII": "Windhoek", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 21.000000, "GN_POP": 268132.000000, "ELEVATION": 0.000000, "GTOPO30": 1722.000000, "TIMEZONE": "Africa\/Windhoek", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1901731.652855729684234, -2580100.312024667393416 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Abuja", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Abuja", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official and ad", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Nigeria", "SOV_A3": "NGA", "ADM0NAME": "Nigeria", "ADM0_A3": "NGA", "ADM1NAME": "Federal Capital Territory", "ISO_A2": "NG", "NOTE": null, "LATITUDE": 9.083333, "LONGITUDE": 7.533328, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1576000, "POP_MIN": 162135, "POP_OTHER": 0, "RANK_MAX": 12, "RANK_MIN": 9, "GEONAMEID": 2322794.000000, "MEGANAME": "Abuja", "LS_NAME": "Abuja", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 655258.000000, "MAX_POP20": 655258.000000, "MAX_POP50": 655258.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 174.000000, "MAX_AREAKM": 174.000000, "MIN_AREAMI": 67.000000, "MAX_AREAMI": 67.000000, "MIN_PERKM": 162.000000, "MAX_PERKM": 162.000000, "MIN_PERMI": 101.000000, "MAX_PERMI": 101.000000, "MIN_BBXMIN": 7.375000, "MAX_BBXMIN": 7.375000, "MIN_BBXMAX": 7.591667, "MAX_BBXMAX": 7.591667, "MIN_BBYMIN": 8.983333, "MAX_BBYMIN": 8.983333, "MIN_BBYMAX": 9.166667, "MAX_BBYMAX": 9.166667, "MEAN_BBXC": 7.484385, "MEAN_BBYC": 9.063188, "COMPARE": 0, "GN_ASCII": "Abuja", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 162135.000000, "ELEVATION": 0.000000, "GTOPO30": 339.000000, "TIMEZONE": "Africa\/Lagos", "GEONAMESNO": "GeoNames match general.", "UN_FID": 386, "UN_ADM0": "Nigeria", "UN_LAT": 9.050000, "UN_LONG": 7.250000, "POP1950": 18.000000, "POP1955": 21.000000, "POP1960": 23.000000, "POP1965": 29.000000, "POP1970": 48.000000, "POP1975": 77.000000, "POP1980": 125.000000, "POP1985": 204.000000, "POP1990": 330.000000, "POP1995": 526.000000, "POP2000": 832.000000, "POP2005": 1315.000000, "POP2010": 1576.000000, "POP2015": 1994.000000, "POP2020": 2558.000000, "POP2025": 2971.000000, "POP2050": 3358.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 838389.625120780430734, 1015633.749239770928398 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bissau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bissau", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Guinea Bissau", "SOV_A3": "GNB", "ADM0NAME": "Guinea Bissau", "ADM0_A3": "GNB", "ADM1NAME": "Bissau", "ISO_A2": "GW", "NOTE": null, "LATITUDE": 11.865024, "LONGITUDE": -15.598361, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 403339, "POP_MIN": 388028, "POP_OTHER": 403339, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2374775.000000, "MEGANAME": null, "LS_NAME": "Bissau", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 403339.000000, "MAX_POP20": 403339.000000, "MAX_POP50": 403339.000000, "MAX_POP300": 403339.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 70.000000, "MAX_AREAKM": 70.000000, "MIN_AREAMI": 27.000000, "MAX_AREAMI": 27.000000, "MIN_PERKM": 66.000000, "MAX_PERKM": 66.000000, "MIN_PERMI": 41.000000, "MAX_PERMI": 41.000000, "MIN_BBXMIN": -15.658333, "MAX_BBXMIN": -15.658333, "MIN_BBXMAX": -15.558333, "MAX_BBXMAX": -15.558333, "MIN_BBYMIN": 11.808333, "MAX_BBYMIN": 11.808333, "MIN_BBYMAX": 11.933333, "MAX_BBYMAX": 11.933333, "MEAN_BBXC": -15.612698, "MEAN_BBYC": 11.871032, "COMPARE": 0, "GN_ASCII": "Bissau", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 388028.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Africa\/Bissau", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1736401.586065565003082, 1330351.081429655198008 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Amman", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Amman", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Jordan", "SOV_A3": "JOR", "ADM0NAME": "Jordan", "ADM0_A3": "JOR", "ADM1NAME": "Amman", "ISO_A2": "JO", "NOTE": null, "LATITUDE": 31.950025, "LONGITUDE": 35.933300, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1060000, "POP_MIN": 1060000, "POP_OTHER": 2633729, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 250441.000000, "MEGANAME": "Amman", "LS_NAME": "Amman", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2725138.000000, "MAX_POP20": 3684787.000000, "MAX_POP50": 3684787.000000, "MAX_POP300": 3684787.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 403.000000, "MAX_AREAKM": 545.000000, "MIN_AREAMI": 156.000000, "MAX_AREAMI": 210.000000, "MIN_PERKM": 258.000000, "MAX_PERKM": 361.000000, "MIN_PERMI": 160.000000, "MAX_PERMI": 224.000000, "MIN_BBXMIN": 35.775000, "MAX_BBXMIN": 35.775000, "MIN_BBXMAX": 36.041667, "MAX_BBXMAX": 36.158333, "MIN_BBYMIN": 31.783333, "MAX_BBYMIN": 31.783333, "MIN_BBYMAX": 32.083333, "MAX_BBYMAX": 32.166667, "MEAN_BBXC": 35.928711, "MEAN_BBYC": 31.948606, "COMPARE": 0, "GN_ASCII": "Amman", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1275857.000000, "ELEVATION": 0.000000, "GTOPO30": 765.000000, "TIMEZONE": "Asia\/Amman", "GEONAMESNO": "GeoNames match general.", "UN_FID": 322, "UN_ADM0": "Jordan", "UN_LAT": 31.940000, "UN_LONG": 35.930000, "POP1950": 90.000000, "POP1955": 140.000000, "POP1960": 218.000000, "POP1965": 299.000000, "POP1970": 388.000000, "POP1975": 500.000000, "POP1980": 636.000000, "POP1985": 736.000000, "POP1990": 851.000000, "POP1995": 973.000000, "POP2000": 1007.000000, "POP2005": 1042.000000, "POP2010": 1060.000000, "POP2015": 1106.000000, "POP2020": 1185.000000, "POP2025": 1268.000000, "POP2050": 1359.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3999860.038237247150391, 3757007.73830197006464 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Vilnius", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vilnius", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Lithuania", "SOV_A3": "LTU", "ADM0NAME": "Lithuania", "ADM0_A3": "LTU", "ADM1NAME": "Vilniaus", "ISO_A2": "LT", "NOTE": null, "LATITUDE": 54.683366, "LONGITUDE": 25.316635, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 542366, "POP_MIN": 507029, "POP_OTHER": 494356, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 593116.000000, "MEGANAME": null, "LS_NAME": "Vilnius", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 507029.000000, "MAX_POP20": 507029.000000, "MAX_POP50": 507029.000000, "MAX_POP300": 507029.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 126.000000, "MAX_AREAKM": 126.000000, "MIN_AREAMI": 49.000000, "MAX_AREAMI": 49.000000, "MIN_PERKM": 162.000000, "MAX_PERKM": 162.000000, "MIN_PERMI": 101.000000, "MAX_PERMI": 101.000000, "MIN_BBXMIN": 25.166667, "MAX_BBXMIN": 25.166667, "MIN_BBXMAX": 25.391667, "MAX_BBXMAX": 25.391667, "MIN_BBYMIN": 54.575000, "MAX_BBYMIN": 54.575000, "MIN_BBYMAX": 54.775000, "MAX_BBYMAX": 54.775000, "MEAN_BBXC": 25.259623, "MEAN_BBYC": 54.692063, "COMPARE": 0, "GN_ASCII": "Vilnius", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 65.000000, "GN_POP": 542366.000000, "ELEVATION": 0.000000, "GTOPO30": 125.000000, "TIMEZONE": "Europe\/Vilnius", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2818234.949447270017117, 7300654.893979092128575 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Riga", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Riga", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Latvia", "SOV_A3": "LVA", "ADM0NAME": "Latvia", "ADM0_A3": "LVA", "ADM1NAME": "Riga", "ISO_A2": "LV", "NOTE": null, "LATITUDE": 56.950024, "LONGITUDE": 24.099965, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 742572, "POP_MIN": 705033, "POP_OTHER": 0, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 456172.000000, "MEGANAME": null, "LS_NAME": "Riga", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 705033.000000, "MAX_POP20": 705033.000000, "MAX_POP50": 705033.000000, "MAX_POP300": 705033.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 171.000000, "MAX_AREAKM": 171.000000, "MIN_AREAMI": 66.000000, "MAX_AREAMI": 66.000000, "MIN_PERKM": 173.000000, "MAX_PERKM": 173.000000, "MIN_PERMI": 108.000000, "MAX_PERMI": 108.000000, "MIN_BBXMIN": 23.975000, "MAX_BBXMIN": 23.975000, "MIN_BBXMAX": 24.266667, "MAX_BBXMAX": 24.266667, "MIN_BBYMIN": 56.875000, "MAX_BBYMIN": 56.875000, "MIN_BBYMAX": 57.083333, "MAX_BBYMAX": 57.083333, "MEAN_BBXC": 24.127656, "MEAN_BBYC": 56.953571, "COMPARE": 0, "GN_ASCII": "Riga", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 25.000000, "GN_POP": 742572.000000, "ELEVATION": 0.000000, "GTOPO30": 9.000000, "TIMEZONE": "Europe\/Riga", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2682795.873280128464103, 7749910.82867743819952 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bishkek", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bishkek", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Kyrgyzstan", "SOV_A3": "KGZ", "ADM0NAME": "Kyrgyzstan", "ADM0_A3": "KGZ", "ADM1NAME": "Bishkek", "ISO_A2": "KG", "NOTE": null, "LATITUDE": 42.873079, "LONGITUDE": 74.585204, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 837000, "POP_MIN": 804212, "POP_OTHER": 781714, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 1528675.000000, "MEGANAME": "Bishkek", "LS_NAME": "Bishkek", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 804212.000000, "MAX_POP20": 804212.000000, "MAX_POP50": 804212.000000, "MAX_POP300": 804212.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 245.000000, "MAX_AREAKM": 245.000000, "MIN_AREAMI": 94.000000, "MAX_AREAMI": 94.000000, "MIN_PERKM": 190.000000, "MAX_PERKM": 190.000000, "MIN_PERMI": 118.000000, "MAX_PERMI": 118.000000, "MIN_BBXMIN": 74.425000, "MAX_BBXMIN": 74.425000, "MIN_BBXMAX": 74.800000, "MAX_BBXMAX": 74.800000, "MIN_BBYMIN": 42.766667, "MAX_BBYMIN": 42.766667, "MIN_BBYMAX": 43.000000, "MAX_BBYMAX": 43.000000, "MEAN_BBXC": 74.603823, "MEAN_BBYC": 42.872917, "COMPARE": 0, "GN_ASCII": "Bishkek", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 900000.000000, "ELEVATION": 0.000000, "GTOPO30": 772.000000, "TIMEZONE": "Asia\/Bishkek", "GEONAMESNO": "GeoNames match general.", "UN_FID": 340, "UN_ADM0": "Kyrgyzstan", "UN_LAT": 42.870000, "UN_LONG": 74.770000, "POP1950": 150.000000, "POP1955": 186.000000, "POP1960": 236.000000, "POP1965": 322.000000, "POP1970": 433.000000, "POP1975": 485.000000, "POP1980": 538.000000, "POP1985": 583.000000, "POP1990": 635.000000, "POP1995": 703.000000, "POP2000": 770.000000, "POP2005": 817.000000, "POP2010": 837.000000, "POP2015": 869.000000, "POP2020": 934.000000, "POP2025": 1011.000000, "POP2050": 1096.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8302570.342772921547294, 5292968.728808224201202 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Maseru", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Maseru", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Lesotho", "SOV_A3": "LSO", "ADM0NAME": "Lesotho", "ADM0_A3": "LSO", "ADM1NAME": "Maseru", "ISO_A2": "LS", "NOTE": null, "LATITUDE": -29.316674, "LONGITUDE": 27.483273, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 361324, "POP_MIN": 118355, "POP_OTHER": 356225, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 932505.000000, "MEGANAME": null, "LS_NAME": "Maseru", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 361324.000000, "MAX_POP20": 361324.000000, "MAX_POP50": 361324.000000, "MAX_POP300": 361324.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 141.000000, "MAX_AREAKM": 141.000000, "MIN_AREAMI": 54.000000, "MAX_AREAMI": 54.000000, "MIN_PERKM": 177.000000, "MAX_PERKM": 177.000000, "MIN_PERMI": 110.000000, "MAX_PERMI": 110.000000, "MIN_BBXMIN": 27.458333, "MAX_BBXMIN": 27.458333, "MIN_BBXMAX": 27.616667, "MAX_BBXMAX": 27.616667, "MIN_BBYMIN": -29.525000, "MAX_BBYMIN": -29.525000, "MIN_BBYMAX": -29.241667, "MAX_BBYMAX": -29.241667, "MEAN_BBXC": 27.536702, "MEAN_BBYC": -29.350222, "COMPARE": 0, "GN_ASCII": "Maseru", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 14.000000, "GN_POP": 118355.000000, "ELEVATION": 0.000000, "GTOPO30": 1482.000000, "TIMEZONE": "Africa\/Maseru", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3059423.963483160361648, -3416013.661374630406499 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Antananarivo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Antananarivo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Madagascar", "SOV_A3": "MDG", "ADM0NAME": "Madagascar", "ADM0_A3": "MDG", "ADM1NAME": "Antananarivo", "ISO_A2": "MG", "NOTE": null, "LATITUDE": -18.916637, "LONGITUDE": 47.516624, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1697000, "POP_MIN": 1391433, "POP_OTHER": 1844658, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1070940.000000, "MEGANAME": "Antananarivo", "LS_NAME": "Antananarivo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1727538.000000, "MAX_POP20": 1727538.000000, "MAX_POP50": 1727538.000000, "MAX_POP300": 1727538.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 700.000000, "MAX_AREAKM": 700.000000, "MIN_AREAMI": 270.000000, "MAX_AREAMI": 270.000000, "MIN_PERKM": 699.000000, "MAX_PERKM": 699.000000, "MIN_PERMI": 434.000000, "MAX_PERMI": 434.000000, "MIN_BBXMIN": 47.233333, "MAX_BBXMIN": 47.233333, "MIN_BBXMAX": 47.625000, "MAX_BBXMAX": 47.625000, "MIN_BBYMIN": -19.166667, "MAX_BBYMIN": -19.166667, "MIN_BBYMAX": -18.625000, "MAX_BBYMAX": -18.625000, "MEAN_BBXC": 47.476707, "MEAN_BBYC": -18.875473, "COMPARE": 0, "GN_ASCII": "Antananarivo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 1391433.000000, "ELEVATION": 0.000000, "GTOPO30": 1289.000000, "TIMEZONE": "Indian\/Antananarivo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 345, "UN_ADM0": "Madagascar", "UN_LAT": -18.900000, "UN_LONG": 47.520000, "POP1950": 177.000000, "POP1955": 189.000000, "POP1960": 252.000000, "POP1965": 298.000000, "POP1970": 363.000000, "POP1975": 454.000000, "POP1980": 580.000000, "POP1985": 742.000000, "POP1990": 948.000000, "POP1995": 1169.000000, "POP2000": 1361.000000, "POP2005": 1590.000000, "POP2010": 1697.000000, "POP2015": 1877.000000, "POP2020": 2229.000000, "POP2025": 2642.000000, "POP2050": 3118.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5289309.764789442531765, -2144894.790622829925269 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Quito", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Quito", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ecuador", "SOV_A3": "ECU", "ADM0NAME": "Ecuador", "ADM0_A3": "ECU", "ADM1NAME": "Pichincha", "ISO_A2": "EC", "NOTE": null, "LATITUDE": -0.214988, "LONGITUDE": -78.500051, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1701000, "POP_MIN": 1399814, "POP_OTHER": 1435528, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3652462.000000, "MEGANAME": "Quito", "LS_NAME": "Quito", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1472051.000000, "MAX_POP20": 1892286.000000, "MAX_POP50": 1892286.000000, "MAX_POP300": 1892286.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 334.000000, "MAX_AREAKM": 496.000000, "MIN_AREAMI": 129.000000, "MAX_AREAMI": 191.000000, "MIN_PERKM": 233.000000, "MAX_PERKM": 359.000000, "MIN_PERMI": 145.000000, "MAX_PERMI": 223.000000, "MIN_BBXMIN": -78.591667, "MAX_BBXMIN": -78.591667, "MIN_BBXMAX": -78.291667, "MAX_BBXMAX": -78.291667, "MIN_BBYMIN": -0.391667, "MAX_BBYMIN": -0.302570, "MIN_BBYMAX": 0.025000, "MAX_BBYMAX": 0.025000, "MEAN_BBXC": -78.460061, "MEAN_BBYC": -0.198438, "COMPARE": 0, "GN_ASCII": "Quito", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 18.000000, "GN_POP": 1399814.000000, "ELEVATION": 0.000000, "GTOPO30": 2764.000000, "TIMEZONE": "America\/Guayaquil", "GEONAMESNO": "GeoNames match general.", "UN_FID": 178, "UN_ADM0": "Ecuador", "UN_LAT": -0.220000, "UN_LONG": -78.520000, "POP1950": 206.000000, "POP1955": 257.000000, "POP1960": 319.000000, "POP1965": 399.000000, "POP1970": 501.000000, "POP1975": 628.000000, "POP1980": 780.000000, "POP1985": 936.000000, "POP1990": 1088.000000, "POP1995": 1217.000000, "POP2000": 1357.000000, "POP2005": 1593.000000, "POP2010": 1701.000000, "POP2015": 1846.000000, "POP2020": 2035.000000, "POP2025": 2189.000000, "POP2050": 2316.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8738802.328634060919285, -23715.81745436212077 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "San Jose", "NAMEPAR": null, "NAMEALT": "San José", "DIFFASCII": 0, "NAMEASCII": "San Jose", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Costa Rica", "SOV_A3": "CRI", "ADM0NAME": "Costa Rica", "ADM0_A3": "CRI", "ADM1NAME": "San José", "ISO_A2": "CR", "NOTE": null, "LATITUDE": 9.935012, "LONGITUDE": -84.084051, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1284000, "POP_MIN": 1724, "POP_OTHER": 1434681, "RANK_MAX": 12, "RANK_MIN": 3, "GEONAMEID": 3669623.000000, "MEGANAME": "San José", "LS_NAME": "San Jose1", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1450902.000000, "MAX_POP20": 1826034.000000, "MAX_POP50": 1826034.000000, "MAX_POP300": 1826034.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 264.000000, "MAX_AREAKM": 431.000000, "MIN_AREAMI": 102.000000, "MAX_AREAMI": 166.000000, "MIN_PERKM": 136.000000, "MAX_PERKM": 270.000000, "MIN_PERMI": 84.000000, "MAX_PERMI": 168.000000, "MIN_BBXMIN": -84.366667, "MAX_BBXMIN": -84.166667, "MIN_BBXMAX": -83.983333, "MAX_BBXMAX": -83.975000, "MIN_BBYMIN": 9.841667, "MAX_BBYMIN": 9.841667, "MIN_BBYMAX": 10.041667, "MAX_BBYMAX": 10.050000, "MEAN_BBXC": -84.111698, "MEAN_BBYC": 9.959268, "COMPARE": 0, "GN_ASCII": "San Jose", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 37.000000, "GN_POP": 1724.000000, "ELEVATION": 0.000000, "GTOPO30": 1468.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 171, "UN_ADM0": "Costa Rica", "UN_LAT": 9.930000, "UN_LONG": -84.070000, "POP1950": 148.000000, "POP1955": 184.000000, "POP1960": 230.000000, "POP1965": 287.000000, "POP1970": 359.000000, "POP1975": 440.000000, "POP1980": 526.000000, "POP1985": 627.000000, "POP1990": 737.000000, "POP1995": 867.000000, "POP2000": 1032.000000, "POP2005": 1217.000000, "POP2010": 1284.000000, "POP2015": 1374.000000, "POP2020": 1506.000000, "POP2025": 1627.000000, "POP2050": 1737.000000, "CITYALT": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -9360410.392403796315193, 1111764.632919730851427 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "San Salvador", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "San Salvador", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "El Salvador", "SOV_A3": "SLV", "ADM0NAME": "El Salvador", "ADM0_A3": "SLV", "ADM1NAME": "San Salvador", "ISO_A2": "SV", "NOTE": null, "LATITUDE": 13.710002, "LONGITUDE": -89.203041, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1433000, "POP_MIN": 2807, "POP_OTHER": 2139587, "RANK_MAX": 12, "RANK_MIN": 4, "GEONAMEID": 1690681.000000, "MEGANAME": "San Salvador", "LS_NAME": "San Salvador", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2150614.000000, "MAX_POP20": 2150614.000000, "MAX_POP50": 2150614.000000, "MAX_POP300": 2150614.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 379.000000, "MAX_AREAKM": 379.000000, "MIN_AREAMI": 146.000000, "MAX_AREAMI": 146.000000, "MIN_PERKM": 347.000000, "MAX_PERKM": 347.000000, "MIN_PERMI": 215.000000, "MAX_PERMI": 215.000000, "MIN_BBXMIN": -89.316667, "MAX_BBXMIN": -89.316667, "MIN_BBXMAX": -88.966667, "MAX_BBXMAX": -88.966667, "MIN_BBYMIN": 13.591667, "MAX_BBYMIN": 13.591667, "MIN_BBYMAX": 13.900000, "MAX_BBYMAX": 13.900000, "MEAN_BBXC": -89.176042, "MEAN_BBYC": 13.738798, "COMPARE": 0, "GN_ASCII": "San Salvador", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 30.000000, "GN_POP": 2807.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Asia\/Manila", "GEONAMESNO": "GeoNames match general.", "UN_FID": 179, "UN_ADM0": "El Salvador", "UN_LAT": 13.700000, "UN_LONG": -89.200000, "POP1950": 194.000000, "POP1955": 246.000000, "POP1960": 311.000000, "POP1965": 394.000000, "POP1970": 500.000000, "POP1975": 596.000000, "POP1980": 701.000000, "POP1985": 825.000000, "POP1990": 970.000000, "POP1995": 1107.000000, "POP2000": 1233.000000, "POP2005": 1374.000000, "POP2010": 1433.000000, "POP2015": 1520.000000, "POP2020": 1649.000000, "POP2025": 1776.000000, "POP2050": 1902.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9930253.737906025722623, 1541189.594922678777948 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Kingston", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kingston", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Jamaica", "SOV_A3": "JAM", "ADM0NAME": "Jamaica", "ADM0_A3": "JAM", "ADM1NAME": "Kingston", "ISO_A2": "JM", "NOTE": null, "LATITUDE": 17.977077, "LONGITUDE": -76.767434, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 937700, "POP_MIN": 664973, "POP_OTHER": 18171, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3489854.000000, "MEGANAME": null, "LS_NAME": "Kingston1", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 664973.000000, "MAX_POP20": 664973.000000, "MAX_POP50": 664973.000000, "MAX_POP300": 664973.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 120.000000, "MAX_AREAKM": 120.000000, "MIN_AREAMI": 46.000000, "MAX_AREAMI": 46.000000, "MIN_PERKM": 69.000000, "MAX_PERKM": 69.000000, "MIN_PERMI": 43.000000, "MAX_PERMI": 43.000000, "MIN_BBXMIN": -76.866667, "MAX_BBXMIN": -76.866667, "MIN_BBXMAX": -76.733333, "MAX_BBXMAX": -76.733333, "MIN_BBYMIN": 17.958333, "MAX_BBYMIN": 17.958333, "MIN_BBYMAX": 18.083333, "MAX_BBYMAX": 18.083333, "MEAN_BBXC": -76.798044, "MEAN_BBYC": 18.018509, "COMPARE": 0, "GN_ASCII": "Kingston", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 937700.000000, "ELEVATION": 0.000000, "GTOPO30": 54.000000, "TIMEZONE": "America\/Jamaica", "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8545711.630512028932571, 2034865.578242027433589 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Ndjamena", "NAMEPAR": null, "NAMEALT": "N'Djaména", "DIFFASCII": 0, "NAMEASCII": "Ndjamena", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Chad", "SOV_A3": "TCD", "ADM0NAME": "Chad", "ADM0_A3": "TCD", "ADM1NAME": "Hadjer-Lamis", "ISO_A2": "TD", "NOTE": null, "LATITUDE": 12.113097, "LONGITUDE": 15.049148, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 989000, "POP_MIN": 681387, "POP_OTHER": 686347, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2427123.000000, "MEGANAME": "N'Djaména", "LS_NAME": "Ndjamena", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 681387.000000, "MAX_POP20": 681387.000000, "MAX_POP50": 681387.000000, "MAX_POP300": 681387.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 79.000000, "MAX_AREAKM": 79.000000, "MIN_AREAMI": 30.000000, "MAX_AREAMI": 30.000000, "MIN_PERKM": 66.000000, "MAX_PERKM": 66.000000, "MIN_PERMI": 41.000000, "MAX_PERMI": 41.000000, "MIN_BBXMIN": 15.025000, "MAX_BBXMIN": 15.025000, "MIN_BBXMAX": 15.133333, "MAX_BBXMAX": 15.133333, "MIN_BBYMIN": 12.066667, "MAX_BBYMIN": 12.066667, "MIN_BBYMAX": 12.183333, "MAX_BBYMAX": 12.183333, "MEAN_BBXC": 15.079167, "MEAN_BBYC": 12.120479, "COMPARE": 0, "GN_ASCII": "N'Djamena", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 721081.000000, "ELEVATION": 0.000000, "GTOPO30": 290.000000, "TIMEZONE": "Africa\/Ndjamena", "GEONAMESNO": "GeoNames match general.", "UN_FID": 16, "UN_ADM0": "Chad", "UN_LAT": 12.100000, "UN_LONG": 15.240000, "POP1950": 22.000000, "POP1955": 40.000000, "POP1960": 71.000000, "POP1965": 109.000000, "POP1970": 155.000000, "POP1975": 231.000000, "POP1980": 324.000000, "POP1985": 393.000000, "POP1990": 477.000000, "POP1995": 579.000000, "POP2000": 711.000000, "POP2005": 902.000000, "POP2010": 989.000000, "POP2015": 1127.000000, "POP2020": 1405.000000, "POP2025": 1753.000000, "POP2050": 2172.000000, "CITYALT": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 1675046.915205360157415, 1358803.776628058636561 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Malabo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Malabo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Equatorial Guinea", "SOV_A3": "GNQ", "ADM0NAME": "Equatorial Guinea", "ADM0_A3": "GNQ", "ADM1NAME": "Bioko Norte", "ISO_A2": "GQ", "NOTE": null, "LATITUDE": 3.750015, "LONGITUDE": 8.783278, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 155963, "POP_MIN": 155963, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 2309527.000000, "MEGANAME": null, "LS_NAME": "Malabo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 314.000000, "MAX_POP20": 314.000000, "MAX_POP50": 314.000000, "MAX_POP300": 314.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1.000000, "MAX_AREAKM": 1.000000, "MIN_AREAMI": 0.000000, "MAX_AREAMI": 0.000000, "MIN_PERKM": 4.000000, "MAX_PERKM": 4.000000, "MIN_PERMI": 2.000000, "MAX_PERMI": 2.000000, "MIN_BBXMIN": 8.658333, "MAX_BBXMIN": 8.658333, "MIN_BBXMAX": 8.666667, "MAX_BBXMAX": 8.666667, "MIN_BBYMIN": 3.350000, "MAX_BBYMIN": 3.350000, "MIN_BBYMAX": 3.358333, "MAX_BBYMAX": 3.358333, "MEAN_BBXC": 8.662500, "MEAN_BBYC": 3.354167, "COMPARE": 0, "GN_ASCII": "Malabo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 155963.000000, "ELEVATION": 0.000000, "GTOPO30": 111.000000, "TIMEZONE": "Africa\/Malabo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 977749.983896802994423, 417748.150280788424425 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Asmara", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Asmara", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Eritrea", "SOV_A3": "ERI", "ADM0NAME": "Eritrea", "ADM0_A3": "ERI", "ADM1NAME": "Anseba", "ISO_A2": "ER", "NOTE": null, "LATITUDE": 15.333339, "LONGITUDE": 38.933324, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 620802, "POP_MIN": 563930, "POP_OTHER": 587094, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 343300.000000, "MEGANAME": null, "LS_NAME": "Asmara", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 620802.000000, "MAX_POP20": 620802.000000, "MAX_POP50": 620802.000000, "MAX_POP300": 620802.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 90.000000, "MAX_AREAKM": 90.000000, "MIN_AREAMI": 35.000000, "MAX_AREAMI": 35.000000, "MIN_PERKM": 93.000000, "MAX_PERKM": 93.000000, "MIN_PERMI": 58.000000, "MAX_PERMI": 58.000000, "MIN_BBXMIN": 38.858333, "MAX_BBXMIN": 38.858333, "MIN_BBXMAX": 38.975000, "MAX_BBXMAX": 38.975000, "MIN_BBYMIN": 15.225000, "MAX_BBYMIN": 15.225000, "MIN_BBYMAX": 15.408333, "MAX_BBYMAX": 15.408333, "MEAN_BBXC": 38.926873, "MEAN_BBYC": 15.327408, "COMPARE": 0, "GN_ASCII": "Asmara", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 563930.000000, "ELEVATION": 0.000000, "GTOPO30": 2360.000000, "TIMEZONE": "Africa\/Asmara", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4334037.749777304008603, 1727646.485833970597014 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Zagreb", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Zagreb", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Croatia", "SOV_A3": "HRV", "ADM0NAME": "Croatia", "ADM0_A3": "HRV", "ADM1NAME": "Grad Zagreb", "ISO_A2": "HR", "NOTE": null, "LATITUDE": 45.800007, "LONGITUDE": 15.999995, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 722526, "POP_MIN": 698966, "POP_OTHER": 690638, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3186886.000000, "MEGANAME": null, "LS_NAME": "Zagreb", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 722526.000000, "MAX_POP20": 722526.000000, "MAX_POP50": 722526.000000, "MAX_POP300": 722526.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 244.000000, "MAX_AREAKM": 244.000000, "MIN_AREAMI": 94.000000, "MAX_AREAMI": 94.000000, "MIN_PERKM": 223.000000, "MAX_PERKM": 223.000000, "MIN_PERMI": 138.000000, "MAX_PERMI": 138.000000, "MIN_BBXMIN": 15.825000, "MAX_BBXMIN": 15.825000, "MIN_BBXMAX": 16.191667, "MAX_BBXMAX": 16.191667, "MIN_BBYMIN": 45.683333, "MAX_BBYMIN": 45.683333, "MIN_BBYMAX": 45.908333, "MAX_BBYMAX": 45.908333, "MEAN_BBXC": 16.005419, "MEAN_BBYC": 45.803305, "COMPARE": 0, "GN_ASCII": "Zagreb", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 21.000000, "GN_POP": 698966.000000, "ELEVATION": 0.000000, "GTOPO30": 131.000000, "TIMEZONE": "Europe\/Zagreb", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1781111.259164201328531, 5748357.876734943129122 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Tallinn", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tallinn", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Estonia", "SOV_A3": "EST", "ADM0NAME": "Estonia", "ADM0_A3": "EST", "ADM1NAME": "Harju", "ISO_A2": "EE", "NOTE": null, "LATITUDE": 59.433877, "LONGITUDE": 24.728041, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 394024, "POP_MIN": 340027, "POP_OTHER": 317949, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 588409.000000, "MEGANAME": null, "LS_NAME": "Tallinn", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 340027.000000, "MAX_POP20": 340027.000000, "MAX_POP50": 340027.000000, "MAX_POP300": 340027.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 130.000000, "MAX_AREAKM": 130.000000, "MIN_AREAMI": 50.000000, "MAX_AREAMI": 50.000000, "MIN_PERKM": 164.000000, "MAX_PERKM": 164.000000, "MIN_PERMI": 102.000000, "MAX_PERMI": 102.000000, "MIN_BBXMIN": 24.591667, "MAX_BBXMIN": 24.591667, "MIN_BBXMAX": 24.916667, "MAX_BBXMAX": 24.916667, "MIN_BBYMIN": 59.333333, "MAX_BBYMIN": 59.333333, "MIN_BBYMAX": 59.525000, "MAX_BBYMAX": 59.525000, "MEAN_BBXC": 24.746591, "MEAN_BBYC": 59.427090, "COMPARE": 0, "GN_ASCII": "Tallinn", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 394024.000000, "ELEVATION": 0.000000, "GTOPO30": 22.000000, "TIMEZONE": "Europe\/Tallinn", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2752712.902320882305503, 8274761.293931202031672 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Lilongwe", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lilongwe", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Malawi", "SOV_A3": "MWI", "ADM0NAME": "Malawi", "ADM0_A3": "MWI", "ADM1NAME": "Lilongwe", "ISO_A2": "MW", "NOTE": null, "LATITUDE": -13.983295, "LONGITUDE": 33.783302, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 646750, "POP_MIN": 646750, "POP_OTHER": 1061388, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 927967.000000, "MEGANAME": null, "LS_NAME": "Lilongwe", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 965164.000000, "MAX_POP20": 912521.000000, "MAX_POP50": 989470.000000, "MAX_POP300": 989470.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1100.000000, "MAX_AREAKM": 1373.000000, "MIN_AREAMI": 425.000000, "MAX_AREAMI": 530.000000, "MIN_PERKM": 1360.000000, "MAX_PERKM": 1658.000000, "MIN_PERMI": 845.000000, "MAX_PERMI": 1030.000000, "MIN_BBXMIN": 33.508333, "MAX_BBXMIN": 33.508333, "MIN_BBXMAX": 34.187755, "MAX_BBXMAX": 34.608333, "MIN_BBYMIN": -14.433333, "MAX_BBYMIN": -14.408333, "MIN_BBYMAX": -13.691667, "MAX_BBYMAX": -13.641667, "MEAN_BBXC": 33.888699, "MEAN_BBYC": -14.028166, "COMPARE": 0, "GN_ASCII": "Lilongwe", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 646750.000000, "ELEVATION": 0.000000, "GTOPO30": 1025.000000, "TIMEZONE": "Africa\/Blantyre", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3760739.971500769257545, -1572300.104343901388347 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Guatemala", "NAMEPAR": null, "NAMEALT": "Ciudad de Guatemala (Guatemala City)", "DIFFASCII": 0, "NAMEASCII": "Guatemala", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Guatemala", "SOV_A3": "GTM", "ADM0NAME": "Guatemala", "ADM0_A3": "GTM", "ADM1NAME": "Guatemala", "ISO_A2": "GT", "NOTE": null, "LATITUDE": 14.621135, "LONGITUDE": -90.526966, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1024000, "POP_MIN": 994938, "POP_OTHER": 2391150, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 3598132.000000, "MEGANAME": "Ciudad de Guatemala (Guatemala City)", "LS_NAME": "Guatemala", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2420941.000000, "MAX_POP20": 2417882.000000, "MAX_POP50": 2419489.000000, "MAX_POP300": 2419489.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 410.000000, "MAX_AREAKM": 419.000000, "MIN_AREAMI": 158.000000, "MAX_AREAMI": 162.000000, "MIN_PERKM": 274.000000, "MAX_PERKM": 288.000000, "MIN_PERMI": 170.000000, "MAX_PERMI": 179.000000, "MIN_BBXMIN": -90.658333, "MAX_BBXMIN": -90.658333, "MIN_BBXMAX": -90.425000, "MAX_BBXMAX": -90.425000, "MIN_BBYMIN": 14.433333, "MAX_BBYMIN": 14.441667, "MIN_BBYMAX": 14.783333, "MAX_BBYMAX": 14.783333, "MEAN_BBXC": -90.544190, "MEAN_BBYC": 14.603015, "COMPARE": 0, "GN_ASCII": "Guatemala City", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 994938.000000, "ELEVATION": 0.000000, "GTOPO30": 1533.000000, "TIMEZONE": "America\/Guatemala", "GEONAMESNO": "GeoNames match general.", "UN_FID": 206, "UN_ADM0": "Guatemala", "UN_LAT": 14.610000, "UN_LONG": -90.520000, "POP1950": 287.000000, "POP1955": 370.000000, "POP1960": 476.000000, "POP1965": 592.000000, "POP1970": 660.000000, "POP1975": 715.000000, "POP1980": 749.000000, "POP1985": 776.000000, "POP1990": 803.000000, "POP1995": 839.000000, "POP2000": 908.000000, "POP2005": 984.000000, "POP2010": 1024.000000, "POP2015": 1104.000000, "POP2020": 1281.000000, "POP2025": 1481.000000, "POP2050": 1690.000000, "CITYALT": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -10077632.323187392205, 1645799.447189974598587 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Libreville", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Libreville", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Gabon", "SOV_A3": "GAB", "ADM0NAME": "Gabon", "ADM0_A3": "GAB", "ADM1NAME": "Estuaire", "ISO_A2": "GA", "NOTE": null, "LATITUDE": 0.385389, "LONGITUDE": 9.457965, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 578156, "POP_MIN": 483355, "POP_OTHER": 483522, "RANK_MAX": 11, "RANK_MIN": 10, "GEONAMEID": 2399697.000000, "MEGANAME": null, "LS_NAME": "Libreville", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 483355.000000, "MAX_POP20": 483355.000000, "MAX_POP50": 483355.000000, "MAX_POP300": 483355.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 108.000000, "MAX_AREAKM": 108.000000, "MIN_AREAMI": 42.000000, "MAX_AREAMI": 42.000000, "MIN_PERKM": 98.000000, "MAX_PERKM": 98.000000, "MIN_PERMI": 61.000000, "MAX_PERMI": 61.000000, "MIN_BBXMIN": 9.400000, "MAX_BBXMIN": 9.400000, "MIN_BBXMAX": 9.525000, "MAX_BBXMAX": 9.525000, "MIN_BBYMIN": 0.283333, "MAX_BBYMIN": 0.283333, "MIN_BBYMAX": 0.483333, "MAX_BBYMAX": 0.483333, "MEAN_BBXC": 9.473280, "MEAN_BBYC": 0.395238, "COMPARE": 0, "GN_ASCII": "Libreville", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 578156.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Africa\/Libreville", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1052855.85284167365171, 42901.587292842988973 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Suva", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Suva", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Fiji", "SOV_A3": "FJI", "ADM0NAME": "Fiji", "ADM0_A3": "FJI", "ADM1NAME": "Central", "ISO_A2": "FJ", "NOTE": null, "LATITUDE": -18.133016, "LONGITUDE": 178.441707, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 175399, "POP_MIN": 88271, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 2198148.000000, "MEGANAME": null, "LS_NAME": "Suva", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 143230.000000, "MAX_POP20": 143230.000000, "MAX_POP50": 143230.000000, "MAX_POP300": 143230.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 53.000000, "MAX_AREAKM": 53.000000, "MIN_AREAMI": 20.000000, "MAX_AREAMI": 20.000000, "MIN_PERKM": 56.000000, "MAX_PERKM": 56.000000, "MIN_PERMI": 35.000000, "MAX_PERMI": 35.000000, "MIN_BBXMIN": 178.425000, "MAX_BBXMIN": 178.425000, "MIN_BBXMAX": 178.533333, "MAX_BBXMAX": 178.533333, "MIN_BBYMIN": -18.166667, "MAX_BBYMIN": -18.166667, "MIN_BBYMAX": -18.025000, "MAX_BBYMAX": -18.025000, "MEAN_BBXC": 178.472885, "MEAN_BBYC": -18.106731, "COMPARE": 0, "GN_ASCII": "Suva", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 77366.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Pacific\/Fiji", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19864039.994630448520184, -2053123.714411295251921 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital alt", "NAME": "Valparaiso", "NAMEPAR": null, "NAMEALT": "Valparaíso", "DIFFASCII": 0, "NAMEASCII": "Valparaiso", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Legislative cap", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Chile", "SOV_A3": "CHL", "ADM0NAME": "Chile", "ADM0_A3": "CHL", "ADM1NAME": "Valparaíso", "ISO_A2": "CL", "NOTE": null, "LATITUDE": -33.047764, "LONGITUDE": -71.621014, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 854000, "POP_MIN": 15938, "POP_OTHER": 130815, "RANK_MAX": 11, "RANK_MIN": 6, "GEONAMEID": 3445575.000000, "MEGANAME": "Valparaíso", "LS_NAME": "Valparaiso2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 144390.000000, "MAX_POP20": 637860.000000, "MAX_POP50": 637860.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 34.000000, "MAX_AREAKM": 184.000000, "MIN_AREAMI": 13.000000, "MAX_AREAMI": 71.000000, "MIN_PERKM": 33.000000, "MAX_PERKM": 151.000000, "MIN_PERMI": 21.000000, "MAX_PERMI": 94.000000, "MIN_BBXMIN": -71.658333, "MAX_BBXMIN": -71.658333, "MIN_BBXMAX": -71.574410, "MAX_BBXMAX": -71.325000, "MIN_BBYMIN": -33.075000, "MAX_BBYMIN": -33.075000, "MIN_BBYMAX": -33.016667, "MAX_BBYMAX": -32.916667, "MEAN_BBXC": -71.541251, "MEAN_BBYC": -33.034648, "COMPARE": 0, "GN_ASCII": "Valparaiso", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 27.000000, "GN_POP": 15938.000000, "ELEVATION": 0.000000, "GTOPO30": 405.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 18, "UN_ADM0": "Chile", "UN_LAT": -33.020000, "UN_LONG": -71.550000, "POP1950": 328.000000, "POP1955": 377.000000, "POP1960": 433.000000, "POP1965": 481.000000, "POP1970": 532.000000, "POP1975": 581.000000, "POP1980": 635.000000, "POP1985": 685.000000, "POP1990": 733.000000, "POP1995": 771.000000, "POP2000": 803.000000, "POP2005": 838.000000, "POP2010": 854.000000, "POP2015": 880.000000, "POP2020": 922.000000, "POP2025": 956.000000, "POP2050": 982.000000, "CITYALT": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -7973031.37970092240721, -3901387.197631407529116 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Nouakchott", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nouakchott", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Mauritania", "SOV_A3": "MRT", "ADM0NAME": "Mauritania", "ADM0_A3": "MRT", "ADM1NAME": "Nouakchott", "ISO_A2": "MR", "NOTE": null, "LATITUDE": 18.086427, "LONGITUDE": -15.975340, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 742144, "POP_MIN": 661400, "POP_OTHER": 742144, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2377450.000000, "MEGANAME": null, "LS_NAME": "Nouakchott", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 742144.000000, "MAX_POP20": 742144.000000, "MAX_POP50": 742144.000000, "MAX_POP300": 742144.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 98.000000, "MAX_AREAKM": 98.000000, "MIN_AREAMI": 38.000000, "MAX_AREAMI": 38.000000, "MIN_PERKM": 92.000000, "MAX_PERKM": 92.000000, "MIN_PERMI": 57.000000, "MAX_PERMI": 57.000000, "MIN_BBXMIN": -16.016667, "MAX_BBXMIN": -16.016667, "MIN_BBXMAX": -15.891667, "MAX_BBXMAX": -15.891667, "MIN_BBYMIN": 18.033333, "MAX_BBYMIN": 18.033333, "MIN_BBYMAX": 18.150000, "MAX_BBYMAX": 18.150000, "MEAN_BBXC": -15.960139, "MEAN_BBYC": 18.092569, "COMPARE": 0, "GN_ASCII": "Nouakchott", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 6.000000, "GN_POP": 661400.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Africa\/Nouakchott", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1778366.760234760819003, 2047667.159134397516027 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Bamako", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bamako", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Mali", "SOV_A3": "MLI", "ADM0NAME": "Mali", "ADM0_A3": "MLI", "ADM1NAME": "Bamako", "ISO_A2": "ML", "NOTE": null, "LATITUDE": 12.650015, "LONGITUDE": -8.000039, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1494000, "POP_MIN": 1297281, "POP_OTHER": 1301407, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2460596.000000, "MEGANAME": "Bamako", "LS_NAME": "Bamako", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1316564.000000, "MAX_POP20": 1316564.000000, "MAX_POP50": 1316564.000000, "MAX_POP300": 1316564.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 172.000000, "MAX_AREAKM": 172.000000, "MIN_AREAMI": 66.000000, "MAX_AREAMI": 66.000000, "MIN_PERKM": 106.000000, "MAX_PERKM": 106.000000, "MIN_PERMI": 66.000000, "MAX_PERMI": 66.000000, "MIN_BBXMIN": -8.058333, "MAX_BBXMIN": -8.058333, "MIN_BBXMAX": -7.908333, "MAX_BBXMAX": -7.908333, "MIN_BBYMIN": 12.541667, "MAX_BBYMIN": 12.541667, "MIN_BBYMAX": 12.716667, "MAX_BBYMAX": 12.716667, "MEAN_BBXC": -7.987419, "MEAN_BBYC": 12.626173, "COMPARE": 0, "GN_ASCII": "Bamako", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 1297281.000000, "ELEVATION": 0.000000, "GTOPO30": 350.000000, "TIMEZONE": "Africa\/Bamako", "GEONAMESNO": "GeoNames match general.", "UN_FID": 349, "UN_ADM0": "Mali", "UN_LAT": 12.650000, "UN_LONG": -7.980000, "POP1950": 89.000000, "POP1955": 111.000000, "POP1960": 130.000000, "POP1965": 158.000000, "POP1970": 222.000000, "POP1975": 363.000000, "POP1980": 489.000000, "POP1985": 608.000000, "POP1990": 746.000000, "POP1995": 910.000000, "POP2000": 1110.000000, "POP2005": 1368.000000, "POP2010": 1494.000000, "POP2015": 1708.000000, "POP2020": 2130.000000, "POP2025": 2633.000000, "POP2050": 3214.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -890776.891444389242679, 1419997.190998851787299 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Beirut", "NAMEPAR": null, "NAMEALT": "Bayrut", "DIFFASCII": 0, "NAMEASCII": "Beirut", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Lebanon", "SOV_A3": "LBN", "ADM0NAME": "Lebanon", "ADM0_A3": "LBN", "ADM1NAME": "Beirut", "ISO_A2": "LB", "NOTE": null, "LATITUDE": 33.871975, "LONGITUDE": 35.509708, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1846000, "POP_MIN": 1712125, "POP_OTHER": 1661980, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 276781.000000, "MEGANAME": "Bayrut", "LS_NAME": "Beirut", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1712125.000000, "MAX_POP20": 1712468.000000, "MAX_POP50": 1740692.000000, "MAX_POP300": 1740692.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 429.000000, "MAX_AREAKM": 471.000000, "MIN_AREAMI": 166.000000, "MAX_AREAMI": 182.000000, "MIN_PERKM": 403.000000, "MAX_PERKM": 457.000000, "MIN_PERMI": 251.000000, "MAX_PERMI": 284.000000, "MIN_BBXMIN": 35.441667, "MAX_BBXMIN": 35.441667, "MIN_BBXMAX": 35.718541, "MAX_BBXMAX": 35.758333, "MIN_BBYMIN": 33.700000, "MAX_BBYMIN": 33.700000, "MIN_BBYMAX": 34.166667, "MAX_BBYMAX": 34.166667, "MEAN_BBXC": 35.600789, "MEAN_BBYC": 33.892807, "COMPARE": 0, "GN_ASCII": "Beirut", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 1916100.000000, "ELEVATION": 0.000000, "GTOPO30": 56.000000, "TIMEZONE": "Asia\/Beirut", "GEONAMESNO": "GeoNames match general.", "UN_FID": 341, "UN_ADM0": "Lebanon", "UN_LAT": 33.880000, "UN_LONG": 35.490000, "POP1950": 322.000000, "POP1955": 425.000000, "POP1960": 561.000000, "POP1965": 733.000000, "POP1970": 923.000000, "POP1975": 1500.000000, "POP1980": 1623.000000, "POP1985": 1585.000000, "POP1990": 1293.000000, "POP1995": 1268.000000, "POP2000": 1487.000000, "POP2005": 1777.000000, "POP2010": 1846.000000, "POP2015": 1941.000000, "POP2020": 2051.000000, "POP2025": 2119.000000, "POP2050": 2173.000000, "CITYALT": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 3952706.024163932073861, 4011885.231190168298781 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Tbilisi", "NAMEPAR": null, "NAMEALT": "T'Bilisi", "DIFFASCII": 0, "NAMEASCII": "Tbilisi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Georgia", "SOV_A3": "GEO", "ADM0NAME": "Georgia", "ADM0_A3": "GEO", "ADM1NAME": "Tbilisi", "ISO_A2": "GE", "NOTE": null, "LATITUDE": 41.725010, "LONGITUDE": 44.790795, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1100000, "POP_MIN": 1005257, "POP_OTHER": 977179, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 611717.000000, "MEGANAME": "Tbilisi", "LS_NAME": "Tbilisi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1005257.000000, "MAX_POP20": 1005257.000000, "MAX_POP50": 1007529.000000, "MAX_POP300": 1007529.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 131.000000, "MAX_AREAKM": 135.000000, "MIN_AREAMI": 51.000000, "MAX_AREAMI": 52.000000, "MIN_PERKM": 128.000000, "MAX_PERKM": 133.000000, "MIN_PERMI": 80.000000, "MAX_PERMI": 83.000000, "MIN_BBXMIN": 44.708333, "MAX_BBXMIN": 44.708333, "MIN_BBXMAX": 44.933333, "MAX_BBXMAX": 44.933333, "MIN_BBYMIN": 41.616667, "MAX_BBYMIN": 41.627355, "MIN_BBYMAX": 41.825000, "MAX_BBYMAX": 41.825000, "MEAN_BBXC": 44.822812, "MEAN_BBYC": 41.722167, "COMPARE": 0, "GN_ASCII": "Tbilisi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1049498.000000, "ELEVATION": 0.000000, "GTOPO30": 420.000000, "TIMEZONE": "Asia\/Tbilisi", "GEONAMESNO": "GeoNames match general.", "UN_FID": 191, "UN_ADM0": "Georgia", "UN_LAT": 41.720000, "UN_LONG": 44.780000, "POP1950": 612.000000, "POP1955": 659.000000, "POP1960": 718.000000, "POP1965": 803.000000, "POP1970": 897.000000, "POP1975": 992.000000, "POP1980": 1090.000000, "POP1985": 1177.000000, "POP1990": 1224.000000, "POP1995": 1160.000000, "POP2000": 1100.000000, "POP2005": 1093.000000, "POP2010": 1100.000000, "POP2015": 1108.000000, "POP2020": 1113.000000, "POP2025": 1114.000000, "POP2050": 1114.000000, "CITYALT": "T'Bilisi" }, "geometry": { "type": "Point", "coordinates": [ 4985871.929686415009201, 5120166.10018109343946 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Astana", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Astana", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Kazakhstan", "SOV_A3": "KAZ", "ADM0NAME": "Kazakhstan", "ADM0_A3": "KAZ", "ADM1NAME": "Aqmola", "ISO_A2": "KZ", "NOTE": null, "LATITUDE": 51.181125, "LONGITUDE": 71.427774, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 345604, "POP_MIN": 325021, "POP_OTHER": 317445, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 1526273.000000, "MEGANAME": null, "LS_NAME": "Astana", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 325021.000000, "MAX_POP20": 325021.000000, "MAX_POP50": 325021.000000, "MAX_POP300": 325021.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 104.000000, "MAX_AREAKM": 104.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 101.000000, "MAX_PERKM": 101.000000, "MIN_PERMI": 63.000000, "MAX_PERMI": 63.000000, "MIN_BBXMIN": 71.325000, "MAX_BBXMIN": 71.325000, "MIN_BBXMAX": 71.533333, "MAX_BBXMAX": 71.533333, "MIN_BBYMIN": 51.100000, "MAX_BBYMIN": 51.100000, "MIN_BBYMAX": 51.225000, "MAX_BBYMAX": 51.225000, "MEAN_BBXC": 71.432750, "MEAN_BBYC": 51.164443, "COMPARE": 0, "GN_ASCII": "Astana", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 345604.000000, "ELEVATION": 0.000000, "GTOPO30": 339.000000, "TIMEZONE": "Asia\/Qyzylorda", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 7951303.453496568836272, 6653395.445643745362759 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Vientiane", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vientiane", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Laos", "SOV_A3": "LAO", "ADM0NAME": "Laos", "ADM0_A3": "LAO", "ADM1NAME": "Vientiane [prefecture]", "ISO_A2": "LA", "NOTE": null, "LATITUDE": 17.966693, "LONGITUDE": 102.599980, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 754000, "POP_MIN": 570348, "POP_OTHER": 469811, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 1651944.000000, "MEGANAME": null, "LS_NAME": "Vientiane", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 471927.000000, "MAX_POP20": 471927.000000, "MAX_POP50": 570348.000000, "MAX_POP300": 570348.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 166.000000, "MAX_AREAKM": 243.000000, "MIN_AREAMI": 64.000000, "MAX_AREAMI": 94.000000, "MIN_PERKM": 170.000000, "MAX_PERKM": 283.000000, "MIN_PERMI": 106.000000, "MAX_PERMI": 176.000000, "MIN_BBXMIN": 102.491667, "MAX_BBXMIN": 102.491667, "MIN_BBXMAX": 102.725000, "MAX_BBXMAX": 102.816667, "MIN_BBYMIN": 17.800000, "MAX_BBYMIN": 17.875000, "MIN_BBYMAX": 18.083333, "MAX_BBYMAX": 18.083333, "MEAN_BBXC": 102.648054, "MEAN_BBYC": 17.967124, "COMPARE": 0, "GN_ASCII": "Vientiane", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 27.000000, "GN_POP": 196731.000000, "ELEVATION": 0.000000, "GTOPO30": 174.000000, "TIMEZONE": "Asia\/Vientiane", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11421377.531243674457073, 2033650.355079893954098 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Brazzaville", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Brazzaville", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Congo (Brazzaville)", "SOV_A3": "COG", "ADM0NAME": "Congo (Brazzaville)", "ADM0_A3": "COG", "ADM1NAME": "Pool", "ISO_A2": "CG", "NOTE": null, "LATITUDE": -4.259186, "LONGITUDE": 15.284689, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1355000, "POP_MIN": 1163890, "POP_OTHER": 1174778, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2260535.000000, "MEGANAME": "Brazzaville", "LS_NAME": "Brazzaville", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1163890.000000, "MAX_POP20": 1163890.000000, "MAX_POP50": 1163890.000000, "MAX_POP300": 1163890.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 148.000000, "MAX_AREAKM": 148.000000, "MIN_AREAMI": 57.000000, "MAX_AREAMI": 57.000000, "MIN_PERKM": 105.000000, "MAX_PERKM": 105.000000, "MIN_PERMI": 65.000000, "MAX_PERMI": 65.000000, "MIN_BBXMIN": 15.150000, "MAX_BBXMIN": 15.150000, "MIN_BBXMAX": 15.308333, "MAX_BBXMAX": 15.308333, "MIN_BBYMIN": -4.333333, "MAX_BBYMIN": -4.333333, "MIN_BBYMAX": -4.150000, "MAX_BBYMAX": -4.150000, "MEAN_BBXC": 15.244540, "MEAN_BBYC": -4.251293, "COMPARE": 0, "GN_ASCII": "Brazzaville", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 1284609.000000, "ELEVATION": 0.000000, "GTOPO30": 156.000000, "TIMEZONE": "Africa\/Brazzaville", "GEONAMESNO": "GeoNames match general.", "UN_FID": 166, "UN_ADM0": "Congo", "UN_LAT": -4.280000, "UN_LONG": 15.280000, "POP1950": 83.000000, "POP1955": 92.000000, "POP1960": 124.000000, "POP1965": 172.000000, "POP1970": 238.000000, "POP1975": 329.000000, "POP1980": 446.000000, "POP1985": 596.000000, "POP1990": 704.000000, "POP1995": 830.000000, "POP2000": 986.000000, "POP2005": 1216.000000, "POP2010": 1355.000000, "POP2015": 1505.000000, "POP2020": 1729.000000, "POP2025": 1938.000000, "POP2050": 2150.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1701267.239244177239016, -474350.45504232076928 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Conakry", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Conakry", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Guinea", "SOV_A3": "GIN", "ADM0NAME": "Guinea", "ADM0_A3": "GIN", "ADM1NAME": "Conakry", "ISO_A2": "GN", "NOTE": null, "LATITUDE": 9.531523, "LONGITUDE": -13.680235, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1494000, "POP_MIN": 1494000, "POP_OTHER": 1498020, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2422465.000000, "MEGANAME": "Conakry", "LS_NAME": "Conakry", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1504217.000000, "MAX_POP20": 1504217.000000, "MAX_POP50": 1504217.000000, "MAX_POP300": 1504217.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 184.000000, "MAX_AREAKM": 184.000000, "MIN_AREAMI": 71.000000, "MAX_AREAMI": 71.000000, "MIN_PERKM": 123.000000, "MAX_PERKM": 123.000000, "MIN_PERMI": 76.000000, "MAX_PERMI": 76.000000, "MIN_BBXMIN": -13.725000, "MAX_BBXMIN": -13.725000, "MIN_BBXMAX": -13.475000, "MAX_BBXMAX": -13.475000, "MIN_BBYMIN": 9.500000, "MAX_BBYMIN": 9.500000, "MIN_BBYMAX": 9.775000, "MAX_BBYMAX": 9.775000, "MEAN_BBXC": -13.588647, "MEAN_BBYC": 9.633104, "COMPARE": 0, "GN_ASCII": "Conakry", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 1767200.000000, "ELEVATION": 0.000000, "GTOPO30": 235.000000, "TIMEZONE": "Africa\/Conakry", "GEONAMESNO": "GeoNames match general.", "UN_FID": 207, "UN_ADM0": "Guinea", "UN_LAT": 9.540000, "UN_LONG": -13.670000, "POP1950": 31.000000, "POP1955": 59.000000, "POP1960": 112.000000, "POP1965": 208.000000, "POP1970": 388.000000, "POP1975": 530.000000, "POP1980": 658.000000, "POP1985": 766.000000, "POP1990": 895.000000, "POP1995": 1045.000000, "POP2000": 1219.000000, "POP2005": 1409.000000, "POP2010": 1494.000000, "POP2015": 1645.000000, "POP2020": 1984.000000, "POP2025": 2393.000000, "POP2050": 2856.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1523093.409184777643532, 1066192.021816653665155 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Yamoussoukro", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Yamoussoukro", "ADM0CAP": 1.000000, "CAPALT": 1.000000, "CAPIN": "Official capita", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Ivory Coast", "SOV_A3": "CIV", "ADM0NAME": "Ivory Coast", "ADM0_A3": "CIV", "ADM1NAME": "Lacs", "ISO_A2": "CI", "NOTE": null, "LATITUDE": 6.818381, "LONGITUDE": -5.275503, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 206499, "POP_MIN": 194530, "POP_OTHER": 206499, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 2279755.000000, "MEGANAME": null, "LS_NAME": "Yamoussoukro", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 206499.000000, "MAX_POP20": 206499.000000, "MAX_POP50": 206499.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 59.000000, "MAX_AREAKM": 59.000000, "MIN_AREAMI": 23.000000, "MAX_AREAMI": 23.000000, "MIN_PERKM": 52.000000, "MAX_PERKM": 52.000000, "MIN_PERMI": 32.000000, "MAX_PERMI": 32.000000, "MIN_BBXMIN": -5.308333, "MAX_BBXMIN": -5.308333, "MIN_BBXMAX": -5.216667, "MAX_BBXMAX": -5.216667, "MIN_BBYMIN": 6.783333, "MAX_BBYMIN": 6.783333, "MIN_BBYMAX": 6.891667, "MAX_BBYMAX": 6.891667, "MEAN_BBXC": -5.263708, "MEAN_BBYC": 6.831582, "COMPARE": 0, "GN_ASCII": "Yamoussoukro", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 81.000000, "GN_POP": 194530.000000, "ELEVATION": 0.000000, "GTOPO30": 219.000000, "TIMEZONE": "Africa\/Abidjan", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -587266.259204647503793, 760816.572329092421569 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Ottawa", "NAMEPAR": null, "NAMEALT": "Ottawa-Gatineau", "DIFFASCII": 0, "NAMEASCII": "Ottawa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Canada", "SOV_A3": "CAN", "ADM0NAME": "Canada", "ADM0_A3": "CAN", "ADM1NAME": "Ontario", "ISO_A2": "CA", "NOTE": null, "LATITUDE": 45.416697, "LONGITUDE": -75.700015, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1145000, "POP_MIN": 812129, "POP_OTHER": 872781, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 6094817.000000, "MEGANAME": "Ottawa-Gatineau", "LS_NAME": "Ottawa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 885780.000000, "MAX_POP20": 885780.000000, "MAX_POP50": 885780.000000, "MAX_POP300": 885780.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 504.000000, "MAX_AREAKM": 504.000000, "MIN_AREAMI": 195.000000, "MAX_AREAMI": 195.000000, "MIN_PERKM": 442.000000, "MAX_PERKM": 442.000000, "MIN_PERMI": 274.000000, "MAX_PERMI": 274.000000, "MIN_BBXMIN": -75.983333, "MAX_BBXMIN": -75.983333, "MIN_BBXMAX": -75.450000, "MAX_BBXMAX": -75.450000, "MIN_BBYMIN": 45.225000, "MAX_BBYMIN": 45.225000, "MIN_BBYMAX": 45.550000, "MAX_BBYMAX": 45.550000, "MEAN_BBXC": -75.717666, "MEAN_BBYC": 45.405246, "COMPARE": 0, "GN_ASCII": "Ottawa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 812129.000000, "ELEVATION": 0.000000, "GTOPO30": 61.000000, "TIMEZONE": "America\/Montreal", "GEONAMESNO": "GeoNames match general.", "UN_FID": 13, "UN_ADM0": "Canada", "UN_LAT": 45.370000, "UN_LONG": -75.650000, "POP1950": 282.000000, "POP1955": 342.000000, "POP1960": 415.000000, "POP1965": 482.000000, "POP1970": 581.000000, "POP1975": 676.000000, "POP1980": 729.000000, "POP1985": 803.000000, "POP1990": 918.000000, "POP1995": 988.000000, "POP2000": 1079.000000, "POP2005": 1119.000000, "POP2010": 1145.000000, "POP2015": 1182.000000, "POP2020": 1232.000000, "POP2025": 1274.000000, "POP2050": 1315.000000, "CITYALT": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -8427103.768362170085311, 5687670.755433566868305 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Belgrade", "NAMEPAR": "Beograd", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Belgrade", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Republic of Serbia", "SOV_A3": "SRB", "ADM0NAME": "Serbia", "ADM0_A3": "SRB", "ADM1NAME": "Grad Beograd", "ISO_A2": "RS", "NOTE": null, "LATITUDE": 44.818645, "LONGITUDE": 20.467991, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1099000, "POP_MIN": 1099000, "POP_OTHER": 1271541, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 792680.000000, "MEGANAME": "Beograd", "LS_NAME": "Belgrade", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1291613.000000, "MAX_POP20": 1291613.000000, "MAX_POP50": 1291613.000000, "MAX_POP300": 1291613.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 209.000000, "MAX_AREAKM": 209.000000, "MIN_AREAMI": 81.000000, "MAX_AREAMI": 81.000000, "MIN_PERKM": 184.000000, "MAX_PERKM": 184.000000, "MIN_PERMI": 114.000000, "MAX_PERMI": 114.000000, "MIN_BBXMIN": 20.316667, "MAX_BBXMIN": 20.316667, "MIN_BBXMAX": 20.575000, "MAX_BBXMAX": 20.575000, "MIN_BBYMIN": 44.691667, "MAX_BBYMIN": 44.691667, "MIN_BBYMAX": 44.900000, "MAX_BBYMAX": 44.900000, "MEAN_BBXC": 20.449561, "MEAN_BBYC": 44.794615, "COMPARE": 0, "GN_ASCII": "Belgrade", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1273651.000000, "ELEVATION": 0.000000, "GTOPO30": 90.000000, "TIMEZONE": "Europe\/Belgrade", "GEONAMESNO": "GeoNames match general.", "UN_FID": 448, "UN_ADM0": "Serbia", "UN_LAT": 44.790000, "UN_LONG": 20.410000, "POP1950": 411.000000, "POP1955": 501.000000, "POP1960": 576.000000, "POP1965": 649.000000, "POP1970": 729.000000, "POP1975": 873.000000, "POP1980": 1057.000000, "POP1985": 1121.000000, "POP1990": 1162.000000, "POP1995": 1149.000000, "POP2000": 1127.000000, "POP2005": 1106.000000, "POP2010": 1099.000000, "POP2015": 1096.000000, "POP2020": 1108.000000, "POP2025": 1132.000000, "POP2050": 1163.000000, "CITYALT": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 2278269.688139640260488, 5593321.341036806814373 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bandar Seri Begawan", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bandar Seri Begawan", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Brunei", "SOV_A3": "BRN", "ADM0NAME": "Brunei", "ADM0_A3": "BRN", "ADM1NAME": "Brunei and Muara", "ISO_A2": "BN", "NOTE": null, "LATITUDE": 4.883331, "LONGITUDE": 114.933284, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 296500, "POP_MIN": 140000, "POP_OTHER": 222513, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 1820906.000000, "MEGANAME": null, "LS_NAME": "Bandar Seri Begawan", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 219674.000000, "MAX_POP20": 219674.000000, "MAX_POP50": 219674.000000, "MAX_POP300": 219674.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 145.000000, "MAX_AREAKM": 145.000000, "MIN_AREAMI": 56.000000, "MAX_AREAMI": 56.000000, "MIN_PERKM": 155.000000, "MAX_PERKM": 155.000000, "MIN_PERMI": 96.000000, "MAX_PERMI": 96.000000, "MIN_BBXMIN": 114.825000, "MAX_BBXMIN": 114.825000, "MIN_BBXMAX": 114.991667, "MAX_BBXMAX": 114.991667, "MIN_BBYMIN": 4.816667, "MAX_BBYMIN": 4.816667, "MIN_BBYMAX": 5.008333, "MAX_BBYMAX": 5.008333, "MEAN_BBXC": 114.908824, "MEAN_BBYC": 4.910245, "COMPARE": 0, "GN_ASCII": "Bandar Seri Begawan", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 64409.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Asia\/Brunei", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 12794314.656386315822601, 544269.278275398537517 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Sucre", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sucre", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official (const", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bolivia", "SOV_A3": "BOL", "ADM0NAME": "Bolivia", "ADM0_A3": "BOL", "ADM1NAME": "Chuquisaca", "ISO_A2": "BO", "NOTE": null, "LATITUDE": -19.040971, "LONGITUDE": -65.259516, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 224838, "POP_MIN": 221736, "POP_OTHER": 221736, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3903987.000000, "MEGANAME": null, "LS_NAME": "Sucre", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 221736.000000, "MAX_POP20": 221736.000000, "MAX_POP50": 221736.000000, "MAX_POP300": 221736.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 34.000000, "MAX_AREAKM": 34.000000, "MIN_AREAMI": 13.000000, "MAX_AREAMI": 13.000000, "MIN_PERKM": 32.000000, "MAX_PERKM": 32.000000, "MIN_PERMI": 20.000000, "MAX_PERMI": 20.000000, "MIN_BBXMIN": -65.300000, "MAX_BBXMIN": -65.300000, "MIN_BBXMAX": -65.225000, "MAX_BBXMAX": -65.225000, "MIN_BBYMIN": -19.066667, "MAX_BBYMIN": -19.066667, "MIN_BBYMAX": -18.991667, "MAX_BBYMAX": -18.991667, "MEAN_BBXC": -65.260317, "MEAN_BBYC": -19.030556, "COMPARE": 0, "GN_ASCII": "Sucre", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 224838.000000, "ELEVATION": 0.000000, "GTOPO30": 2759.000000, "TIMEZONE": "America\/La_Paz", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7264656.048977211117744, -2159760.162734644021839 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Belmopan", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Belmopan", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Belize", "SOV_A3": "BLZ", "ADM0NAME": "Belize", "ADM0_A3": "BLZ", "ADM1NAME": "Cayo", "ISO_A2": "BZ", "NOTE": null, "LATITUDE": 17.252034, "LONGITUDE": -88.767073, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 15220, "POP_MIN": 13381, "POP_OTHER": 15220, "RANK_MAX": 6, "RANK_MIN": 6, "GEONAMEID": 3582672.000000, "MEGANAME": null, "LS_NAME": "Belmopan", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 15220.000000, "MAX_POP20": 15220.000000, "MAX_POP50": 15220.000000, "MAX_POP300": 15220.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 9.000000, "MAX_AREAKM": 9.000000, "MIN_AREAMI": 3.000000, "MAX_AREAMI": 3.000000, "MIN_PERKM": 16.000000, "MAX_PERKM": 16.000000, "MIN_PERMI": 10.000000, "MAX_PERMI": 10.000000, "MIN_BBXMIN": -88.783333, "MAX_BBXMIN": -88.783333, "MIN_BBXMAX": -88.750000, "MAX_BBXMAX": -88.750000, "MIN_BBYMIN": 17.233333, "MAX_BBYMIN": 17.233333, "MIN_BBYMAX": 17.266667, "MAX_BBYMAX": 17.266667, "MEAN_BBXC": -88.767803, "MEAN_BBYC": 17.248864, "COMPARE": 0, "GN_ASCII": "Belmopan", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 13381.000000, "ELEVATION": 0.000000, "GTOPO30": 63.000000, "TIMEZONE": "America\/Belize", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9881505.365548921748996, 1950183.061272402061149 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Bangui", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bangui", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Central African Republic", "SOV_A3": "CAF", "ADM0NAME": "Central African Republic", "ADM0_A3": "CAF", "ADM1NAME": "Bangui", "ISO_A2": "CF", "NOTE": null, "LATITUDE": 4.366644, "LONGITUDE": 18.558288, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 831925, "POP_MIN": 622771, "POP_OTHER": 782274, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2389853.000000, "MEGANAME": null, "LS_NAME": "Bangui", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 792886.000000, "MAX_POP20": 792886.000000, "MAX_POP50": 831925.000000, "MAX_POP300": 831925.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 90.000000, "MAX_AREAKM": 103.000000, "MIN_AREAMI": 35.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 91.000000, "MAX_PERKM": 107.000000, "MIN_PERMI": 57.000000, "MAX_PERMI": 67.000000, "MIN_BBXMIN": 18.491667, "MAX_BBXMIN": 18.491667, "MIN_BBXMAX": 18.614651, "MAX_BBXMAX": 18.625000, "MIN_BBYMIN": 4.316667, "MAX_BBYMIN": 4.316667, "MIN_BBYMAX": 4.483333, "MAX_BBYMAX": 4.483333, "MEAN_BBXC": 18.546436, "MEAN_BBYC": 4.388157, "COMPARE": 0, "GN_ASCII": "Bangui", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 18.000000, "GN_POP": 542393.000000, "ELEVATION": 0.000000, "GTOPO30": 373.000000, "TIMEZONE": "Africa\/Bangui", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2065899.184101835591719, 486563.868510584405158 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Yaounde", "NAMEPAR": null, "NAMEALT": "Yaoundé", "DIFFASCII": 0, "NAMEASCII": "Yaounde", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Cameroon", "SOV_A3": "CMR", "ADM0NAME": "Cameroon", "ADM0_A3": "CMR", "ADM1NAME": "Centre", "ISO_A2": "CM", "NOTE": null, "LATITUDE": 3.866701, "LONGITUDE": 11.516651, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1611000, "POP_MIN": 1060587, "POP_OTHER": 1060747, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2220957.000000, "MEGANAME": "Yaoundé", "LS_NAME": "Yaounde", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1060587.000000, "MAX_POP20": 1060587.000000, "MAX_POP50": 1060587.000000, "MAX_POP300": 1060587.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 197.000000, "MAX_AREAKM": 197.000000, "MIN_AREAMI": 76.000000, "MAX_AREAMI": 76.000000, "MIN_PERKM": 116.000000, "MAX_PERKM": 116.000000, "MIN_PERMI": 72.000000, "MAX_PERMI": 72.000000, "MIN_BBXMIN": 11.433333, "MAX_BBXMIN": 11.433333, "MIN_BBXMAX": 11.600000, "MAX_BBXMAX": 11.600000, "MIN_BBYMIN": 3.775000, "MAX_BBYMIN": 3.775000, "MIN_BBYMAX": 3.983333, "MAX_BBYMAX": 3.983333, "MEAN_BBXC": 11.518344, "MEAN_BBYC": 3.865639, "COMPARE": 0, "GN_ASCII": "Yaounde", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1299369.000000, "ELEVATION": 0.000000, "GTOPO30": 733.000000, "TIMEZONE": "Africa\/Douala", "GEONAMESNO": "GeoNames match general.", "UN_FID": 9, "UN_ADM0": "Cameroon", "UN_LAT": 3.860000, "UN_LONG": 11.510000, "POP1950": 32.000000, "POP1955": 49.000000, "POP1960": 75.000000, "POP1965": 112.000000, "POP1970": 183.000000, "POP1975": 292.000000, "POP1980": 415.000000, "POP1985": 578.000000, "POP1990": 754.000000, "POP1995": 948.000000, "POP2000": 1192.000000, "POP2005": 1489.000000, "POP2010": 1611.000000, "POP2015": 1787.000000, "POP2020": 2058.000000, "POP2025": 2312.000000, "POP2050": 2549.000000, "CITYALT": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 1281811.085752649232745, 430983.363251825154293 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Tirana", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tirana", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Albania", "SOV_A3": "ALB", "ADM0NAME": "Albania", "ADM0_A3": "ALB", "ADM1NAME": "Durrës", "ISO_A2": "AL", "NOTE": null, "LATITUDE": 41.327541, "LONGITUDE": 19.818883, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 895350, "POP_MIN": 421286, "POP_OTHER": 517792, "RANK_MAX": 11, "RANK_MIN": 10, "GEONAMEID": 3183875.000000, "MEGANAME": null, "LS_NAME": "Tirana", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 530241.000000, "MAX_POP20": 530241.000000, "MAX_POP50": 530241.000000, "MAX_POP300": 530241.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 74.000000, "MAX_AREAKM": 74.000000, "MIN_AREAMI": 28.000000, "MAX_AREAMI": 28.000000, "MIN_PERKM": 80.000000, "MAX_PERKM": 80.000000, "MIN_PERMI": 50.000000, "MAX_PERMI": 50.000000, "MIN_BBXMIN": 19.733333, "MAX_BBXMIN": 19.733333, "MIN_BBXMAX": 19.875000, "MAX_BBXMAX": 19.875000, "MIN_BBYMIN": 41.275000, "MAX_BBYMIN": 41.275000, "MIN_BBYMAX": 41.400000, "MAX_BBYMAX": 41.400000, "MEAN_BBXC": 19.805556, "MEAN_BBYC": 41.339474, "COMPARE": 0, "GN_ASCII": "Tirana", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 50.000000, "GN_POP": 374801.000000, "ELEVATION": 0.000000, "GTOPO30": 103.000000, "TIMEZONE": "Europe\/Tirane", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2206227.965278423391283, 5060774.549450284801424 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Yerevan", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Yerevan", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Armenia", "SOV_A3": "ARM", "ADM0NAME": "Armenia", "ADM0_A3": "ARM", "ADM1NAME": "Erevan", "ISO_A2": "AM", "NOTE": null, "LATITUDE": 40.181151, "LONGITUDE": 44.513551, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1102000, "POP_MIN": 1093485, "POP_OTHER": 1154748, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 616052.000000, "MEGANAME": "Yerevan", "LS_NAME": "Yerevan", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1200842.000000, "MAX_POP20": 1200842.000000, "MAX_POP50": 1200842.000000, "MAX_POP300": 1200842.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 191.000000, "MAX_AREAKM": 191.000000, "MIN_AREAMI": 74.000000, "MAX_AREAMI": 74.000000, "MIN_PERKM": 166.000000, "MAX_PERKM": 166.000000, "MIN_PERMI": 103.000000, "MAX_PERMI": 103.000000, "MIN_BBXMIN": 44.391667, "MAX_BBXMIN": 44.391667, "MIN_BBXMAX": 44.600000, "MAX_BBXMAX": 44.600000, "MIN_BBYMIN": 39.925000, "MAX_BBYMIN": 39.925000, "MIN_BBYMAX": 40.241667, "MAX_BBYMAX": 40.241667, "MEAN_BBXC": 44.506293, "MEAN_BBYC": 40.127356, "COMPARE": 0, "GN_ASCII": "Yerevan", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1093485.000000, "ELEVATION": 0.000000, "GTOPO30": 1002.000000, "TIMEZONE": "Asia\/Yerevan", "GEONAMESNO": "GeoNames match general.", "UN_FID": 377, "UN_ADM0": "Armenia", "UN_LAT": 40.200000, "UN_LONG": 44.530000, "POP1950": 341.000000, "POP1955": 431.000000, "POP1960": 538.000000, "POP1965": 648.000000, "POP1970": 778.000000, "POP1975": 911.000000, "POP1980": 1042.000000, "POP1985": 1123.000000, "POP1990": 1175.000000, "POP1995": 1142.000000, "POP2000": 1111.000000, "POP2005": 1103.000000, "POP2010": 1102.000000, "POP2015": 1102.000000, "POP2020": 1102.000000, "POP2025": 1102.000000, "POP2050": 1102.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4955009.262185702100396, 4892585.159834013320506 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Baku", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Baku", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Azerbaijan", "SOV_A3": "AZE", "ADM0NAME": "Azerbaijan", "ADM0_A3": "AZE", "ADM1NAME": "Baki", "ISO_A2": "AZ", "NOTE": null, "LATITUDE": 40.395272, "LONGITUDE": 49.862217, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 2122300, "POP_MIN": 1892000, "POP_OTHER": 1518801, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 587084.000000, "MEGANAME": "Baku", "LS_NAME": "Baku", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1581087.000000, "MAX_POP20": 1581475.000000, "MAX_POP50": 1581475.000000, "MAX_POP300": 1581475.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 246.000000, "MAX_AREAKM": 249.000000, "MIN_AREAMI": 95.000000, "MAX_AREAMI": 96.000000, "MIN_PERKM": 174.000000, "MAX_PERKM": 179.000000, "MIN_PERMI": 108.000000, "MAX_PERMI": 111.000000, "MIN_BBXMIN": 49.700000, "MAX_BBXMIN": 49.716667, "MIN_BBXMAX": 50.016667, "MAX_BBXMAX": 50.016667, "MIN_BBYMIN": 40.316667, "MAX_BBYMIN": 40.316667, "MIN_BBYMAX": 40.500000, "MAX_BBYMAX": 40.500000, "MEAN_BBXC": 49.881373, "MEAN_BBYC": 40.416320, "COMPARE": 0, "GN_ASCII": "Baku", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 1116513.000000, "ELEVATION": 0.000000, "GTOPO30": 30.000000, "TIMEZONE": "Asia\/Baku", "GEONAMESNO": "GeoNames match general.", "UN_FID": 200, "UN_ADM0": "Azerbaijan", "UN_LAT": 40.320000, "UN_LONG": 49.810000, "POP1950": 897.000000, "POP1955": 940.000000, "POP1960": 1005.000000, "POP1965": 1132.000000, "POP1970": 1274.000000, "POP1975": 1429.000000, "POP1980": 1574.000000, "POP1985": 1660.000000, "POP1990": 1733.000000, "POP1995": 1766.000000, "POP2000": 1806.000000, "POP2005": 1867.000000, "POP2010": 1892.000000, "POP2015": 1931.000000, "POP2020": 2006.000000, "POP2025": 2097.000000, "POP2050": 2187.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5550420.012293126434088, 4923833.914924901910126 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Phnom Penh", "NAMEPAR": null, "NAMEALT": "Phnum Pénh", "DIFFASCII": 0, "NAMEASCII": "Phnom Penh", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Cambodia", "SOV_A3": "KHM", "ADM0NAME": "Cambodia", "ADM0_A3": "KHM", "ADM1NAME": "Phnom Penh", "ISO_A2": "KH", "NOTE": null, "LATITUDE": 11.550030, "LONGITUDE": 104.916634, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1466000, "POP_MIN": 1466000, "POP_OTHER": 1604086, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1821306.000000, "MEGANAME": "Phnum Pénh", "LS_NAME": "Phnom Penh", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1551977.000000, "MAX_POP20": 1551977.000000, "MAX_POP50": 1551977.000000, "MAX_POP300": 1551977.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 464.000000, "MAX_AREAKM": 464.000000, "MIN_AREAMI": 179.000000, "MAX_AREAMI": 179.000000, "MIN_PERKM": 703.000000, "MAX_PERKM": 703.000000, "MIN_PERMI": 437.000000, "MAX_PERMI": 437.000000, "MIN_BBXMIN": 104.441667, "MAX_BBXMIN": 104.441667, "MIN_BBXMAX": 105.000000, "MAX_BBXMAX": 105.000000, "MIN_BBYMIN": 11.291667, "MAX_BBYMIN": 11.291667, "MIN_BBYMAX": 11.691667, "MAX_BBYMAX": 11.691667, "MEAN_BBXC": 104.785770, "MEAN_BBYC": 11.488418, "COMPARE": 0, "GN_ASCII": "Phnom Penh", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1573544.000000, "ELEVATION": 0.000000, "GTOPO30": 16.000000, "TIMEZONE": "Asia\/Phnom_Penh", "GEONAMESNO": "GeoNames match general.", "UN_FID": 5, "UN_ADM0": "Cambodia", "UN_LAT": 11.560000, "UN_LONG": 104.910000, "POP1950": 364.000000, "POP1955": 376.000000, "POP1960": 389.000000, "POP1965": 436.000000, "POP1970": 900.000000, "POP1975": 100.000000, "POP1980": 238.000000, "POP1985": 427.000000, "POP1990": 615.000000, "POP1995": 836.000000, "POP2000": 1160.000000, "POP2005": 1363.000000, "POP2010": 1466.000000, "POP2015": 1651.000000, "POP2020": 2028.000000, "POP2025": 2457.000000, "POP2050": 2911.000000, "CITYALT": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 11679049.714045329019427, 1294762.200896853813902 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "La Paz", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "La Paz", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Administrative", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Bolivia", "SOV_A3": "BOL", "ADM0NAME": "Bolivia", "ADM0_A3": "BOL", "ADM1NAME": "La Paz", "ISO_A2": "BO", "NOTE": null, "LATITUDE": -16.497974, "LONGITUDE": -68.149985, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1590000, "POP_MIN": 812799, "POP_OTHER": 4400, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 3911925.000000, "MEGANAME": "La Paz", "LS_NAME": "La Paz3", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1590482.000000, "MAX_POP20": 1590482.000000, "MAX_POP50": 1590482.000000, "MAX_POP300": 1590482.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 181.000000, "MAX_AREAKM": 181.000000, "MIN_AREAMI": 70.000000, "MAX_AREAMI": 70.000000, "MIN_PERKM": 121.000000, "MAX_PERKM": 121.000000, "MIN_PERMI": 75.000000, "MAX_PERMI": 75.000000, "MIN_BBXMIN": -68.258333, "MAX_BBXMIN": -68.258333, "MIN_BBXMAX": -68.050000, "MAX_BBXMAX": -68.050000, "MIN_BBYMIN": -16.575000, "MAX_BBYMIN": -16.575000, "MIN_BBYMAX": -16.433333, "MAX_BBYMAX": -16.433333, "MEAN_BBXC": -68.157765, "MEAN_BBYC": -16.506439, "COMPARE": 0, "GN_ASCII": "La Paz", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 812799.000000, "ELEVATION": 0.000000, "GTOPO30": 3829.000000, "TIMEZONE": "America\/La_Paz", "GEONAMESNO": "GeoNames match general.", "UN_FID": 440, "UN_ADM0": "Bolivia", "UN_LAT": 24.150000, "UN_LONG": -110.300000, "POP1950": 319.000000, "POP1955": 374.000000, "POP1960": 438.000000, "POP1965": 512.000000, "POP1970": 600.000000, "POP1975": 703.000000, "POP1980": 809.000000, "POP1985": 927.000000, "POP1990": 1062.000000, "POP1995": 1267.000000, "POP2000": 1390.000000, "POP2005": 1527.000000, "POP2010": 1590.000000, "POP2015": 1692.000000, "POP2020": 1864.000000, "POP2025": 2027.000000, "POP2050": 2178.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7586638.260964347980917, -1862237.697093687253073 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Cotonou", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Cotonou", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto, admin", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Benin", "SOV_A3": "BEN", "ADM0NAME": "Benin", "ADM0_A3": "BEN", "ADM1NAME": "Ouémé", "ISO_A2": "BJ", "NOTE": null, "LATITUDE": 6.400009, "LONGITUDE": 2.519991, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 762000, "POP_MIN": 690584, "POP_OTHER": 1060640, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2394819.000000, "MEGANAME": "Cotonou", "LS_NAME": "Cotonou", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1042928.000000, "MAX_POP20": 1076471.000000, "MAX_POP50": 1076471.000000, "MAX_POP300": 1113489.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 192.000000, "MAX_AREAKM": 337.000000, "MIN_AREAMI": 74.000000, "MAX_AREAMI": 130.000000, "MIN_PERKM": 177.000000, "MAX_PERKM": 341.000000, "MIN_PERMI": 110.000000, "MAX_PERMI": 212.000000, "MIN_BBXMIN": 2.200000, "MAX_BBXMIN": 2.296132, "MIN_BBXMAX": 2.632958, "MAX_BBXMAX": 2.858333, "MIN_BBYMIN": 6.341667, "MAX_BBYMIN": 6.341667, "MIN_BBYMAX": 6.583333, "MAX_BBYMAX": 6.641667, "MEAN_BBXC": 2.392241, "MEAN_BBYC": 6.416506, "COMPARE": 0, "GN_ASCII": "Cotonou", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 14.000000, "GN_POP": 690584.000000, "ELEVATION": 0.000000, "GTOPO30": 53.000000, "TIMEZONE": "Africa\/Porto-Novo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 174, "UN_ADM0": "Benin", "UN_LAT": 6.350000, "UN_LONG": 2.430000, "POP1950": 20.000000, "POP1955": 27.000000, "POP1960": 73.000000, "POP1965": 111.000000, "POP1970": 163.000000, "POP1975": 240.000000, "POP1980": 337.000000, "POP1985": 412.000000, "POP1990": 504.000000, "POP1995": 577.000000, "POP2000": 642.000000, "POP2005": 720.000000, "POP2010": 762.000000, "POP2015": 841.000000, "POP2020": 1004.000000, "POP2025": 1196.000000, "POP2050": 1411.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 280307.458314776420593, 714149.853620466892608 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Sofia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sofia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Bulgaria", "SOV_A3": "BGR", "ADM0NAME": "Bulgaria", "ADM0_A3": "BGR", "ADM1NAME": "Grad Sofiya", "ISO_A2": "BG", "NOTE": null, "LATITUDE": 42.683349, "LONGITUDE": 23.316654, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1185000, "POP_MIN": 874827, "POP_OTHER": 871735, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 727011.000000, "MEGANAME": "Sofia", "LS_NAME": "Sofia", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 874827.000000, "MAX_POP20": 874827.000000, "MAX_POP50": 874827.000000, "MAX_POP300": 874827.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 217.000000, "MAX_AREAKM": 217.000000, "MIN_AREAMI": 84.000000, "MAX_AREAMI": 84.000000, "MIN_PERKM": 174.000000, "MAX_PERKM": 174.000000, "MIN_PERMI": 108.000000, "MAX_PERMI": 108.000000, "MIN_BBXMIN": 23.208333, "MAX_BBXMIN": 23.208333, "MIN_BBXMAX": 23.450000, "MAX_BBXMAX": 23.450000, "MIN_BBYMIN": 42.575000, "MAX_BBYMIN": 42.575000, "MIN_BBYMAX": 42.800000, "MAX_BBYMAX": 42.800000, "MEAN_BBXC": 23.328319, "MEAN_BBYC": 42.682340, "COMPARE": 0, "GN_ASCII": "Sofia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 42.000000, "GN_POP": 1152556.000000, "ELEVATION": 0.000000, "GTOPO30": 558.000000, "TIMEZONE": "Europe\/Sofia", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": "Bulgaria", "UN_LAT": 42.700000, "UN_LONG": 23.330000, "POP1950": 522.000000, "POP1955": 616.000000, "POP1960": 708.000000, "POP1965": 806.000000, "POP1970": 888.000000, "POP1975": 977.000000, "POP1980": 1074.000000, "POP1985": 1181.000000, "POP1990": 1191.000000, "POP1995": 1168.000000, "POP2000": 1128.000000, "POP2005": 1166.000000, "POP2010": 1185.000000, "POP2015": 1212.000000, "POP2020": 1233.000000, "POP2025": 1236.000000, "POP2050": 1236.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2595381.439486680086702, 5264192.597865896299481 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Minsk", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Minsk", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Belarus", "SOV_A3": "BLR", "ADM0NAME": "Belarus", "ADM0_A3": "BLR", "ADM1NAME": "Minsk", "ISO_A2": "BY", "NOTE": null, "LATITUDE": 53.899977, "LONGITUDE": 27.566627, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1805000, "POP_MIN": 1577138, "POP_OTHER": 1557919, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 625144.000000, "MEGANAME": "Minsk", "LS_NAME": "Minsk", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1577138.000000, "MAX_POP20": 1577138.000000, "MAX_POP50": 1577138.000000, "MAX_POP300": 1577138.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 211.000000, "MAX_AREAKM": 211.000000, "MIN_AREAMI": 82.000000, "MAX_AREAMI": 82.000000, "MIN_PERKM": 196.000000, "MAX_PERKM": 196.000000, "MIN_PERMI": 122.000000, "MAX_PERMI": 122.000000, "MIN_BBXMIN": 27.408333, "MAX_BBXMIN": 27.408333, "MIN_BBXMAX": 27.716667, "MAX_BBXMAX": 27.716667, "MIN_BBYMIN": 53.800000, "MAX_BBYMIN": 53.800000, "MIN_BBYMAX": 53.983333, "MAX_BBYMAX": 53.983333, "MEAN_BBXC": 27.562159, "MEAN_BBYC": 53.893169, "COMPARE": 0, "GN_ASCII": "Minsk", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 1742124.000000, "ELEVATION": 0.000000, "GTOPO30": 199.000000, "TIMEZONE": "Europe\/Minsk", "GEONAMESNO": "GeoNames match general.", "UN_FID": 4, "UN_ADM0": "Belarus", "UN_LAT": 53.890000, "UN_LONG": 27.570000, "POP1950": 284.000000, "POP1955": 414.000000, "POP1960": 551.000000, "POP1965": 719.000000, "POP1970": 932.000000, "POP1975": 1120.000000, "POP1980": 1318.000000, "POP1985": 1474.000000, "POP1990": 1607.000000, "POP1995": 1649.000000, "POP2000": 1700.000000, "POP2005": 1775.000000, "POP2010": 1805.000000, "POP2015": 1846.000000, "POP2020": 1879.000000, "POP2025": 1883.000000, "POP2050": 1883.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3068486.285822868347168, 7151603.577913112938404 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Thimphu", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Thimphu", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bhutan", "SOV_A3": "BTN", "ADM0NAME": "Bhutan", "ADM0_A3": "BTN", "ADM1NAME": "Thimphu", "ISO_A2": "BT", "NOTE": null, "LATITUDE": 27.472986, "LONGITUDE": 89.639014, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 98676, "POP_MIN": 79185, "POP_OTHER": 0, "RANK_MAX": 8, "RANK_MIN": 8, "GEONAMEID": 1252416.000000, "MEGANAME": null, "LS_NAME": "Thimphu", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 274538.000000, "MAX_POP20": 274538.000000, "MAX_POP50": 275382.000000, "MAX_POP300": 275382.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 37.000000, "MAX_AREAKM": 38.000000, "MIN_AREAMI": 14.000000, "MAX_AREAMI": 15.000000, "MIN_PERKM": 65.000000, "MAX_PERKM": 68.000000, "MIN_PERMI": 40.000000, "MAX_PERMI": 42.000000, "MIN_BBXMIN": 89.591667, "MAX_BBXMIN": 89.591667, "MIN_BBXMAX": 89.675000, "MAX_BBXMAX": 89.683333, "MIN_BBYMIN": 27.408333, "MAX_BBYMIN": 27.408333, "MIN_BBYMAX": 27.558333, "MAX_BBYMAX": 27.558333, "MEAN_BBXC": 89.637539, "MEAN_BBYC": 27.477943, "COMPARE": 0, "GN_ASCII": "Thimphu", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 20.000000, "GN_POP": 98676.000000, "ELEVATION": 2320.000000, "GTOPO30": 2737.000000, "TIMEZONE": "Asia\/Thimphu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 9978569.397813286632299, 3182690.385781932156533 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Gaborone", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Gaborone", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Botswana", "SOV_A3": "BWA", "ADM0NAME": "Botswana", "ADM0_A3": "BWA", "ADM1NAME": "South-East", "ISO_A2": "BW", "NOTE": null, "LATITUDE": -24.646313, "LONGITUDE": 25.911948, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 208411, "POP_MIN": 159243, "POP_OTHER": 158896, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 933773.000000, "MEGANAME": null, "LS_NAME": "Gaborone", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 159243.000000, "MAX_POP20": 159243.000000, "MAX_POP50": 159243.000000, "MAX_POP300": 159243.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 72.000000, "MAX_AREAKM": 72.000000, "MIN_AREAMI": 28.000000, "MAX_AREAMI": 28.000000, "MIN_PERKM": 59.000000, "MAX_PERKM": 59.000000, "MIN_PERMI": 37.000000, "MAX_PERMI": 37.000000, "MIN_BBXMIN": 25.858333, "MAX_BBXMIN": 25.858333, "MIN_BBXMAX": 25.991667, "MAX_BBXMAX": 25.991667, "MIN_BBYMIN": -24.700000, "MAX_BBYMIN": -24.700000, "MIN_BBYMAX": -24.600000, "MAX_BBYMAX": -24.600000, "MEAN_BBXC": 25.925091, "MEAN_BBYC": -24.656793, "COMPARE": 0, "GN_ASCII": "Gaborone", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 208411.000000, "ELEVATION": 0.000000, "GTOPO30": 1006.000000, "TIMEZONE": "Africa\/Gaborone", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2884504.833810416981578, -2832364.332015068735927 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Canberra", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Canberra", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Australia", "SOV_A3": "AUS", "ADM0NAME": "Australia", "ADM0_A3": "AUS", "ADM1NAME": "Australian Capital Territory", "ISO_A2": "AU", "NOTE": null, "LATITUDE": -35.283029, "LONGITUDE": 149.129026, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 327700, "POP_MIN": 234032, "POP_OTHER": 0, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2172517.000000, "MEGANAME": null, "LS_NAME": "Canberra", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 234032.000000, "MAX_POP20": 244896.000000, "MAX_POP50": 244896.000000, "MAX_POP300": 244896.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 226.000000, "MAX_AREAKM": 251.000000, "MIN_AREAMI": 87.000000, "MAX_AREAMI": 97.000000, "MIN_PERKM": 175.000000, "MAX_PERKM": 202.000000, "MIN_PERMI": 109.000000, "MAX_PERMI": 126.000000, "MIN_BBXMIN": 149.000000, "MAX_BBXMIN": 149.000000, "MIN_BBXMAX": 149.200000, "MAX_BBXMAX": 149.200000, "MIN_BBYMIN": -35.483333, "MAX_BBYMIN": -35.455764, "MIN_BBYMAX": -35.183333, "MAX_BBYMAX": -35.183333, "MEAN_BBXC": 149.094107, "MEAN_BBYC": -35.309627, "COMPARE": 0, "GN_ASCII": "Canberra", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 327700.000000, "ELEVATION": 0.000000, "GTOPO30": 609.000000, "TIMEZONE": "Australia\/Sydney", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 16600967.26401212438941, -4202410.422065063379705 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Ouagadougou", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ouagadougou", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Burkina Faso", "SOV_A3": "BFA", "ADM0NAME": "Burkina Faso", "ADM0_A3": "BFA", "ADM1NAME": "Kadiogo", "ISO_A2": "BF", "NOTE": null, "LATITUDE": 12.370316, "LONGITUDE": -1.524724, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1149000, "POP_MIN": 835457, "POP_OTHER": 713874, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2357048.000000, "MEGANAME": "Ouagadougou", "LS_NAME": "Ouagadougou", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 835457.000000, "MAX_POP20": 835457.000000, "MAX_POP50": 835457.000000, "MAX_POP300": 835457.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 236.000000, "MAX_AREAKM": 236.000000, "MIN_AREAMI": 91.000000, "MAX_AREAMI": 91.000000, "MIN_PERKM": 133.000000, "MAX_PERKM": 133.000000, "MIN_PERMI": 83.000000, "MAX_PERMI": 83.000000, "MIN_BBXMIN": -1.616667, "MAX_BBXMIN": -1.616667, "MIN_BBXMAX": -1.433333, "MAX_BBXMAX": -1.433333, "MIN_BBYMIN": 12.275000, "MAX_BBYMIN": 12.275000, "MIN_BBYMAX": 12.483333, "MAX_BBYMAX": 12.483333, "MEAN_BBXC": -1.521746, "MEAN_BBYC": 12.365975, "COMPARE": 0, "GN_ASCII": "Ouagadougou", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 53.000000, "GN_POP": 1086505.000000, "ELEVATION": 0.000000, "GTOPO30": 307.000000, "TIMEZONE": "Africa\/Ouagadougou", "GEONAMESNO": "GeoNames match general.", "UN_FID": 578, "UN_ADM0": "Burkina Faso", "UN_LAT": 12.480000, "UN_LONG": -1.670000, "POP1950": 33.000000, "POP1955": 46.000000, "POP1960": 59.000000, "POP1965": 82.000000, "POP1970": 111.000000, "POP1975": 149.000000, "POP1980": 257.000000, "POP1985": 424.000000, "POP1990": 537.000000, "POP1995": 667.000000, "POP2000": 828.000000, "POP2005": 1044.000000, "POP2010": 1149.000000, "POP2015": 1324.000000, "POP2020": 1676.000000, "POP2025": 2111.000000, "POP2050": 2632.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -169948.084142062085448, 1388103.780284017091617 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Sarajevo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sarajevo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bosnia and Herzegovina", "SOV_A3": "BIH", "ADM0NAME": "Bosnia and Herzegovina", "ADM0_A3": "BIH", "ADM1NAME": "Sarajevo", "ISO_A2": "BA", "NOTE": null, "LATITUDE": 43.850022, "LONGITUDE": 18.383002, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 696731, "POP_MIN": 628902, "POP_OTHER": 627065, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3191281.000000, "MEGANAME": null, "LS_NAME": "Sarajevo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 628902.000000, "MAX_POP20": 628902.000000, "MAX_POP50": 628902.000000, "MAX_POP300": 628902.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 104.000000, "MAX_AREAKM": 104.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 112.000000, "MAX_PERKM": 112.000000, "MIN_PERMI": 70.000000, "MAX_PERMI": 70.000000, "MIN_BBXMIN": 18.216667, "MAX_BBXMIN": 18.216667, "MIN_BBXMAX": 18.466667, "MAX_BBXMAX": 18.466667, "MIN_BBYMIN": 43.783333, "MAX_BBYMIN": 43.783333, "MIN_BBYMAX": 43.900000, "MAX_BBYMAX": 43.900000, "MEAN_BBXC": 18.351272, "MEAN_BBYC": 43.846183, "COMPARE": 0, "GN_ASCII": "Sarajevo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 696731.000000, "ELEVATION": 0.000000, "GTOPO30": 545.000000, "TIMEZONE": "Europe\/Sarajevo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2046386.384817142738029, 5442262.062606294639409 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Naypyidaw", "NAMEPAR": null, "NAMEALT": "Nay Pyi Taw", "DIFFASCII": 0, "NAMEASCII": "Naypyidaw", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Myanmar", "SOV_A3": "MMR", "ADM0NAME": "Myanmar", "ADM0_A3": "MMR", "ADM1NAME": "Mandalay", "ISO_A2": "MM", "NOTE": null, "LATITUDE": 19.766557, "LONGITUDE": 96.118619, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 930000, "POP_MIN": 194824, "POP_OTHER": 0, "RANK_MAX": 11, "RANK_MIN": 9, "GEONAMEID": 6611854.000000, "MEGANAME": "Nay Pyi Taw", "LS_NAME": "Naypyidaw", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 194824.000000, "MAX_POP20": 194824.000000, "MAX_POP50": 194824.000000, "MAX_POP300": 194824.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 89.000000, "MAX_AREAKM": 89.000000, "MIN_AREAMI": 34.000000, "MAX_AREAMI": 34.000000, "MIN_PERKM": 149.000000, "MAX_PERKM": 149.000000, "MIN_PERMI": 93.000000, "MAX_PERMI": 93.000000, "MIN_BBXMIN": 96.141667, "MAX_BBXMIN": 96.141667, "MIN_BBXMAX": 96.275000, "MAX_BBXMAX": 96.275000, "MIN_BBYMIN": 19.633333, "MAX_BBYMIN": 19.633333, "MIN_BBYMAX": 19.783333, "MAX_BBYMAX": 19.783333, "MEAN_BBXC": 96.205833, "MEAN_BBYC": 19.720606, "COMPARE": 0, "GN_ASCII": "Nay Pyi Taw", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 108.000000, "TIMEZONE": "Asia\/Rangoon", "GEONAMESNO": "GeoNames match general.", "UN_FID": 2, "UN_ADM0": "Myanmar", "UN_LAT": 19.750000, "UN_LONG": 96.100000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 57.000000, "POP2010": 930.000000, "POP2015": 1024.000000, "POP2020": 1177.000000, "POP2025": 1321.000000, "POP2050": 1461.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 10699659.058438329026103, 2245626.986136067658663 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Nukualofa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nukualofa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Tonga", "SOV_A3": "TON", "ADM0NAME": "Tonga", "ADM0_A3": "TON", "ADM1NAME": null, "ISO_A2": "TO", "NOTE": null, "LATITUDE": -21.138512, "LONGITUDE": -175.220564, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 42620, "POP_MIN": 23658, "POP_OTHER": 42620, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 4032402.000000, "MEGANAME": null, "LS_NAME": "Nukualofa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 42620.000000, "MAX_POP20": 42620.000000, "MAX_POP50": 42620.000000, "MAX_POP300": 42620.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 15.000000, "MAX_AREAKM": 15.000000, "MIN_AREAMI": 6.000000, "MAX_AREAMI": 6.000000, "MIN_PERKM": 27.000000, "MAX_PERKM": 27.000000, "MIN_PERMI": 17.000000, "MAX_PERMI": 17.000000, "MIN_BBXMIN": -175.233333, "MAX_BBXMIN": -175.233333, "MIN_BBXMAX": -175.166667, "MAX_BBXMAX": -175.166667, "MIN_BBYMIN": -21.166667, "MAX_BBYMIN": -21.166667, "MIN_BBYMAX": -21.125000, "MAX_BBYMAX": -21.125000, "MEAN_BBXC": -175.206798, "MEAN_BBYC": -21.142325, "COMPARE": 0, "GN_ASCII": "Nuku`alofa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 22400.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Pacific\/Tongatapu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -19505464.014158237725496, -2408402.390758979599923 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Hargeysa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Hargeysa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Somaliland", "SOV_A3": "SOL", "ADM0NAME": "Somaliland", "ADM0_A3": "SOL", "ADM1NAME": null, "ISO_A2": "-99", "NOTE": null, "LATITUDE": 9.560022, "LONGITUDE": 44.065310, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 477876, "POP_MIN": 247018, "POP_OTHER": 247018, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 57289.000000, "MEGANAME": null, "LS_NAME": "Hargeysa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 247018.000000, "MAX_POP20": 247018.000000, "MAX_POP50": 247018.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 40.000000, "MAX_AREAKM": 40.000000, "MIN_AREAMI": 15.000000, "MAX_AREAMI": 15.000000, "MIN_PERKM": 37.000000, "MAX_PERKM": 37.000000, "MIN_PERMI": 23.000000, "MAX_PERMI": 23.000000, "MIN_BBXMIN": 44.025000, "MAX_BBXMIN": 44.025000, "MIN_BBXMAX": 44.100000, "MAX_BBXMAX": 44.100000, "MIN_BBYMIN": 9.516667, "MAX_BBYMIN": 9.516667, "MIN_BBYMAX": 9.591667, "MAX_BBYMAX": 9.591667, "MEAN_BBXC": 44.064450, "MEAN_BBYC": 9.557004, "COMPARE": 0, "GN_ASCII": "Hargeysa", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 20.000000, "GN_POP": 477876.000000, "ELEVATION": 0.000000, "GTOPO30": 1247.000000, "TIMEZONE": "Africa\/Mogadishu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4905327.872702932916582, 1069189.478441674495116 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Victoria", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Victoria", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Seychelles", "SOV_A3": "SYC", "ADM0NAME": "Seychelles", "ADM0_A3": "SYC", "ADM1NAME": null, "ISO_A2": "SC", "NOTE": null, "LATITUDE": -4.616632, "LONGITUDE": 55.449990, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 33576, "POP_MIN": 22881, "POP_OTHER": 33737, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 241131.000000, "MEGANAME": null, "LS_NAME": "Victoria4", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 33576.000000, "MAX_POP20": 33576.000000, "MAX_POP50": 33576.000000, "MAX_POP300": 33576.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 15.000000, "MAX_AREAKM": 15.000000, "MIN_AREAMI": 6.000000, "MAX_AREAMI": 6.000000, "MIN_PERKM": 26.000000, "MAX_PERKM": 26.000000, "MIN_PERMI": 16.000000, "MAX_PERMI": 16.000000, "MIN_BBXMIN": 55.416667, "MAX_BBXMIN": 55.416667, "MIN_BBXMAX": 55.475000, "MAX_BBXMAX": 55.475000, "MIN_BBYMIN": -4.650000, "MAX_BBYMIN": -4.650000, "MIN_BBYMAX": -4.600000, "MAX_BBYMAX": -4.600000, "MEAN_BBXC": 55.450000, "MEAN_BBYC": -4.626389, "COMPARE": 0, "GN_ASCII": "Victoria", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 22881.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Indian\/Mahe", "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6172664.627424227073789, -514478.085974426765461 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Sao Tome", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sao Tome", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Sao Tome and Principe", "SOV_A3": "STP", "ADM0NAME": "Sao Tome and Principe", "ADM0_A3": "STP", "ADM1NAME": null, "ISO_A2": "ST", "NOTE": null, "LATITUDE": 0.333402, "LONGITUDE": 6.733325, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 88219, "POP_MIN": 56166, "POP_OTHER": 88219, "RANK_MAX": 8, "RANK_MIN": 8, "GEONAMEID": 3388092.000000, "MEGANAME": null, "LS_NAME": "Sao Tome", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 88219.000000, "MAX_POP20": 88219.000000, "MAX_POP50": 88219.000000, "MAX_POP300": 88219.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 32.000000, "MAX_AREAKM": 32.000000, "MIN_AREAMI": 12.000000, "MAX_AREAMI": 12.000000, "MIN_PERKM": 44.000000, "MAX_PERKM": 44.000000, "MIN_PERMI": 28.000000, "MAX_PERMI": 28.000000, "MIN_BBXMIN": 6.691667, "MAX_BBXMIN": 6.691667, "MIN_BBXMAX": 6.750000, "MAX_BBXMAX": 6.750000, "MIN_BBYMIN": 0.300000, "MAX_BBYMIN": 0.300000, "MIN_BBYMAX": 0.391667, "MAX_BBYMAX": 0.391667, "MEAN_BBXC": 6.719032, "MEAN_BBYC": 0.338176, "COMPARE": 0, "GN_ASCII": "Sao Tome", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 22.000000, "GN_POP": 6137.000000, "ELEVATION": 0.000000, "GTOPO30": 151.000000, "TIMEZONE": "America\/Fortaleza", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 749550.32740363641642, 37114.363549359724857 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Apia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Apia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Samoa", "SOV_A3": "WSM", "ADM0NAME": "Samoa", "ADM0_A3": "WSM", "ADM1NAME": null, "ISO_A2": "WS", "NOTE": null, "LATITUDE": -13.841545, "LONGITUDE": -171.738642, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 61916, "POP_MIN": 37708, "POP_OTHER": 0, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 3689793.000000, "MEGANAME": null, "LS_NAME": "Apia", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 61916.000000, "MAX_POP20": 61916.000000, "MAX_POP50": 61916.000000, "MAX_POP300": 61916.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 39.000000, "MAX_AREAKM": 39.000000, "MIN_AREAMI": 15.000000, "MAX_AREAMI": 15.000000, "MIN_PERKM": 51.000000, "MAX_PERKM": 51.000000, "MIN_PERMI": 32.000000, "MAX_PERMI": 32.000000, "MIN_BBXMIN": -171.825000, "MAX_BBXMIN": -171.825000, "MIN_BBXMAX": -171.716667, "MAX_BBXMAX": -171.716667, "MIN_BBYMIN": -13.866667, "MAX_BBYMIN": -13.866667, "MIN_BBYMAX": -13.800000, "MAX_BBYMAX": -13.800000, "MEAN_BBXC": -171.781117, "MEAN_BBYC": -13.837855, "COMPARE": 0, "GN_ASCII": "Apia", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 24.000000, "GN_POP": 6940.000000, "ELEVATION": 0.000000, "GTOPO30": 1561.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -19117858.133398212492466, -1556043.666840595658869 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Valletta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Valletta", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Malta", "SOV_A3": "MLT", "ADM0NAME": "Malta", "ADM0_A3": "MLT", "ADM1NAME": null, "ISO_A2": "MT", "NOTE": null, "LATITUDE": 35.899732, "LONGITUDE": 14.514711, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 368250, "POP_MIN": 6966, "POP_OTHER": 336174, "RANK_MAX": 10, "RANK_MIN": 5, "GEONAMEID": 2562305.000000, "MEGANAME": null, "LS_NAME": "Valletta", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 336921.000000, "MAX_POP20": 336921.000000, "MAX_POP50": 336921.000000, "MAX_POP300": 336921.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 106.000000, "MAX_AREAKM": 106.000000, "MIN_AREAMI": 41.000000, "MAX_AREAMI": 41.000000, "MIN_PERKM": 87.000000, "MAX_PERKM": 87.000000, "MIN_PERMI": 54.000000, "MAX_PERMI": 54.000000, "MIN_BBXMIN": 14.408333, "MAX_BBXMIN": 14.408333, "MIN_BBXMAX": 14.550000, "MAX_BBXMAX": 14.550000, "MIN_BBYMIN": 35.816667, "MAX_BBYMIN": 35.816667, "MIN_BBYMAX": 35.941667, "MAX_BBYMAX": 35.941667, "MEAN_BBXC": 14.483034, "MEAN_BBYC": 35.881672, "COMPARE": 0, "GN_ASCII": "Valletta", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 6794.000000, "ELEVATION": 0.000000, "GTOPO30": 90.000000, "TIMEZONE": "Europe\/Malta", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1615770.198715842561796, 4286833.472594822756946 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Male", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Male", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Maldives", "SOV_A3": "MDV", "ADM0NAME": "Maldives", "ADM0_A3": "MDV", "ADM1NAME": null, "ISO_A2": "MV", "NOTE": null, "LATITUDE": 4.166708, "LONGITUDE": 73.499947, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 112927, "POP_MIN": 103693, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 3174186.000000, "MEGANAME": null, "LS_NAME": "Male", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 112927.000000, "MAX_POP20": 112927.000000, "MAX_POP50": 112927.000000, "MAX_POP300": 112927.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 3.000000, "MAX_AREAKM": 3.000000, "MIN_AREAMI": 1.000000, "MAX_AREAMI": 1.000000, "MIN_PERKM": 7.000000, "MAX_PERKM": 7.000000, "MIN_PERMI": 5.000000, "MAX_PERMI": 5.000000, "MIN_BBXMIN": 73.500000, "MAX_BBXMIN": 73.500000, "MIN_BBXMAX": 73.516667, "MAX_BBXMAX": 73.516667, "MIN_BBYMIN": 4.166667, "MAX_BBYMIN": 4.166667, "MIN_BBYMAX": 4.183333, "MAX_BBYMAX": 4.183333, "MEAN_BBXC": 73.508333, "MEAN_BBYC": 4.175000, "COMPARE": 0, "GN_ASCII": "Male", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 17.000000, "GN_POP": 2138.000000, "ELEVATION": 0.000000, "GTOPO30": 672.000000, "TIMEZONE": "Europe\/Rome", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8181976.725465105846524, 464245.215895868197549 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Jerusalem", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Jerusalem", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto capita", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Israel", "SOV_A3": "ISR", "ADM0NAME": "Israel", "ADM0_A3": "ISR", "ADM1NAME": "Jerusalem", "ISO_A2": "IL", "NOTE": null, "LATITUDE": 31.778408, "LONGITUDE": 35.206626, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1029300, "POP_MIN": 801000, "POP_OTHER": 1072567, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 281184.000000, "MEGANAME": null, "LS_NAME": "Jerusalem", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1073782.000000, "MAX_POP20": 1073782.000000, "MAX_POP50": 1073782.000000, "MAX_POP300": 1073782.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 246.000000, "MAX_AREAKM": 246.000000, "MIN_AREAMI": 95.000000, "MAX_AREAMI": 95.000000, "MIN_PERKM": 239.000000, "MAX_PERKM": 239.000000, "MIN_PERMI": 149.000000, "MAX_PERMI": 149.000000, "MIN_BBXMIN": 35.100000, "MAX_BBXMIN": 35.100000, "MIN_BBXMAX": 35.316667, "MAX_BBXMAX": 35.316667, "MIN_BBYMIN": 31.683333, "MAX_BBYMIN": 31.683333, "MIN_BBYMAX": 31.991667, "MAX_BBYMAX": 31.991667, "MEAN_BBXC": 35.210651, "MEAN_BBYC": 31.809862, "COMPARE": 0, "GN_ASCII": "Jerusalem", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 6.000000, "GN_POP": 714000.000000, "ELEVATION": 0.000000, "GTOPO30": 795.000000, "TIMEZONE": "Asia\/Jerusalem", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3919183.671588784083724, 3734258.228347964119166 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Praia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Praia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Cape Verde", "SOV_A3": "CPV", "ADM0NAME": "Cape Verde", "ADM0_A3": "CPV", "ADM1NAME": null, "ISO_A2": "CV", "NOTE": null, "LATITUDE": 14.916698, "LONGITUDE": -23.516689, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 113364, "POP_MIN": 88859, "POP_OTHER": 89205, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 3374333.000000, "MEGANAME": null, "LS_NAME": "Praia", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 88859.000000, "MAX_POP20": 88859.000000, "MAX_POP50": 88859.000000, "MAX_POP300": 88859.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 37.000000, "MAX_AREAKM": 37.000000, "MIN_AREAMI": 14.000000, "MAX_AREAMI": 14.000000, "MIN_PERKM": 40.000000, "MAX_PERKM": 40.000000, "MIN_PERMI": 25.000000, "MAX_PERMI": 25.000000, "MIN_BBXMIN": -23.541667, "MAX_BBXMIN": -23.541667, "MIN_BBXMAX": -23.483333, "MAX_BBXMAX": -23.483333, "MIN_BBYMIN": 14.900000, "MAX_BBYMIN": 14.900000, "MIN_BBYMAX": 14.983333, "MAX_BBYMAX": 14.983333, "MEAN_BBXC": -23.514907, "MEAN_BBYC": 14.938056, "COMPARE": 0, "GN_ASCII": "Praia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 113364.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Atlantic\/Cape_Verde", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -2617865.831818942911923, 1679601.750674691051245 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Nassau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nassau", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bahamas, The", "SOV_A3": "BHS", "ADM0NAME": "The Bahamas", "ADM0_A3": "BHS", "ADM1NAME": null, "ISO_A2": "BS", "NOTE": null, "LATITUDE": 25.083390, "LONGITUDE": -77.350044, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 227940, "POP_MIN": 160966, "POP_OTHER": 0, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 3571824.000000, "MEGANAME": null, "LS_NAME": "Nassau", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 160966.000000, "MAX_POP20": 160966.000000, "MAX_POP50": 160966.000000, "MAX_POP300": 160966.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 84.000000, "MAX_AREAKM": 84.000000, "MIN_AREAMI": 32.000000, "MAX_AREAMI": 32.000000, "MIN_PERKM": 66.000000, "MAX_PERKM": 66.000000, "MIN_PERMI": 41.000000, "MAX_PERMI": 41.000000, "MIN_BBXMIN": -77.400000, "MAX_BBXMIN": -77.400000, "MIN_BBXMAX": -77.258333, "MAX_BBXMAX": -77.258333, "MIN_BBYMIN": 25.000000, "MAX_BBYMIN": 25.000000, "MIN_BBYMAX": 25.091667, "MAX_BBYMAX": 25.091667, "MEAN_BBXC": -77.335571, "MEAN_BBYC": 25.044830, "COMPARE": 0, "GN_ASCII": "Nassau", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 23.000000, "GN_POP": 227940.000000, "ELEVATION": 0.000000, "GTOPO30": 3.000000, "TIMEZONE": "America\/Nassau", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8610567.4869030341506, 2885990.701995562296361 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Nicosia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nicosia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Capital of both", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Cyprus", "SOV_A3": "CYP", "ADM0NAME": "Cyprus", "ADM0_A3": "CYP", "ADM1NAME": null, "ISO_A2": "CY", "NOTE": null, "LATITUDE": 35.166676, "LONGITUDE": 33.366635, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 224300, "POP_MIN": 200452, "POP_OTHER": 222985, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 146268.000000, "MEGANAME": null, "LS_NAME": "Nicosia", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 224300.000000, "MAX_POP20": 224300.000000, "MAX_POP50": 224300.000000, "MAX_POP300": 224300.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 128.000000, "MAX_AREAKM": 128.000000, "MIN_AREAMI": 49.000000, "MAX_AREAMI": 49.000000, "MIN_PERKM": 109.000000, "MAX_PERKM": 109.000000, "MIN_PERMI": 68.000000, "MAX_PERMI": 68.000000, "MIN_BBXMIN": 33.275000, "MAX_BBXMIN": 33.275000, "MIN_BBXMAX": 33.425000, "MAX_BBXMAX": 33.425000, "MIN_BBYMIN": 35.041667, "MAX_BBYMIN": 35.041667, "MIN_BBYMAX": 35.225000, "MAX_BBYMAX": 35.225000, "MEAN_BBXC": 33.352244, "MEAN_BBYC": 35.150000, "COMPARE": 0, "GN_ASCII": "Nicosia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 200452.000000, "ELEVATION": 0.000000, "GTOPO30": 128.000000, "TIMEZONE": "Asia\/Nicosia", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3714356.805040701758116, 4186554.940504567231983 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Hanoi", "NAMEPAR": null, "NAMEALT": "Hà Noi", "DIFFASCII": 0, "NAMEASCII": "Hanoi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Vietnam", "SOV_A3": "VNM", "ADM0NAME": "Vietnam", "ADM0_A3": "VNM", "ADM1NAME": "Thái Nguyên", "ISO_A2": "VN", "NOTE": null, "LATITUDE": 21.033327, "LONGITUDE": 105.850014, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4378000, "POP_MIN": 1431270, "POP_OTHER": 5466347, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1581130.000000, "MEGANAME": "Hà Noi", "LS_NAME": "Hanoi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5620806.000000, "MAX_POP20": 7346227.000000, "MAX_POP50": 16406759.000000, "MAX_POP300": 23700631.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 2512.000000, "MAX_AREAKM": 14049.000000, "MIN_AREAMI": 970.000000, "MAX_AREAMI": 5424.000000, "MIN_PERKM": 1175.000000, "MAX_PERKM": 10267.000000, "MIN_PERMI": 730.000000, "MAX_PERMI": 6380.000000, "MIN_BBXMIN": 104.975000, "MAX_BBXMIN": 105.616287, "MIN_BBXMAX": 106.229400, "MAX_BBXMAX": 106.808333, "MIN_BBYMIN": 19.283333, "MAX_BBYMIN": 20.620237, "MIN_BBYMAX": 21.319209, "MAX_BBYMAX": 21.783333, "MEAN_BBXC": 105.892881, "MEAN_BBYC": 20.873406, "COMPARE": 0, "GN_ASCII": "Ha Noi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 44.000000, "GN_POP": 1431270.000000, "ELEVATION": 0.000000, "GTOPO30": 26.000000, "TIMEZONE": "Asia\/Ho_Chi_Minh", "GEONAMESNO": "GeoNames match general.", "UN_FID": 451, "UN_ADM0": "Viet Nam", "UN_LAT": 21.030000, "UN_LONG": 105.820000, "POP1950": 280.000000, "POP1955": 425.000000, "POP1960": 644.000000, "POP1965": 917.000000, "POP1970": 1307.000000, "POP1975": 1884.000000, "POP1980": 2606.000000, "POP1985": 2854.000000, "POP1990": 3126.000000, "POP1995": 3424.000000, "POP2000": 3752.000000, "POP2005": 4170.000000, "POP2010": 4378.000000, "POP2015": 4723.000000, "POP2020": 5357.000000, "POP2025": 6036.000000, "POP2050": 6754.000000, "CITYALT": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 11782953.06919870711863, 2396085.02647371776402 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Ankara", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ankara", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Turkey", "SOV_A3": "TUR", "ADM0NAME": "Turkey", "ADM0_A3": "TUR", "ADM1NAME": "Ankara", "ISO_A2": "TR", "NOTE": null, "LATITUDE": 39.927239, "LONGITUDE": 32.864392, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3716000, "POP_MIN": 3307379, "POP_OTHER": 3267576, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 323786.000000, "MEGANAME": "Ankara", "LS_NAME": "Ankara", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3307379.000000, "MAX_POP20": 3306823.000000, "MAX_POP50": 3306823.000000, "MAX_POP300": 3306823.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 531.000000, "MAX_AREAKM": 534.000000, "MIN_AREAMI": 205.000000, "MAX_AREAMI": 206.000000, "MIN_PERKM": 355.000000, "MAX_PERKM": 365.000000, "MIN_PERMI": 221.000000, "MAX_PERMI": 227.000000, "MIN_BBXMIN": 32.425000, "MAX_BBXMIN": 32.425000, "MIN_BBXMAX": 33.008333, "MAX_BBXMAX": 33.008333, "MIN_BBYMIN": 39.841667, "MAX_BBYMIN": 39.841667, "MIN_BBYMAX": 40.116667, "MAX_BBYMAX": 40.116667, "MEAN_BBXC": 32.753878, "MEAN_BBYC": 39.957843, "COMPARE": 0, "GN_ASCII": "Ankara", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 68.000000, "GN_POP": 3517182.000000, "ELEVATION": 850.000000, "GTOPO30": 889.000000, "TIMEZONE": "Europe\/Istanbul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 500, "UN_ADM0": "Turkey", "UN_LAT": 39.920000, "UN_LONG": 32.850000, "POP1950": 281.000000, "POP1955": 439.000000, "POP1960": 635.000000, "POP1965": 954.000000, "POP1970": 1341.000000, "POP1975": 1709.000000, "POP1980": 1891.000000, "POP1985": 2213.000000, "POP1990": 2561.000000, "POP1995": 2842.000000, "POP2000": 3179.000000, "POP2005": 3572.000000, "POP2010": 3716.000000, "POP2015": 3908.000000, "POP2020": 4178.000000, "POP2025": 4403.000000, "POP2050": 4589.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3658230.730713502503932, 4855656.885846357792616 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Budapest", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Budapest", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Hungary", "SOV_A3": "HUN", "ADM0NAME": "Hungary", "ADM0_A3": "HUN", "ADM1NAME": "Budapest", "ISO_A2": "HU", "NOTE": null, "LATITUDE": 47.500006, "LONGITUDE": 19.083321, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1679000, "POP_MIN": 1679000, "POP_OTHER": 1718895, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3054643.000000, "MEGANAME": "Budapest", "LS_NAME": "Budapest", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1788020.000000, "MAX_POP20": 1788020.000000, "MAX_POP50": 1788020.000000, "MAX_POP300": 1788020.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 556.000000, "MAX_AREAKM": 556.000000, "MIN_AREAMI": 215.000000, "MAX_AREAMI": 215.000000, "MIN_PERKM": 460.000000, "MAX_PERKM": 460.000000, "MIN_PERMI": 286.000000, "MAX_PERMI": 286.000000, "MIN_BBXMIN": 18.850000, "MAX_BBXMIN": 18.850000, "MIN_BBXMAX": 19.416667, "MAX_BBXMAX": 19.416667, "MIN_BBYMIN": 47.350000, "MAX_BBYMIN": 47.350000, "MIN_BBYMAX": 47.658333, "MAX_BBYMAX": 47.658333, "MEAN_BBXC": 19.106763, "MEAN_BBYC": 47.478602, "COMPARE": 0, "GN_ASCII": "Budapest", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 1696128.000000, "ELEVATION": 0.000000, "GTOPO30": 100.000000, "TIMEZONE": "Europe\/Budapest", "GEONAMESNO": "GeoNames match general.", "UN_FID": 211, "UN_ADM0": "Hungary", "UN_LAT": 47.510000, "UN_LONG": 19.090000, "POP1950": 1618.000000, "POP1955": 1714.000000, "POP1960": 1811.000000, "POP1965": 1878.000000, "POP1970": 1946.000000, "POP1975": 2005.000000, "POP1980": 2057.000000, "POP1985": 2036.000000, "POP1990": 2005.000000, "POP1995": 1893.000000, "POP2000": 1787.000000, "POP2005": 1693.000000, "POP2010": 1679.000000, "POP2015": 1664.000000, "POP2020": 1655.000000, "POP2025": 1655.000000, "POP2050": 1655.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2124128.92845992045477, 6024393.794077049009502 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Sanaa", "NAMEPAR": null, "NAMEALT": "Sana'a'", "DIFFASCII": 0, "NAMEASCII": "Sanaa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Yemen", "SOV_A3": "YEM", "ADM0NAME": "Yemen", "ADM0_A3": "YEM", "ADM1NAME": "Amanat Al Asimah", "ISO_A2": "YE", "NOTE": null, "LATITUDE": 15.354733, "LONGITUDE": 44.206593, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2008000, "POP_MIN": 1835853, "POP_OTHER": 1742507, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 71137.000000, "MEGANAME": "Sana'a'", "LS_NAME": "Sanaa", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1835853.000000, "MAX_POP20": 1835853.000000, "MAX_POP50": 1835853.000000, "MAX_POP300": 1835853.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 160.000000, "MAX_AREAKM": 160.000000, "MIN_AREAMI": 62.000000, "MAX_AREAMI": 62.000000, "MIN_PERKM": 132.000000, "MAX_PERKM": 132.000000, "MIN_PERMI": 82.000000, "MAX_PERMI": 82.000000, "MIN_BBXMIN": 44.150000, "MAX_BBXMIN": 44.150000, "MIN_BBXMAX": 44.258333, "MAX_BBXMAX": 44.258333, "MIN_BBYMIN": 15.266667, "MAX_BBYMIN": 15.266667, "MIN_BBYMAX": 15.508333, "MAX_BBYMAX": 15.508333, "MEAN_BBXC": 44.206615, "MEAN_BBYC": 15.376031, "COMPARE": 0, "GN_ASCII": "Sanaa", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 587, "UN_ADM0": "Yemen", "UN_LAT": 15.360000, "UN_LONG": 44.200000, "POP1950": 46.000000, "POP1955": 58.000000, "POP1960": 72.000000, "POP1965": 89.000000, "POP1970": 111.000000, "POP1975": 141.000000, "POP1980": 238.000000, "POP1985": 402.000000, "POP1990": 653.000000, "POP1995": 1034.000000, "POP2000": 1365.000000, "POP2005": 1801.000000, "POP2010": 2008.000000, "POP2015": 2345.000000, "POP2020": 2955.000000, "POP2025": 3636.000000, "POP2050": 4382.000000, "CITYALT": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 4920838.853060969151556, 1730340.721774931298569 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Bucharest", "NAMEPAR": "Bucuresti", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bucharest", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Romania", "SOV_A3": "ROU", "ADM0NAME": "Romania", "ADM0_A3": "ROU", "ADM1NAME": "Bucharest", "ISO_A2": "RO", "NOTE": null, "LATITUDE": 44.433372, "LONGITUDE": 26.099947, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1942000, "POP_MIN": 1742194, "POP_OTHER": 1636574, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 683506.000000, "MEGANAME": "Bucuresti", "LS_NAME": "Bucharest", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1742194.000000, "MAX_POP20": 1742194.000000, "MAX_POP50": 1742194.000000, "MAX_POP300": 1742194.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 345.000000, "MAX_AREAKM": 345.000000, "MIN_AREAMI": 133.000000, "MAX_AREAMI": 133.000000, "MIN_PERKM": 357.000000, "MAX_PERKM": 357.000000, "MIN_PERMI": 222.000000, "MAX_PERMI": 222.000000, "MIN_BBXMIN": 25.866667, "MAX_BBXMIN": 25.866667, "MIN_BBXMAX": 26.250000, "MAX_BBXMAX": 26.250000, "MIN_BBYMIN": 44.316667, "MAX_BBYMIN": 44.316667, "MIN_BBYMAX": 44.641667, "MAX_BBYMAX": 44.641667, "MEAN_BBXC": 26.082182, "MEAN_BBYC": 44.444110, "COMPARE": 0, "GN_ASCII": "Bucuresti", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 1877155.000000, "ELEVATION": 0.000000, "GTOPO30": 71.000000, "TIMEZONE": "Europe\/Bucharest", "GEONAMESNO": "GeoNames match general.", "UN_FID": 422, "UN_ADM0": "Romania", "UN_LAT": 44.430000, "UN_LONG": 26.120000, "POP1950": 652.000000, "POP1955": 856.000000, "POP1960": 1002.000000, "POP1965": 1154.000000, "POP1970": 1396.000000, "POP1975": 1702.000000, "POP1980": 1865.000000, "POP1985": 1950.000000, "POP1990": 2040.000000, "POP1995": 2018.000000, "POP2000": 1949.000000, "POP2005": 1936.000000, "POP2010": 1942.000000, "POP2015": 1947.000000, "POP2020": 1949.000000, "POP2025": 1949.000000, "POP2050": 1949.000000, "CITYALT": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 2905216.159260855522007, 5533057.598962007090449 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Damascus", "NAMEPAR": null, "NAMEALT": "Dimashq", "DIFFASCII": 0, "NAMEASCII": "Damascus", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Syria", "SOV_A3": "SYR", "ADM0NAME": "Syria", "ADM0_A3": "SYR", "ADM1NAME": "Damascus", "ISO_A2": "SY", "NOTE": null, "LATITUDE": 33.500034, "LONGITUDE": 36.299996, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2466000, "POP_MIN": 2466000, "POP_OTHER": 3344577, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 170654.000000, "MEGANAME": "Dimashq", "LS_NAME": "Damascus", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3398649.000000, "MAX_POP20": 3865606.000000, "MAX_POP50": 3865606.000000, "MAX_POP300": 3865606.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 532.000000, "MAX_AREAKM": 705.000000, "MIN_AREAMI": 205.000000, "MAX_AREAMI": 272.000000, "MIN_PERKM": 608.000000, "MAX_PERKM": 768.000000, "MIN_PERMI": 378.000000, "MAX_PERMI": 477.000000, "MIN_BBXMIN": 36.050000, "MAX_BBXMIN": 36.050000, "MIN_BBXMAX": 36.474923, "MAX_BBXMAX": 36.550000, "MIN_BBYMIN": 33.283333, "MAX_BBYMIN": 33.283333, "MIN_BBYMAX": 33.611711, "MAX_BBYMAX": 33.625000, "MEAN_BBXC": 36.275119, "MEAN_BBYC": 33.474283, "COMPARE": 0, "GN_ASCII": "Damascus", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 493, "UN_ADM0": "Syrian Arab Republic", "UN_LAT": 33.490000, "UN_LONG": 36.290000, "POP1950": 367.000000, "POP1955": 461.000000, "POP1960": 579.000000, "POP1965": 727.000000, "POP1970": 914.000000, "POP1975": 1122.000000, "POP1980": 1376.000000, "POP1985": 1546.000000, "POP1990": 1691.000000, "POP1995": 1849.000000, "POP2000": 2044.000000, "POP2005": 2330.000000, "POP2010": 2466.000000, "POP2015": 2675.000000, "POP2020": 2981.000000, "POP2025": 3293.000000, "POP2050": 3605.000000, "CITYALT": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 4040680.446174797136337, 3962124.520875200629234 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Lisbon", "NAMEPAR": "Lisboa", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lisbon", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Portugal", "SOV_A3": "PRT", "ADM0NAME": "Portugal", "ADM0_A3": "PRT", "ADM1NAME": "Lisboa", "ISO_A2": "PT", "NOTE": null, "LATITUDE": 38.722723, "LONGITUDE": -9.144866, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 2812000, "POP_MIN": 517802, "POP_OTHER": 1795582, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2267057.000000, "MEGANAME": "Lisboa", "LS_NAME": "Lisbon", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1832316.000000, "MAX_POP20": 1831921.000000, "MAX_POP50": 1831921.000000, "MAX_POP300": 1831921.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 506.000000, "MAX_AREAKM": 508.000000, "MIN_AREAMI": 196.000000, "MAX_AREAMI": 196.000000, "MIN_PERKM": 355.000000, "MAX_PERKM": 360.000000, "MIN_PERMI": 221.000000, "MAX_PERMI": 224.000000, "MIN_BBXMIN": -9.466667, "MAX_BBXMIN": -9.466667, "MIN_BBXMAX": -8.958333, "MAX_BBXMAX": -8.958333, "MIN_BBYMIN": 38.675000, "MAX_BBYMIN": 38.675000, "MIN_BBYMAX": 39.008333, "MAX_BBYMAX": 39.008333, "MEAN_BBXC": -9.232769, "MEAN_BBYC": 38.783256, "COMPARE": 0, "GN_ASCII": "Lisbon", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 14.000000, "GN_POP": 517802.000000, "ELEVATION": 0.000000, "GTOPO30": 56.000000, "TIMEZONE": "Europe\/Lisbon", "GEONAMESNO": "GeoNames match general.", "UN_FID": 419, "UN_ADM0": "Portugal", "UN_LAT": 38.720000, "UN_LONG": -9.120000, "POP1950": 1304.000000, "POP1955": 1405.000000, "POP1960": 1514.000000, "POP1965": 1657.000000, "POP1970": 1817.000000, "POP1975": 2103.000000, "POP1980": 2449.000000, "POP1985": 2518.000000, "POP1990": 2537.000000, "POP1995": 2600.000000, "POP2000": 2672.000000, "POP2005": 2762.000000, "POP2010": 2812.000000, "POP2015": 2890.000000, "POP2020": 2996.000000, "POP2025": 3058.000000, "POP2050": 3086.000000, "CITYALT": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -1018218.472489569103345, 4682309.117462361231446 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Khartoum", "NAMEPAR": null, "NAMEALT": "Al-Khartum", "DIFFASCII": 0, "NAMEASCII": "Khartoum", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Sudan", "SOV_A3": "SDN", "ADM0NAME": "Sudan", "ADM0_A3": "SDN", "ADM1NAME": "Khartoum", "ISO_A2": "SD", "NOTE": null, "LATITUDE": 15.588078, "LONGITUDE": 32.534179, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4754000, "POP_MIN": 1974647, "POP_OTHER": 2325931, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 379252.000000, "MEGANAME": "Al-Khartum", "LS_NAME": "Khartoum", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2395309.000000, "MAX_POP20": 2395309.000000, "MAX_POP50": 2395309.000000, "MAX_POP300": 4542697.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 348.000000, "MAX_AREAKM": 630.000000, "MIN_AREAMI": 134.000000, "MAX_AREAMI": 243.000000, "MIN_PERKM": 237.000000, "MAX_PERKM": 424.000000, "MIN_PERMI": 147.000000, "MAX_PERMI": 263.000000, "MIN_BBXMIN": 32.341667, "MAX_BBXMIN": 32.458333, "MIN_BBXMAX": 32.691667, "MAX_BBXMAX": 32.691667, "MIN_BBYMIN": 15.325000, "MAX_BBYMIN": 15.325000, "MIN_BBYMAX": 15.699422, "MAX_BBYMAX": 15.825000, "MEAN_BBXC": 32.550462, "MEAN_BBYC": 15.559101, "COMPARE": 0, "GN_ASCII": "Khartoum", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 29.000000, "GN_POP": 1974647.000000, "ELEVATION": 0.000000, "GTOPO30": 378.000000, "TIMEZONE": "Africa\/Khartoum", "GEONAMESNO": "GeoNames match general.", "UN_FID": 466, "UN_ADM0": "Sudan", "UN_LAT": 15.550000, "UN_LONG": 32.520000, "POP1950": 183.000000, "POP1955": 252.000000, "POP1960": 347.000000, "POP1965": 477.000000, "POP1970": 657.000000, "POP1975": 886.000000, "POP1980": 1164.000000, "POP1985": 1611.000000, "POP1990": 2360.000000, "POP1995": 3242.000000, "POP2000": 3949.000000, "POP2005": 4518.000000, "POP2010": 4754.000000, "POP2015": 5185.000000, "POP2020": 6077.000000, "POP2025": 7017.000000, "POP2050": 7937.000000, "CITYALT": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 3621471.654230827465653, 1757293.494148231809959 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Oslo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Oslo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Kingdom of Norway", "SOV_A3": "NOR", "ADM0NAME": "Norway", "ADM0_A3": "NOR", "ADM1NAME": "Oslo", "ISO_A2": "NO", "NOTE": null, "LATITUDE": 59.916690, "LONGITUDE": 10.749979, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 835000, "POP_MIN": 580000, "POP_OTHER": 701804, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3143244.000000, "MEGANAME": "Oslo", "LS_NAME": "Oslo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 731563.000000, "MAX_POP20": 731563.000000, "MAX_POP50": 762374.000000, "MAX_POP300": 762374.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 329.000000, "MAX_AREAKM": 362.000000, "MIN_AREAMI": 127.000000, "MAX_AREAMI": 140.000000, "MIN_PERKM": 340.000000, "MAX_PERKM": 390.000000, "MIN_PERMI": 211.000000, "MAX_PERMI": 243.000000, "MIN_BBXMIN": 10.333333, "MAX_BBXMIN": 10.440355, "MIN_BBXMAX": 11.091667, "MAX_BBXMAX": 11.091667, "MIN_BBYMIN": 59.708333, "MAX_BBYMIN": 59.708333, "MIN_BBYMAX": 60.066667, "MAX_BBYMAX": 60.066667, "MEAN_BBXC": 10.756508, "MEAN_BBYC": 59.906118, "COMPARE": 0, "GN_ASCII": "Oslo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 580000.000000, "ELEVATION": 0.000000, "GTOPO30": 11.000000, "TIMEZONE": "Europe\/Oslo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 397, "UN_ADM0": "Norway", "UN_LAT": 59.930000, "UN_LONG": 10.710000, "POP1950": 468.000000, "POP1955": 533.000000, "POP1960": 578.000000, "POP1965": 610.000000, "POP1970": 643.000000, "POP1975": 644.000000, "POP1980": 643.000000, "POP1985": 662.000000, "POP1990": 684.000000, "POP1995": 729.000000, "POP2000": 774.000000, "POP2005": 816.000000, "POP2010": 835.000000, "POP2015": 858.000000, "POP2020": 885.000000, "POP2025": 909.000000, "POP2050": 936.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1196465.599258610513061, 8381645.35926803201437 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Warsaw", "NAMEPAR": "Warszawa", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Warsaw", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Poland", "SOV_A3": "POL", "ADM0NAME": "Poland", "ADM0_A3": "POL", "ADM1NAME": "Masovian", "ISO_A2": "PL", "NOTE": null, "LATITUDE": 52.250001, "LONGITUDE": 21.000000, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1707000, "POP_MIN": 1702139, "POP_OTHER": 2012431, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 756135.000000, "MEGANAME": "Warszawa", "LS_NAME": "Warsaw", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2129163.000000, "MAX_POP20": 2129163.000000, "MAX_POP50": 2129163.000000, "MAX_POP300": 2129163.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 802.000000, "MAX_AREAKM": 802.000000, "MIN_AREAMI": 310.000000, "MAX_AREAMI": 310.000000, "MIN_PERKM": 759.000000, "MAX_PERKM": 759.000000, "MIN_PERMI": 471.000000, "MAX_PERMI": 471.000000, "MIN_BBXMIN": 20.666667, "MAX_BBXMIN": 20.666667, "MIN_BBXMAX": 21.358333, "MAX_BBXMAX": 21.358333, "MIN_BBYMIN": 52.033333, "MAX_BBYMIN": 52.033333, "MIN_BBYMAX": 52.433333, "MAX_BBYMAX": 52.433333, "MEAN_BBXC": 21.031458, "MEAN_BBYC": 52.230916, "COMPARE": 0, "GN_ASCII": "Warsaw", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 78.000000, "GN_POP": 1702139.000000, "ELEVATION": 0.000000, "GTOPO30": 94.000000, "TIMEZONE": "Europe\/Warsaw", "GEONAMESNO": "GeoNames match general.", "UN_FID": 418, "UN_ADM0": "Poland", "UN_LAT": 52.240000, "UN_LONG": 21.010000, "POP1950": 768.000000, "POP1955": 942.000000, "POP1960": 1119.000000, "POP1965": 1212.000000, "POP1970": 1300.000000, "POP1975": 1444.000000, "POP1980": 1565.000000, "POP1985": 1596.000000, "POP1990": 1628.000000, "POP1995": 1652.000000, "POP2000": 1666.000000, "POP2005": 1693.000000, "POP2010": 1707.000000, "POP2015": 1724.000000, "POP2020": 1735.000000, "POP2025": 1736.000000, "POP2050": 1736.000000, "CITYALT": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 2337492.644695055671036, 6845809.440340418368578 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Pyongyang", "NAMEPAR": null, "NAMEALT": "P'yongyang", "DIFFASCII": 0, "NAMEASCII": "Pyongyang", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Korea, North", "SOV_A3": "PRK", "ADM0NAME": "North Korea", "ADM0_A3": "PRK", "ADM1NAME": "P'yongyang", "ISO_A2": "KP", "NOTE": null, "LATITUDE": 39.019439, "LONGITUDE": 125.754691, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3300000, "POP_MIN": 2498797, "POP_OTHER": 2483216, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1871859.000000, "MEGANAME": "P'yongyang", "LS_NAME": "Pyongyang", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2498797.000000, "MAX_POP20": 2498797.000000, "MAX_POP50": 2498797.000000, "MAX_POP300": 2498797.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 446.000000, "MAX_AREAKM": 447.000000, "MIN_AREAMI": 172.000000, "MAX_AREAMI": 173.000000, "MIN_PERKM": 510.000000, "MAX_PERKM": 511.000000, "MIN_PERMI": 317.000000, "MAX_PERMI": 318.000000, "MIN_BBXMIN": 125.608333, "MAX_BBXMIN": 125.608333, "MIN_BBXMAX": 125.891667, "MAX_BBXMAX": 125.891667, "MIN_BBYMIN": 38.825000, "MAX_BBYMIN": 38.825000, "MIN_BBYMAX": 39.191667, "MAX_BBYMAX": 39.191667, "MEAN_BBXC": 125.742428, "MEAN_BBYC": 38.996997, "COMPARE": 0, "GN_ASCII": "Pyongyang", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 3222000.000000, "ELEVATION": 0.000000, "GTOPO30": 13.000000, "TIMEZONE": "Asia\/Pyongyang", "GEONAMESNO": "GeoNames match general.", "UN_FID": 327, "UN_ADM0": "Democratic People's Republic of Korea", "UN_LAT": 39.020000, "UN_LONG": 125.750000, "POP1950": 516.000000, "POP1955": 577.000000, "POP1960": 646.000000, "POP1965": 769.000000, "POP1970": 987.000000, "POP1975": 1348.000000, "POP1980": 1842.000000, "POP1985": 2195.000000, "POP1990": 2526.000000, "POP1995": 2838.000000, "POP2000": 3117.000000, "POP2005": 3265.000000, "POP2010": 3300.000000, "POP2015": 3346.000000, "POP2020": 3434.000000, "POP2025": 3537.000000, "POP2050": 3630.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13998731.523114377632737, 4724735.190090122632682 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Dar es Salaam", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dar es Salaam", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto capita", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "United Republic of Tanzania", "SOV_A3": "TZA", "ADM0NAME": "Tanzania", "ADM0_A3": "TZA", "ADM1NAME": "Dar-Es-Salaam", "ISO_A2": "TZ", "NOTE": null, "LATITUDE": -6.800013, "LONGITUDE": 39.268342, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2930000, "POP_MIN": 2698652, "POP_OTHER": 2757835, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 160263.000000, "MEGANAME": "Dar es Salaam", "LS_NAME": "Dar es Salaam", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2757507.000000, "MAX_POP20": 2757507.000000, "MAX_POP50": 2757507.000000, "MAX_POP300": 2757507.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 211.000000, "MAX_AREAKM": 211.000000, "MIN_AREAMI": 81.000000, "MAX_AREAMI": 81.000000, "MIN_PERKM": 153.000000, "MAX_PERKM": 153.000000, "MIN_PERMI": 95.000000, "MAX_PERMI": 95.000000, "MIN_BBXMIN": 39.150000, "MAX_BBXMIN": 39.150000, "MIN_BBXMAX": 39.325000, "MAX_BBXMAX": 39.325000, "MIN_BBYMIN": -6.933333, "MAX_BBYMIN": -6.933333, "MIN_BBYMAX": -6.725000, "MAX_BBYMAX": -6.725000, "MEAN_BBXC": 39.239180, "MEAN_BBYC": -6.833434, "COMPARE": 0, "GN_ASCII": "Dar es Salaam", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 23.000000, "GN_POP": 2698652.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Africa\/Dar_es_Salaam", "GEONAMESNO": "GeoNames match general.", "UN_FID": 523, "UN_ADM0": "United Republic of Tanzania", "UN_LAT": -6.810000, "UN_LONG": 39.250000, "POP1950": 67.000000, "POP1955": 110.000000, "POP1960": 162.000000, "POP1965": 233.000000, "POP1970": 357.000000, "POP1975": 572.000000, "POP1980": 836.000000, "POP1985": 1046.000000, "POP1990": 1316.000000, "POP1995": 1668.000000, "POP2000": 2116.000000, "POP2005": 2679.000000, "POP2010": 2930.000000, "POP2015": 3319.000000, "POP2020": 4020.000000, "POP2025": 4804.000000, "POP2050": 5688.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4371115.205524006858468, -758539.143979472806677 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Dublin", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dublin", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Ireland", "SOV_A3": "IRL", "ADM0NAME": "Ireland", "ADM0_A3": "IRL", "ADM1NAME": "Dublin", "ISO_A2": "IE", "NOTE": null, "LATITUDE": 53.333061, "LONGITUDE": -6.248906, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1059000, "POP_MIN": 968976, "POP_OTHER": 22478, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2964574.000000, "MEGANAME": "Dublin", "LS_NAME": "Dublin2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 968976.000000, "MAX_POP20": 968976.000000, "MAX_POP50": 968976.000000, "MAX_POP300": 968976.000000, "MAX_POP310": 968976.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 351.000000, "MAX_AREAKM": 351.000000, "MIN_AREAMI": 135.000000, "MAX_AREAMI": 135.000000, "MIN_PERKM": 250.000000, "MAX_PERKM": 250.000000, "MIN_PERMI": 155.000000, "MAX_PERMI": 155.000000, "MIN_BBXMIN": -6.533333, "MAX_BBXMIN": -6.533333, "MIN_BBXMAX": -6.041667, "MAX_BBXMAX": -6.041667, "MIN_BBYMIN": 53.175000, "MAX_BBYMIN": 53.175000, "MIN_BBYMAX": 53.433333, "MAX_BBYMAX": 53.433333, "MEAN_BBXC": -6.278983, "MEAN_BBYC": 53.329717, "COMPARE": 0, "GN_ASCII": "Dublin", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 1024027.000000, "ELEVATION": 0.000000, "GTOPO30": 9.000000, "TIMEZONE": "Europe\/Dublin", "GEONAMESNO": "GeoNames match general.", "UN_FID": 302, "UN_ADM0": "Ireland", "UN_LAT": 53.340000, "UN_LONG": -6.250000, "POP1950": 626.000000, "POP1955": 647.000000, "POP1960": 661.000000, "POP1965": 723.000000, "POP1970": 771.000000, "POP1975": 833.000000, "POP1980": 903.000000, "POP1985": 920.000000, "POP1990": 916.000000, "POP1995": 946.000000, "POP2000": 989.000000, "POP2005": 1037.000000, "POP2010": 1059.000000, "POP2015": 1098.000000, "POP2020": 1177.000000, "POP2025": 1257.000000, "POP2050": 1332.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -695841.610500684008002, 7045207.162612814456224 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Monrovia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Monrovia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Liberia", "SOV_A3": "LBR", "ADM0NAME": "Liberia", "ADM0_A3": "LBR", "ADM1NAME": "Montserrado", "ISO_A2": "LR", "NOTE": null, "LATITUDE": 6.310557, "LONGITUDE": -10.804752, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1041000, "POP_MIN": 785662, "POP_OTHER": 806416, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2274895.000000, "MEGANAME": "Monrovia", "LS_NAME": "Monrovia", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 785662.000000, "MAX_POP20": 781295.000000, "MAX_POP50": 781295.000000, "MAX_POP300": 781295.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 141.000000, "MAX_AREAKM": 152.000000, "MIN_AREAMI": 54.000000, "MAX_AREAMI": 59.000000, "MIN_PERKM": 164.000000, "MAX_PERKM": 184.000000, "MIN_PERMI": 102.000000, "MAX_PERMI": 115.000000, "MIN_BBXMIN": -10.816667, "MAX_BBXMIN": -10.816667, "MIN_BBXMAX": -10.658333, "MAX_BBXMAX": -10.658333, "MIN_BBYMIN": 6.225000, "MAX_BBYMIN": 6.225000, "MIN_BBYMAX": 6.400000, "MAX_BBYMAX": 6.400000, "MEAN_BBXC": -10.734923, "MEAN_BBYC": 6.317829, "COMPARE": 0, "GN_ASCII": "Monrovia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 14.000000, "GN_POP": 939524.000000, "ELEVATION": 0.000000, "GTOPO30": 30.000000, "TIMEZONE": "Africa\/Monrovia", "GEONAMESNO": "GeoNames match general.", "UN_FID": 342, "UN_ADM0": "Liberia", "UN_LAT": 6.300000, "UN_LONG": -10.790000, "POP1950": 15.000000, "POP1955": 34.000000, "POP1960": 75.000000, "POP1965": 121.000000, "POP1970": 164.000000, "POP1975": 226.000000, "POP1980": 325.000000, "POP1985": 514.000000, "POP1990": 1042.000000, "POP1995": 464.000000, "POP2000": 836.000000, "POP2005": 1140.000000, "POP2010": 1041.000000, "POP2015": 1185.000000, "POP2020": 1457.000000, "POP2025": 1753.000000, "POP2050": 2083.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1202212.700562158366665, 704363.361534279305488 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Kuala Lumpur", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kuala Lumpur", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official and le", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Malaysia", "SOV_A3": "MYS", "ADM0NAME": "Malaysia", "ADM0_A3": "MYS", "ADM1NAME": "Selangor", "ISO_A2": "MY", "NOTE": null, "LATITUDE": 3.166666, "LONGITUDE": 101.699983, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1448000, "POP_MIN": 1448000, "POP_OTHER": 2667990, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1735161.000000, "MEGANAME": "Kuala Lumpur", "LS_NAME": "Kuala Lumpur", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2750755.000000, "MAX_POP20": 2750755.000000, "MAX_POP50": 3468789.000000, "MAX_POP300": 4983714.000000, "MAX_POP310": 4983714.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 666.000000, "MAX_AREAKM": 1700.000000, "MIN_AREAMI": 257.000000, "MAX_AREAMI": 657.000000, "MIN_PERKM": 350.000000, "MAX_PERKM": 1111.000000, "MIN_PERMI": 217.000000, "MAX_PERMI": 690.000000, "MIN_BBXMIN": 101.358333, "MAX_BBXMIN": 101.491667, "MIN_BBXMAX": 101.841667, "MAX_BBXMAX": 101.891667, "MIN_BBYMIN": 2.700000, "MAX_BBYMIN": 3.040173, "MIN_BBYMAX": 3.475000, "MAX_BBYMAX": 3.475000, "MEAN_BBXC": 101.644598, "MEAN_BBYC": 3.131431, "COMPARE": 0, "GN_ASCII": "Kuala Lumpur", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 14.000000, "GN_POP": 1453975.000000, "ELEVATION": 0.000000, "GTOPO30": 62.000000, "TIMEZONE": "Asia\/Kuala_Lumpur", "GEONAMESNO": "GeoNames match general.", "UN_FID": 348, "UN_ADM0": "Malaysia", "UN_LAT": 3.140000, "UN_LONG": 101.700000, "POP1950": 208.000000, "POP1955": 281.000000, "POP1960": 344.000000, "POP1965": 394.000000, "POP1970": 451.000000, "POP1975": 645.000000, "POP1980": 921.000000, "POP1985": 1016.000000, "POP1990": 1120.000000, "POP1995": 1213.000000, "POP2000": 1306.000000, "POP2005": 1405.000000, "POP2010": 1448.000000, "POP2015": 1519.000000, "POP2020": 1670.000000, "POP2025": 1820.000000, "POP2050": 1938.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11320973.739907501265407, 352908.178702268516645 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Havana", "NAMEPAR": null, "NAMEALT": "La Habana", "DIFFASCII": 0, "NAMEASCII": "Havana", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Cuba", "SOV_A3": "CUB", "ADM0NAME": "Cuba", "ADM0_A3": "CUB", "ADM1NAME": "Ciudad de la Habana", "ISO_A2": "CU", "NOTE": null, "LATITUDE": 23.131959, "LONGITUDE": -82.364182, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2174000, "POP_MIN": 1990917, "POP_OTHER": 1930305, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3553478.000000, "MEGANAME": "La Habana", "LS_NAME": "Havana", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1990917.000000, "MAX_POP20": 2051170.000000, "MAX_POP50": 2051170.000000, "MAX_POP300": 2051170.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 323.000000, "MAX_AREAKM": 362.000000, "MIN_AREAMI": 125.000000, "MAX_AREAMI": 140.000000, "MIN_PERKM": 240.000000, "MAX_PERKM": 286.000000, "MIN_PERMI": 149.000000, "MAX_PERMI": 177.000000, "MIN_BBXMIN": -82.533333, "MAX_BBXMIN": -82.533333, "MIN_BBXMAX": -82.208333, "MAX_BBXMAX": -82.208333, "MIN_BBYMIN": 22.916667, "MAX_BBYMIN": 22.975161, "MIN_BBYMAX": 23.183333, "MAX_BBYMAX": 23.183333, "MEAN_BBXC": -82.354344, "MEAN_BBYC": 23.076845, "COMPARE": 0, "GN_ASCII": "Havana", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 2163824.000000, "ELEVATION": 0.000000, "GTOPO30": 5.000000, "TIMEZONE": "America\/Havana", "GEONAMESNO": "GeoNames match general.", "UN_FID": 172, "UN_ADM0": "Cuba", "UN_LAT": 23.040000, "UN_LONG": -82.410000, "POP1950": 1116.000000, "POP1955": 1289.000000, "POP1960": 1436.000000, "POP1965": 1598.000000, "POP1970": 1779.000000, "POP1975": 1848.000000, "POP1980": 1913.000000, "POP1985": 2005.000000, "POP1990": 2108.000000, "POP1995": 2183.000000, "POP2000": 2187.000000, "POP2005": 2189.000000, "POP2010": 2174.000000, "POP2015": 2159.000000, "POP2020": 2151.000000, "POP2025": 2150.000000, "POP2050": 2150.000000, "CITYALT": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -9168955.430907979607582, 2648220.198172747157514 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Prague", "NAMEPAR": "Praha", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Prague", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Czech Republic", "SOV_A3": "CZE", "ADM0NAME": "Czech Republic", "ADM0_A3": "CZE", "ADM1NAME": "Prague", "ISO_A2": "CZ", "NOTE": null, "LATITUDE": 50.083337, "LONGITUDE": 14.465980, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1162000, "POP_MIN": 2087, "POP_OTHER": 1088042, "RANK_MAX": 12, "RANK_MIN": 4, "GEONAMEID": 4548393.000000, "MEGANAME": "Praha", "LS_NAME": "Prague", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1115771.000000, "MAX_POP20": 1115771.000000, "MAX_POP50": 1115771.000000, "MAX_POP300": 1115771.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 317.000000, "MAX_AREAKM": 317.000000, "MIN_AREAMI": 122.000000, "MAX_AREAMI": 122.000000, "MIN_PERKM": 249.000000, "MAX_PERKM": 249.000000, "MIN_PERMI": 155.000000, "MAX_PERMI": 155.000000, "MIN_BBXMIN": 14.266667, "MAX_BBXMIN": 14.266667, "MIN_BBXMAX": 14.616667, "MAX_BBXMAX": 14.616667, "MIN_BBYMIN": 49.950000, "MAX_BBYMIN": 49.950000, "MIN_BBYMAX": 50.183333, "MAX_BBYMAX": 50.183333, "MEAN_BBXC": 14.445557, "MEAN_BBYC": 50.073451, "COMPARE": 0, "GN_ASCII": "Prague", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 2087.000000, "ELEVATION": 308.000000, "GTOPO30": 306.000000, "TIMEZONE": "America\/Chicago", "GEONAMESNO": "GeoNames match general.", "UN_FID": 173, "UN_ADM0": "Czech Republic", "UN_LAT": 50.100000, "UN_LONG": 14.450000, "POP1950": 935.000000, "POP1955": 967.000000, "POP1960": 1001.000000, "POP1965": 1038.000000, "POP1970": 1076.000000, "POP1975": 1126.000000, "POP1980": 1179.000000, "POP1985": 1197.000000, "POP1990": 1212.000000, "POP1995": 1194.000000, "POP2000": 1172.000000, "POP2005": 1164.000000, "POP2010": 1162.000000, "POP2015": 1160.000000, "POP2020": 1159.000000, "POP2025": 1159.000000, "POP2050": 1159.000000, "CITYALT": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 1610128.890462482813746, 6461058.453053065575659 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Kuwait", "NAMEPAR": null, "NAMEALT": "Al Kuwayt|Kuwait City", "DIFFASCII": 0, "NAMEASCII": "Kuwait", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Kuwait", "SOV_A3": "KWT", "ADM0NAME": "Kuwait", "ADM0_A3": "KWT", "ADM1NAME": "Al Kuwayt", "ISO_A2": "KW", "NOTE": null, "LATITUDE": 29.369718, "LONGITUDE": 47.978301, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2063000, "POP_MIN": 60064, "POP_OTHER": 1682968, "RANK_MAX": 12, "RANK_MIN": 8, "GEONAMEID": 285787.000000, "MEGANAME": "Al Kuwayt (Kuwait City)", "LS_NAME": "Kuwait", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1732952.000000, "MAX_POP20": 2142805.000000, "MAX_POP50": 2142805.000000, "MAX_POP300": 2142805.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 264.000000, "MAX_AREAKM": 366.000000, "MIN_AREAMI": 102.000000, "MAX_AREAMI": 141.000000, "MIN_PERKM": 162.000000, "MAX_PERKM": 249.000000, "MIN_PERMI": 101.000000, "MAX_PERMI": 155.000000, "MIN_BBXMIN": 47.800000, "MAX_BBXMIN": 47.821052, "MIN_BBXMAX": 48.100000, "MAX_BBXMAX": 48.150000, "MIN_BBYMIN": 29.066667, "MAX_BBYMIN": 29.225000, "MIN_BBYMAX": 29.391667, "MAX_BBYMAX": 29.391667, "MEAN_BBXC": 47.993999, "MEAN_BBYC": 29.277119, "COMPARE": 0, "GN_ASCII": "Kuwait", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 60064.000000, "ELEVATION": 0.000000, "GTOPO30": 12.000000, "TIMEZONE": "Asia\/Kuwait", "GEONAMESNO": "GeoNames match general.", "UN_FID": 339, "UN_ADM0": "Kuwait", "UN_LAT": 29.380000, "UN_LONG": 47.970000, "POP1950": 63.000000, "POP1955": 106.000000, "POP1960": 179.000000, "POP1965": 303.000000, "POP1970": 553.000000, "POP1975": 688.000000, "POP1980": 891.000000, "POP1985": 1122.000000, "POP1990": 1392.000000, "POP1995": 1190.000000, "POP2000": 1499.000000, "POP2005": 1888.000000, "POP2010": 2063.000000, "POP2015": 2305.000000, "POP2020": 2592.000000, "POP2025": 2790.000000, "POP2050": 2956.000000, "CITYALT": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 5340703.440735623240471, 3423036.052133984398097 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Santo Domingo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Santo Domingo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Dominican Republic", "SOV_A3": "DOM", "ADM0NAME": "Dominican Republic", "ADM0_A3": "DOM", "ADM1NAME": "Distrito Nacional", "ISO_A2": "DO", "NOTE": null, "LATITUDE": 18.470073, "LONGITUDE": -69.900085, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2154000, "POP_MIN": 2873, "POP_OTHER": 3322037, "RANK_MAX": 12, "RANK_MIN": 4, "GEONAMEID": 3668373.000000, "MEGANAME": "Santo Domingo", "LS_NAME": "Santo Domingo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 3334413.000000, "MAX_POP20": 3334413.000000, "MAX_POP50": 3334413.000000, "MAX_POP300": 3334413.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 451.000000, "MAX_AREAKM": 451.000000, "MIN_AREAMI": 174.000000, "MAX_AREAMI": 174.000000, "MIN_PERKM": 309.000000, "MAX_PERKM": 309.000000, "MIN_PERMI": 192.000000, "MAX_PERMI": 192.000000, "MIN_BBXMIN": -70.208333, "MAX_BBXMIN": -70.208333, "MIN_BBXMAX": -69.766667, "MAX_BBXMAX": -69.766667, "MIN_BBYMIN": 18.316667, "MAX_BBYMIN": 18.316667, "MIN_BBYMAX": 18.591667, "MAX_BBYMAX": 18.591667, "MEAN_BBXC": -69.980546, "MEAN_BBYC": 18.467176, "COMPARE": 0, "GN_ASCII": "Santo Domingo", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 2.000000, "GN_POP": 2873.000000, "ELEVATION": 0.000000, "GTOPO30": 2004.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 176, "UN_ADM0": "Dominican Republic", "UN_LAT": 18.480000, "UN_LONG": -69.890000, "POP1950": 219.000000, "POP1955": 312.000000, "POP1960": 446.000000, "POP1965": 613.000000, "POP1970": 833.000000, "POP1975": 1016.000000, "POP1980": 1240.000000, "POP1985": 1396.000000, "POP1990": 1522.000000, "POP1995": 1670.000000, "POP2000": 1854.000000, "POP2005": 2062.000000, "POP2010": 2154.000000, "POP2015": 2298.000000, "POP2020": 2525.000000, "POP2025": 2722.000000, "POP2050": 2885.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7781458.490025483071804, 2092872.20801493129693 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Accra", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Accra", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ghana", "SOV_A3": "GHA", "ADM0NAME": "Ghana", "ADM0_A3": "GHA", "ADM1NAME": "Greater Accra", "ISO_A2": "GH", "NOTE": null, "LATITUDE": 5.550035, "LONGITUDE": -0.216716, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2121000, "POP_MIN": 1963264, "POP_OTHER": 2334371, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2306104.000000, "MEGANAME": "Accra", "LS_NAME": "Accra", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2359119.000000, "MAX_POP20": 2941045.000000, "MAX_POP50": 2941045.000000, "MAX_POP300": 2941045.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 443.000000, "MAX_AREAKM": 636.000000, "MIN_AREAMI": 171.000000, "MAX_AREAMI": 245.000000, "MIN_PERKM": 244.000000, "MAX_PERKM": 345.000000, "MIN_PERMI": 152.000000, "MAX_PERMI": 214.000000, "MIN_BBXMIN": -0.350000, "MAX_BBXMIN": -0.350000, "MIN_BBXMAX": -0.098725, "MAX_BBXMAX": 0.033333, "MIN_BBYMIN": 5.516667, "MAX_BBYMIN": 5.516667, "MIN_BBYMAX": 5.775000, "MAX_BBYMAX": 5.775000, "MEAN_BBXC": -0.188893, "MEAN_BBYC": 5.637403, "COMPARE": 0, "GN_ASCII": "Accra", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 1963264.000000, "ELEVATION": 0.000000, "GTOPO30": 104.000000, "TIMEZONE": "Africa\/Accra", "GEONAMESNO": "GeoNames match general.", "UN_FID": 196, "UN_ADM0": "Ghana", "UN_LAT": 5.550000, "UN_LONG": -0.200000, "POP1950": 177.000000, "POP1955": 265.000000, "POP1960": 393.000000, "POP1965": 499.000000, "POP1970": 631.000000, "POP1975": 738.000000, "POP1980": 863.000000, "POP1985": 1013.000000, "POP1990": 1197.000000, "POP1995": 1415.000000, "POP2000": 1674.000000, "POP2005": 1984.000000, "POP2010": 2121.000000, "POP2015": 2332.000000, "POP2020": 2688.000000, "POP2025": 3041.000000, "POP2050": 3382.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -24341.297852347386652, 619013.119732905062847 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Tripoli", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tripoli", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Libya", "SOV_A3": "LBY", "ADM0NAME": "Libya", "ADM0_A3": "LBY", "ADM1NAME": "Tajura' wa an Nawahi al Arba", "ISO_A2": "LY", "NOTE": null, "LATITUDE": 32.892500, "LONGITUDE": 13.180012, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2189000, "POP_MIN": 229398, "POP_OTHER": 1149981, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": -1.000000, "MEGANAME": "Tarabulus", "LS_NAME": "Tripoli1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1173386.000000, "MAX_POP20": 1173386.000000, "MAX_POP50": 1173386.000000, "MAX_POP300": 1173386.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 195.000000, "MAX_AREAKM": 195.000000, "MIN_AREAMI": 75.000000, "MAX_AREAMI": 75.000000, "MIN_PERKM": 142.000000, "MAX_PERKM": 142.000000, "MIN_PERMI": 88.000000, "MAX_PERMI": 88.000000, "MIN_BBXMIN": 12.983333, "MAX_BBXMIN": 12.983333, "MIN_BBXMAX": 13.408333, "MAX_BBXMAX": 13.408333, "MIN_BBYMIN": 32.808333, "MAX_BBYMIN": 32.808333, "MIN_BBYMAX": 32.908333, "MAX_BBYMAX": 32.908333, "MEAN_BBXC": 13.193220, "MEAN_BBYC": 32.862069, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 9.000000, "GN_POP": 229398.000000, "ELEVATION": 0.000000, "GTOPO30": 31.000000, "TIMEZONE": null, "GEONAMESNO": null, "UN_FID": 344, "UN_ADM0": "Libyan Arab Jamahiriya", "UN_LAT": 34.340000, "UN_LONG": 36.000000, "POP1950": 106.000000, "POP1955": 136.000000, "POP1960": 174.000000, "POP1965": 235.000000, "POP1970": 398.000000, "POP1975": 611.000000, "POP1980": 797.000000, "POP1985": 1056.000000, "POP1990": 1500.000000, "POP1995": 1678.000000, "POP2000": 1877.000000, "POP2005": 2098.000000, "POP2010": 2189.000000, "POP2015": 2322.000000, "POP2020": 2532.000000, "POP2025": 2713.000000, "POP2050": 2855.000000, "CITYALT": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 1467192.197558623272926, 3881043.816362407058477 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital alt", "NAME": "Tel Aviv-Yafo", "NAMEPAR": null, "NAMEALT": "Tel Aviv-Jaffa", "DIFFASCII": 0, "NAMEASCII": "Tel Aviv-Yafo", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "While Jerulsale", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Israel", "SOV_A3": "ISR", "ADM0NAME": "Israel", "ADM0_A3": "ISR", "ADM1NAME": "Tel Aviv", "ISO_A2": "IL", "NOTE": null, "LATITUDE": 32.079991, "LONGITUDE": 34.770012, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3112000, "POP_MIN": 378358, "POP_OTHER": 2306851, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": 293394.000000, "MEGANAME": "Tel Aviv-Yafo", "LS_NAME": "Tel Aviv-Yafo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2324568.000000, "MAX_POP20": 2324568.000000, "MAX_POP50": 2324568.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 436.000000, "MAX_AREAKM": 436.000000, "MIN_AREAMI": 168.000000, "MAX_AREAMI": 168.000000, "MIN_PERKM": 386.000000, "MAX_PERKM": 386.000000, "MIN_PERMI": 240.000000, "MAX_PERMI": 240.000000, "MIN_BBXMIN": 34.716667, "MAX_BBXMIN": 34.716667, "MIN_BBXMAX": 34.958333, "MAX_BBXMAX": 34.958333, "MIN_BBYMIN": 31.850000, "MAX_BBYMIN": 31.850000, "MIN_BBYMAX": 32.208333, "MAX_BBYMAX": 32.208333, "MEAN_BBXC": 34.836735, "MEAN_BBYC": 32.030266, "COMPARE": 0, "GN_ASCII": "Tel Aviv-Yafo", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 5.000000, "GN_POP": 378358.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Asia\/Jerusalem", "GEONAMESNO": "GeoNames match general.", "UN_FID": 304, "UN_ADM0": "Israel", "UN_LAT": 32.040000, "UN_LONG": 34.760000, "POP1950": 418.000000, "POP1955": 556.000000, "POP1960": 738.000000, "POP1965": 882.000000, "POP1970": 1029.000000, "POP1975": 1206.000000, "POP1980": 1416.000000, "POP1985": 1681.000000, "POP1990": 2026.000000, "POP1995": 2442.000000, "POP2000": 2752.000000, "POP2005": 3012.000000, "POP2010": 3112.000000, "POP2015": 3256.000000, "POP2020": 3453.000000, "POP2025": 3600.000000, "POP2050": 3726.000000, "CITYALT": "Tel Aviv-Jaffa" }, "geometry": { "type": "Point", "coordinates": [ 3870363.39180508069694, 3774070.987536830361933 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Helsinki", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Helsinki", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Finland", "SOV_A3": "FIN", "ADM0NAME": "Finland", "ADM0_A3": "FIN", "ADM1NAME": "Southern Finland", "ISO_A2": "FI", "NOTE": null, "LATITUDE": 60.175563, "LONGITUDE": 24.934126, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1115000, "POP_MIN": 558457, "POP_OTHER": 762958, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 658225.000000, "MEGANAME": "Helsinki", "LS_NAME": "Helsinki", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 852233.000000, "MAX_POP20": 852233.000000, "MAX_POP50": 852233.000000, "MAX_POP300": 852233.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 513.000000, "MAX_AREAKM": 513.000000, "MIN_AREAMI": 198.000000, "MAX_AREAMI": 198.000000, "MIN_PERKM": 550.000000, "MAX_PERKM": 550.000000, "MIN_PERMI": 342.000000, "MAX_PERMI": 342.000000, "MIN_BBXMIN": 24.558333, "MAX_BBXMIN": 24.558333, "MIN_BBXMAX": 25.191667, "MAX_BBXMAX": 25.191667, "MIN_BBYMIN": 60.116667, "MAX_BBYMIN": 60.116667, "MIN_BBYMAX": 60.433333, "MAX_BBYMAX": 60.433333, "MEAN_BBXC": 24.910042, "MEAN_BBYC": 60.254779, "COMPARE": 0, "GN_ASCII": "Helsinki", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 13.000000, "GN_POP": 558457.000000, "ELEVATION": 0.000000, "GTOPO30": 23.000000, "TIMEZONE": "Europe\/Helsinki", "GEONAMESNO": "GeoNames match general.", "UN_FID": 183, "UN_ADM0": "Finland", "UN_LAT": 60.190000, "UN_LONG": 24.970000, "POP1950": 366.000000, "POP1955": 405.000000, "POP1960": 448.000000, "POP1965": 478.000000, "POP1970": 507.000000, "POP1975": 582.000000, "POP1980": 674.000000, "POP1985": 724.000000, "POP1990": 872.000000, "POP1995": 943.000000, "POP2000": 1019.000000, "POP2005": 1094.000000, "POP2010": 1115.000000, "POP2015": 1139.000000, "POP2020": 1169.000000, "POP2025": 1195.000000, "POP2050": 1220.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2775437.635716365650296, 8439364.844546498730779 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "København", "NAMEPAR": "Copenhagen", "NAMEALT": null, "DIFFASCII": 1, "NAMEASCII": "Kobenhavn", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Denmark", "SOV_A3": "DNK", "ADM0NAME": "Denmark", "ADM0_A3": "DNK", "ADM1NAME": "Hovedstaden", "ISO_A2": "DK", "NOTE": null, "LATITUDE": 55.678564, "LONGITUDE": 12.563486, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1085000, "POP_MIN": 1085000, "POP_OTHER": 1038288, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2618425.000000, "MEGANAME": "København", "LS_NAME": "Copenhagen", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1124323.000000, "MAX_POP20": 1230007.000000, "MAX_POP50": 1256924.000000, "MAX_POP300": 1256924.000000, "MAX_POP310": 1256924.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 438.000000, "MAX_AREAKM": 577.000000, "MIN_AREAMI": 169.000000, "MAX_AREAMI": 223.000000, "MIN_PERKM": 348.000000, "MAX_PERKM": 542.000000, "MIN_PERMI": 216.000000, "MAX_PERMI": 337.000000, "MIN_BBXMIN": 12.116667, "MAX_BBXMIN": 12.316667, "MIN_BBXMAX": 12.658333, "MAX_BBXMAX": 12.658333, "MIN_BBYMIN": 55.400000, "MAX_BBYMIN": 55.583333, "MIN_BBYMAX": 55.927962, "MAX_BBYMAX": 56.008333, "MEAN_BBXC": 12.437175, "MEAN_BBYC": 55.716213, "COMPARE": 0, "GN_ASCII": "Copenhagen", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 17.000000, "GN_POP": 1153615.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Europe\/Copenhagen", "GEONAMESNO": "GeoNames match general.", "UN_FID": 175, "UN_ADM0": "Denmark", "UN_LAT": 55.710000, "UN_LONG": 12.540000, "POP1950": 1216.000000, "POP1955": 1227.000000, "POP1960": 1284.000000, "POP1965": 1373.000000, "POP1970": 1380.000000, "POP1975": 1172.000000, "POP1980": 1096.000000, "POP1985": 1056.000000, "POP1990": 1035.000000, "POP1995": 1048.000000, "POP2000": 1077.000000, "POP2005": 1085.000000, "POP2010": 1085.000000, "POP2015": 1087.000000, "POP2020": 1092.000000, "POP2025": 1095.000000, "POP2050": 1096.000000, "CITYALT": "Copenhagen" }, "geometry": { "type": "Point", "coordinates": [ 1398344.223989845486358, 7495075.373086205683649 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Abidjan", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Abidjan", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto, admin", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ivory Coast", "SOV_A3": "CIV", "ADM0NAME": "Ivory Coast", "ADM0_A3": "CIV", "ADM1NAME": "Lagunes", "ISO_A2": "CI", "NOTE": null, "LATITUDE": 5.319997, "LONGITUDE": -4.040048, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3802000, "POP_MIN": 3190395, "POP_OTHER": 3181637, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2293538.000000, "MEGANAME": "Abidjan", "LS_NAME": "Abidjan", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3190395.000000, "MAX_POP20": 3190395.000000, "MAX_POP50": 3190395.000000, "MAX_POP300": 3190395.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 474.000000, "MAX_AREAKM": 474.000000, "MIN_AREAMI": 183.000000, "MAX_AREAMI": 183.000000, "MIN_PERKM": 304.000000, "MAX_PERKM": 304.000000, "MIN_PERMI": 189.000000, "MAX_PERMI": 189.000000, "MIN_BBXMIN": -4.191667, "MAX_BBXMIN": -4.191667, "MIN_BBXMAX": -3.866667, "MAX_BBXMAX": -3.866667, "MIN_BBYMIN": 5.241667, "MAX_BBYMIN": 5.241667, "MIN_BBYMAX": 5.550000, "MAX_BBYMAX": 5.550000, "MEAN_BBXC": -4.019846, "MEAN_BBYC": 5.373900, "COMPARE": 0, "GN_ASCII": "Abidjan", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 82.000000, "GN_POP": 3677115.000000, "ELEVATION": 0.000000, "GTOPO30": 75.000000, "TIMEZONE": "Africa\/Abidjan", "GEONAMESNO": "GeoNames match general.", "UN_FID": 310, "UN_ADM0": "Côte d'Ivoire", "UN_LAT": 5.320000, "UN_LONG": -4.020000, "POP1950": 65.000000, "POP1955": 125.000000, "POP1960": 192.000000, "POP1965": 310.000000, "POP1970": 548.000000, "POP1975": 966.000000, "POP1980": 1384.000000, "POP1985": 1716.000000, "POP1990": 2102.000000, "POP1995": 2535.000000, "POP2000": 3032.000000, "POP2005": 3564.000000, "POP2010": 3802.000000, "POP2015": 4175.000000, "POP2020": 4810.000000, "POP2025": 5432.000000, "POP2050": 6031.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -449952.727061615383718, 593289.70103059662506 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "Brasilia", "NAMEPAR": null, "NAMEALT": "Brasília", "DIFFASCII": 0, "NAMEASCII": "Brasilia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Brazil", "SOV_A3": "BRA", "ADM0NAME": "Brazil", "ADM0_A3": "BRA", "ADM1NAME": "Distrito Federal", "ISO_A2": "BR", "NOTE": null, "LATITUDE": -15.783340, "LONGITUDE": -47.916052, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3716996, "POP_MIN": 2562963, "POP_OTHER": 1772679, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3469058.000000, "MEGANAME": "Brasília", "LS_NAME": "Brasilia", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1838722.000000, "MAX_POP20": 1836390.000000, "MAX_POP50": 1838722.000000, "MAX_POP300": 1838722.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 436.000000, "MAX_AREAKM": 439.000000, "MIN_AREAMI": 168.000000, "MAX_AREAMI": 169.000000, "MIN_PERKM": 311.000000, "MAX_PERKM": 318.000000, "MIN_PERMI": 193.000000, "MAX_PERMI": 197.000000, "MIN_BBXMIN": -48.158333, "MAX_BBXMIN": -48.158333, "MIN_BBXMAX": -47.783333, "MAX_BBXMAX": -47.783333, "MIN_BBYMIN": -15.941667, "MAX_BBYMIN": -15.941667, "MIN_BBYMAX": -15.700000, "MAX_BBYMAX": -15.700000, "MEAN_BBXC": -47.971400, "MEAN_BBYC": -15.824583, "COMPARE": 0, "GN_ASCII": "Brasilia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 2207718.000000, "ELEVATION": 0.000000, "GTOPO30": 1092.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 472, "UN_ADM0": "Brazil", "UN_LAT": -15.790000, "UN_LONG": -47.890000, "POP1950": 36.000000, "POP1955": 70.000000, "POP1960": 137.000000, "POP1965": 268.000000, "POP1970": 525.000000, "POP1975": 827.000000, "POP1980": 1293.000000, "POP1985": 1559.000000, "POP1990": 1863.000000, "POP1995": 2257.000000, "POP2000": 2746.000000, "POP2005": 3341.000000, "POP2010": 3599.000000, "POP2015": 3938.000000, "POP2020": 4284.000000, "POP2025": 4463.000000, "POP2050": 4578.000000, "CITYALT": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -5334207.153557407669723, -1779420.786543596768752 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Brussels", "NAMEPAR": null, "NAMEALT": "Bruxelles-Brussel", "DIFFASCII": 0, "NAMEASCII": "Brussels", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Belgium", "SOV_A3": "BEL", "ADM0NAME": "Belgium", "ADM0_A3": "BEL", "ADM1NAME": "Brussels", "ISO_A2": "BE", "NOTE": null, "LATITUDE": 50.833317, "LONGITUDE": 4.333317, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1743000, "POP_MIN": 1019022, "POP_OTHER": 1490164, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2800866.000000, "MEGANAME": "Bruxelles-Brussel", "LS_NAME": "Brussels", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1759840.000000, "MAX_POP20": 1874437.000000, "MAX_POP50": 3576473.000000, "MAX_POP300": 3576473.000000, "MAX_POP310": 3576473.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 900.000000, "MAX_AREAKM": 2344.000000, "MIN_AREAMI": 347.000000, "MAX_AREAMI": 905.000000, "MIN_PERKM": 997.000000, "MAX_PERKM": 2982.000000, "MIN_PERMI": 620.000000, "MAX_PERMI": 1853.000000, "MIN_BBXMIN": 3.575000, "MAX_BBXMIN": 3.983529, "MIN_BBXMAX": 4.666667, "MAX_BBXMAX": 5.000000, "MIN_BBYMIN": 50.600000, "MAX_BBYMIN": 50.650000, "MIN_BBYMAX": 51.016667, "MAX_BBYMAX": 51.408333, "MEAN_BBXC": 4.329159, "MEAN_BBYC": 50.919556, "COMPARE": 0, "GN_ASCII": "Brussels", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1019022.000000, "ELEVATION": 0.000000, "GTOPO30": 48.000000, "TIMEZONE": "Europe\/Brussels", "GEONAMESNO": "GeoNames match general.", "UN_FID": 384, "UN_ADM0": "Belgium", "UN_LAT": 50.830000, "UN_LONG": 4.360000, "POP1950": 1415.000000, "POP1955": 1449.000000, "POP1960": 1485.000000, "POP1965": 1525.000000, "POP1970": 1568.000000, "POP1975": 1610.000000, "POP1980": 1654.000000, "POP1985": 1654.000000, "POP1990": 1680.000000, "POP1995": 1715.000000, "POP2000": 1733.000000, "POP2005": 1742.000000, "POP2010": 1743.000000, "POP2015": 1744.000000, "POP2020": 1744.000000, "POP2025": 1744.000000, "POP2050": 1744.000000, "CITYALT": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 482165.986292421643157, 6592205.213368659839034 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Dhaka", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dhaka", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Bangladesh", "SOV_A3": "BGD", "ADM0NAME": "Bangladesh", "ADM0_A3": "BGD", "ADM1NAME": "Dhaka", "ISO_A2": "BD", "NOTE": null, "LATITUDE": 23.723060, "LONGITUDE": 90.408579, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 12797394, "POP_MIN": 7000940, "POP_OTHER": 14995538, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 1185241.000000, "MEGANAME": "Dhaka", "LS_NAME": "Dhaka", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 14548962.000000, "MAX_POP20": 21394172.000000, "MAX_POP50": 53845691.000000, "MAX_POP300": 78549234.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 3528.000000, "MAX_AREAKM": 49912.000000, "MIN_AREAMI": 1362.000000, "MAX_AREAMI": 19271.000000, "MIN_PERKM": 1439.000000, "MAX_PERKM": 19314.000000, "MIN_PERMI": 894.000000, "MAX_PERMI": 12001.000000, "MIN_BBXMIN": 88.133791, "MAX_BBXMIN": 89.900000, "MIN_BBXMAX": 90.816777, "MAX_BBXMAX": 92.908333, "MIN_BBYMIN": 22.858333, "MAX_BBYMIN": 23.482936, "MIN_BBYMAX": 24.247407, "MAX_BBYMAX": 25.583333, "MEAN_BBXC": 90.400679, "MEAN_BBYC": 24.105092, "COMPARE": 0, "GN_ASCII": "Dhaka", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 81.000000, "GN_POP": 10356500.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Asia\/Dhaka", "GEONAMESNO": "GeoNames match general.", "UN_FID": 369, "UN_ADM0": "Bangladesh", "UN_LAT": 23.700000, "UN_LONG": 90.400000, "POP1950": 336.000000, "POP1955": 409.000000, "POP1960": 508.000000, "POP1965": 821.000000, "POP1970": 1374.000000, "POP1975": 2221.000000, "POP1980": 3266.000000, "POP1985": 4660.000000, "POP1990": 6621.000000, "POP1995": 8332.000000, "POP2000": 10285.000000, "POP2005": 12576.000000, "POP2010": 13485.000000, "POP2015": 14796.000000, "POP2020": 17015.000000, "POP2025": 19422.000000, "POP2050": 22015.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 10064020.417588587850332, 2719934.464783173054457 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Luanda", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Luanda", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Angola", "SOV_A3": "AGO", "ADM0NAME": "Angola", "ADM0_A3": "AGO", "ADM1NAME": "Luanda", "ISO_A2": "AO", "NOTE": null, "LATITUDE": -8.838286, "LONGITUDE": 13.234427, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 5172900, "POP_MIN": 1951272, "POP_OTHER": 1951272, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 2240449.000000, "MEGANAME": "Luanda", "LS_NAME": "Luanda", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1951272.000000, "MAX_POP20": 1951272.000000, "MAX_POP50": 1951272.000000, "MAX_POP300": 1951272.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 237.000000, "MAX_AREAKM": 237.000000, "MIN_AREAMI": 91.000000, "MAX_AREAMI": 91.000000, "MIN_PERKM": 149.000000, "MAX_PERKM": 149.000000, "MIN_PERMI": 93.000000, "MAX_PERMI": 93.000000, "MIN_BBXMIN": 13.166667, "MAX_BBXMIN": 13.166667, "MIN_BBXMAX": 13.400000, "MAX_BBXMAX": 13.400000, "MIN_BBYMIN": -8.933333, "MAX_BBYMIN": -8.933333, "MIN_BBYMAX": -8.766667, "MAX_BBYMAX": -8.766667, "MEAN_BBXC": 13.282530, "MEAN_BBYC": -8.851964, "COMPARE": 0, "GN_ASCII": "Luanda", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 2776168.000000, "ELEVATION": 0.000000, "GTOPO30": 6.000000, "TIMEZONE": "Africa\/Luanda", "GEONAMESNO": "GeoNames match general.", "UN_FID": 182, "UN_ADM0": "Angola", "UN_LAT": -8.810000, "UN_LONG": 13.230000, "POP1950": 138.000000, "POP1955": 174.000000, "POP1960": 219.000000, "POP1965": 315.000000, "POP1970": 459.000000, "POP1975": 665.000000, "POP1980": 962.000000, "POP1985": 1295.000000, "POP1990": 1568.000000, "POP1995": 1953.000000, "POP2000": 2591.000000, "POP2005": 3533.000000, "POP2010": 4000.000000, "POP2015": 4775.000000, "POP2020": 6036.000000, "POP2025": 7153.000000, "POP2050": 8236.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1473033.067186237080023, -987579.593302122666501 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Algiers", "NAMEPAR": null, "NAMEALT": "El Djazaïr", "DIFFASCII": 0, "NAMEASCII": "Algiers", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Algeria", "SOV_A3": "DZA", "ADM0NAME": "Algeria", "ADM0_A3": "DZA", "ADM1NAME": "Alger", "ISO_A2": "DZ", "NOTE": null, "LATITUDE": 36.763065, "LONGITUDE": 3.050553, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3354000, "POP_MIN": 1977663, "POP_OTHER": 3332619, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2507480.000000, "MEGANAME": "El Djazaïr", "LS_NAME": "Algiers", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 3368320.000000, "MAX_POP20": 3698473.000000, "MAX_POP50": 4203253.000000, "MAX_POP300": 4203253.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 886.000000, "MAX_AREAKM": 1275.000000, "MIN_AREAMI": 342.000000, "MAX_AREAMI": 492.000000, "MIN_PERKM": 798.000000, "MAX_PERKM": 1192.000000, "MIN_PERMI": 496.000000, "MAX_PERMI": 741.000000, "MIN_BBXMIN": 2.641667, "MAX_BBXMIN": 2.808333, "MIN_BBXMAX": 3.548211, "MAX_BBXMAX": 3.741667, "MIN_BBYMIN": 36.450000, "MAX_BBYMIN": 36.508333, "MIN_BBYMAX": 36.816667, "MAX_BBYMAX": 36.816667, "MEAN_BBXC": 3.101671, "MEAN_BBYC": 36.673641, "COMPARE": 0, "GN_ASCII": "Algiers", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 1977663.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Africa\/Algiers", "GEONAMESNO": "GeoNames match general.", "UN_FID": 6, "UN_ADM0": "Algeria", "UN_LAT": 36.780000, "UN_LONG": 3.050000, "POP1950": 516.000000, "POP1955": 623.000000, "POP1960": 872.000000, "POP1965": 1049.000000, "POP1970": 1254.000000, "POP1975": 1499.000000, "POP1980": 1621.000000, "POP1985": 1672.000000, "POP1990": 1908.000000, "POP1995": 2295.000000, "POP2000": 2754.000000, "POP2005": 3199.000000, "POP2010": 3354.000000, "POP2015": 3574.000000, "POP2020": 3922.000000, "POP2025": 4235.000000, "POP2050": 4499.000000, "CITYALT": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 339369.342234592477325, 4406402.722889301367104 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Rangoon", "NAMEPAR": null, "NAMEALT": "Yangon", "DIFFASCII": 0, "NAMEASCII": "Rangoon", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": "Former capital", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Myanmar", "SOV_A3": "MMR", "ADM0NAME": "Myanmar", "ADM0_A3": "MMR", "ADM1NAME": "Yangon", "ISO_A2": "MM", "NOTE": null, "LATITUDE": 16.783354, "LONGITUDE": 96.166678, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4088000, "POP_MIN": 3301820, "POP_OTHER": 3124090, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1298824.000000, "MEGANAME": "Yangon", "LS_NAME": "Rangoon", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3301820.000000, "MAX_POP20": 3301820.000000, "MAX_POP50": 3301820.000000, "MAX_POP300": 3301820.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 345.000000, "MAX_AREAKM": 345.000000, "MIN_AREAMI": 133.000000, "MAX_AREAMI": 133.000000, "MIN_PERKM": 199.000000, "MAX_PERKM": 199.000000, "MIN_PERMI": 123.000000, "MAX_PERMI": 123.000000, "MIN_BBXMIN": 96.025000, "MAX_BBXMIN": 96.025000, "MIN_BBXMAX": 96.266667, "MAX_BBXMAX": 96.266667, "MIN_BBYMIN": 16.716667, "MAX_BBYMIN": 16.716667, "MIN_BBYMAX": 17.025000, "MAX_BBYMAX": 17.025000, "MEAN_BBXC": 96.144646, "MEAN_BBYC": 16.858640, "COMPARE": 0, "GN_ASCII": "Rangoon", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 17.000000, "GN_POP": 4477638.000000, "ELEVATION": 0.000000, "GTOPO30": 13.000000, "TIMEZONE": "Asia\/Rangoon", "GEONAMESNO": "GeoNames match general.", "UN_FID": 3, "UN_ADM0": "Myanmar", "UN_LAT": 16.870000, "UN_LONG": 96.120000, "POP1950": 1302.000000, "POP1955": 1440.000000, "POP1960": 1592.000000, "POP1965": 1760.000000, "POP1970": 1946.000000, "POP1975": 2151.000000, "POP1980": 2378.000000, "POP1985": 2629.000000, "POP1990": 2907.000000, "POP1995": 3213.000000, "POP2000": 3553.000000, "POP2005": 3928.000000, "POP2010": 4088.000000, "POP2015": 4348.000000, "POP2020": 4841.000000, "POP2025": 5361.000000, "POP2050": 5869.000000, "CITYALT": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 10705008.970978064462543, 1895846.941771164536476 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "San Francisco", "NAMEPAR": null, "NAMEALT": "San Francisco-Oakland", "DIFFASCII": 0, "NAMEASCII": "San Francisco", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "California", "ISO_A2": "US", "NOTE": null, "LATITUDE": 37.740008, "LONGITUDE": -122.459978, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 3450000, "POP_MIN": 732072, "POP_OTHER": 27400, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 5391959.000000, "MEGANAME": "San Francisco-Oakland", "LS_NAME": "San Francisco1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 988636.000000, "MAX_POP20": 1130999.000000, "MAX_POP50": 1371285.000000, "MAX_POP300": 4561697.000000, "MAX_POP310": 4561697.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 218.000000, "MAX_AREAKM": 1748.000000, "MIN_AREAMI": 84.000000, "MAX_AREAMI": 675.000000, "MIN_PERKM": 126.000000, "MAX_PERKM": 755.000000, "MIN_PERMI": 78.000000, "MAX_PERMI": 469.000000, "MIN_BBXMIN": -122.516667, "MAX_BBXMIN": -122.516667, "MIN_BBXMAX": -122.358333, "MAX_BBXMAX": -121.733333, "MIN_BBYMIN": 37.191667, "MAX_BBYMIN": 37.575000, "MIN_BBYMAX": 37.816667, "MAX_BBYMAX": 38.041667, "MEAN_BBXC": -122.301354, "MEAN_BBYC": 37.622288, "COMPARE": 0, "GN_ASCII": "San Francisco", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 732072.000000, "ELEVATION": 16.000000, "GTOPO30": 60.000000, "TIMEZONE": "America\/Los_Angeles", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 570, "UN_ADM0": "United States of America", "UN_LAT": 37.790000, "UN_LONG": -122.380000, "POP1950": 1855.000000, "POP1955": 2021.000000, "POP1960": 2200.000000, "POP1965": 2361.000000, "POP1970": 2529.000000, "POP1975": 2590.000000, "POP1980": 2656.000000, "POP1985": 2805.000000, "POP1990": 2961.000000, "POP1995": 3095.000000, "POP2000": 3236.000000, "POP2005": 3387.000000, "POP2010": 3450.000000, "POP2015": 3544.000000, "POP2020": 3684.000000, "POP2025": 3803.000000, "POP2050": 3898.000000, "CITYALT": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -13627416.892226068302989, 4546872.008851110003889 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Denver", "NAMEPAR": null, "NAMEALT": "Denver-Aurora", "DIFFASCII": 0, "NAMEASCII": "Denver", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Colorado", "ISO_A2": "US", "NOTE": null, "LATITUDE": 39.739188, "LONGITUDE": -104.984016, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2313000, "POP_MIN": 1548599, "POP_OTHER": 1521278, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 5419384.000000, "MEGANAME": "Denver-Aurora", "LS_NAME": "Denver", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1548599.000000, "MAX_POP20": 2100407.000000, "MAX_POP50": 2174327.000000, "MAX_POP300": 2174327.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 909.000000, "MAX_AREAKM": 1345.000000, "MIN_AREAMI": 351.000000, "MAX_AREAMI": 519.000000, "MIN_PERKM": 371.000000, "MAX_PERKM": 606.000000, "MIN_PERMI": 231.000000, "MAX_PERMI": 376.000000, "MIN_BBXMIN": -105.241667, "MAX_BBXMIN": -105.241667, "MIN_BBXMAX": -104.866667, "MAX_BBXMAX": -104.708333, "MIN_BBYMIN": 39.500000, "MAX_BBYMIN": 39.500000, "MIN_BBYMAX": 39.958333, "MAX_BBYMAX": 40.025000, "MEAN_BBXC": -104.993967, "MEAN_BBYC": 39.729850, "COMPARE": 0, "GN_ASCII": "Denver", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 537, "UN_ADM0": "United States of America", "UN_LAT": 39.570000, "UN_LONG": -105.070000, "POP1950": 505.000000, "POP1955": 641.000000, "POP1960": 809.000000, "POP1965": 923.000000, "POP1970": 1054.000000, "POP1975": 1198.000000, "POP1980": 1356.000000, "POP1985": 1437.000000, "POP1990": 1528.000000, "POP1995": 1747.000000, "POP2000": 1998.000000, "POP2005": 2241.000000, "POP2010": 2313.000000, "POP2015": 2396.000000, "POP2020": 2502.000000, "POP2025": 2590.000000, "POP2050": 2661.000000, "CITYALT": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -11686983.80923904851079, 4828395.56365286745131 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Houston", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Houston", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Texas", "ISO_A2": "US", "NOTE": null, "LATITUDE": 29.819974, "LONGITUDE": -95.339979, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4459000, "POP_MIN": 3647574, "POP_OTHER": 3607616, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 4699066.000000, "MEGANAME": "Houston", "LS_NAME": "Houston", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3647574.000000, "MAX_POP20": 4287078.000000, "MAX_POP50": 4352341.000000, "MAX_POP300": 4352341.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 2388.000000, "MAX_AREAKM": 3041.000000, "MIN_AREAMI": 922.000000, "MAX_AREAMI": 1174.000000, "MIN_PERKM": 1257.000000, "MAX_PERKM": 1773.000000, "MIN_PERMI": 781.000000, "MAX_PERMI": 1101.000000, "MIN_BBXMIN": -95.841667, "MAX_BBXMIN": -95.841667, "MIN_BBXMAX": -95.133333, "MAX_BBXMAX": -95.000000, "MIN_BBYMIN": 29.475000, "MAX_BBYMIN": 29.491667, "MIN_BBYMAX": 30.258915, "MAX_BBYMAX": 30.266667, "MEAN_BBXC": -95.431928, "MEAN_BBYC": 29.810477, "COMPARE": 0, "GN_ASCII": "Houston", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 542, "UN_ADM0": "United States of America", "UN_LAT": 29.770000, "UN_LONG": -95.400000, "POP1950": 709.000000, "POP1955": 904.000000, "POP1960": 1151.000000, "POP1965": 1396.000000, "POP1970": 1693.000000, "POP1975": 2030.000000, "POP1980": 2424.000000, "POP1985": 2658.000000, "POP1990": 2922.000000, "POP1995": 3353.000000, "POP2000": 3849.000000, "POP2005": 4324.000000, "POP2010": 4459.000000, "POP2015": 4609.000000, "POP2020": 4790.000000, "POP2025": 4936.000000, "POP2050": 5049.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -10613414.558853337541223, 3480679.827801090665162 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Miami", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Miami", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Florida", "ISO_A2": "US", "NOTE": null, "LATITUDE": 25.787611, "LONGITUDE": -80.224106, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 5585000, "POP_MIN": 382894, "POP_OTHER": 1037811, "RANK_MAX": 13, "RANK_MIN": 10, "GEONAMEID": 4164138.000000, "MEGANAME": "Miami", "LS_NAME": "Miami", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1122682.000000, "MAX_POP20": 1443206.000000, "MAX_POP50": 5187749.000000, "MAX_POP300": 5187749.000000, "MAX_POP310": 5187749.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 380.000000, "MAX_AREAKM": 2907.000000, "MIN_AREAMI": 147.000000, "MAX_AREAMI": 1122.000000, "MIN_PERKM": 156.000000, "MAX_PERKM": 999.000000, "MIN_PERMI": 97.000000, "MAX_PERMI": 620.000000, "MIN_BBXMIN": -80.466667, "MAX_BBXMIN": -80.441667, "MIN_BBXMAX": -80.175719, "MAX_BBXMAX": -80.025000, "MIN_BBYMIN": 25.550000, "MAX_BBYMIN": 25.725000, "MIN_BBYMAX": 26.014060, "MAX_BBYMAX": 26.991667, "MEAN_BBXC": -80.236416, "MEAN_BBYC": 26.067179, "COMPARE": 0, "GN_ASCII": "Miami", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 382894.000000, "ELEVATION": 2.000000, "GTOPO30": 2.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 550, "UN_ADM0": "United States of America", "UN_LAT": 25.830000, "UN_LONG": -80.270000, "POP1950": 622.000000, "POP1955": 924.000000, "POP1960": 1361.000000, "POP1965": 1709.000000, "POP1970": 2141.000000, "POP1975": 2590.000000, "POP1980": 3122.000000, "POP1985": 3521.000000, "POP1990": 3969.000000, "POP1995": 4431.000000, "POP2000": 4946.000000, "POP2005": 5438.000000, "POP2010": 5585.000000, "POP2015": 5755.000000, "POP2020": 5969.000000, "POP2025": 6141.000000, "POP2050": 6272.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8930723.250254295766354, 2973039.88140566740185 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Atlanta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Atlanta", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Georgia", "ISO_A2": "US", "NOTE": null, "LATITUDE": 33.830014, "LONGITUDE": -84.399949, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 4506000, "POP_MIN": 422908, "POP_OTHER": 2874096, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": 4180439.000000, "MEGANAME": "Atlanta", "LS_NAME": "Atlanta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2928128.000000, "MAX_POP20": 3896411.000000, "MAX_POP50": 3910939.000000, "MAX_POP300": 3910939.000000, "MAX_POP310": 3910939.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 2761.000000, "MAX_AREAKM": 4086.000000, "MIN_AREAMI": 1066.000000, "MAX_AREAMI": 1578.000000, "MIN_PERKM": 1494.000000, "MAX_PERKM": 2459.000000, "MIN_PERMI": 929.000000, "MAX_PERMI": 1528.000000, "MIN_BBXMIN": -84.875000, "MAX_BBXMIN": -84.608333, "MIN_BBXMAX": -83.879976, "MAX_BBXMAX": -83.858333, "MIN_BBYMIN": 33.383333, "MAX_BBYMIN": 33.383333, "MIN_BBYMAX": 34.202715, "MAX_BBYMAX": 34.275000, "MEAN_BBXC": -84.328739, "MEAN_BBYC": 33.851552, "COMPARE": 0, "GN_ASCII": "Atlanta", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 0.000000, "GN_POP": 422908.000000, "ELEVATION": 320.000000, "GTOPO30": 305.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames match general.", "UN_FID": 524, "UN_ADM0": "United States of America", "UN_LAT": 33.790000, "UN_LONG": -84.340000, "POP1950": 513.000000, "POP1955": 631.000000, "POP1960": 776.000000, "POP1965": 959.000000, "POP1970": 1182.000000, "POP1975": 1386.000000, "POP1980": 1625.000000, "POP1985": 1879.000000, "POP1990": 2184.000000, "POP1995": 2781.000000, "POP2000": 3542.000000, "POP2005": 4307.000000, "POP2010": 4506.000000, "POP2015": 4695.000000, "POP2020": 4888.000000, "POP2025": 5035.000000, "POP2050": 5151.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9395576.000312818214297, 4006260.577644104138017 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Chicago", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Chicago", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Illinois", "ISO_A2": "US", "NOTE": null, "LATITUDE": 41.829991, "LONGITUDE": -87.750055, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 8990000, "POP_MIN": 2841952, "POP_OTHER": 3635101, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 4887398.000000, "MEGANAME": "Chicago", "LS_NAME": "Chicago", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3747798.000000, "MAX_POP20": 5069998.000000, "MAX_POP50": 8416660.000000, "MAX_POP300": 8416660.000000, "MAX_POP310": 8450289.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1345.000000, "MAX_AREAKM": 4804.000000, "MIN_AREAMI": 519.000000, "MAX_AREAMI": 1855.000000, "MIN_PERKM": 471.000000, "MAX_PERKM": 2946.000000, "MIN_PERMI": 293.000000, "MAX_PERMI": 1830.000000, "MIN_BBXMIN": -88.408333, "MAX_BBXMIN": -88.036290, "MIN_BBXMAX": -87.528138, "MAX_BBXMAX": -87.125000, "MIN_BBYMIN": 41.391667, "MAX_BBYMIN": 41.458333, "MIN_BBYMAX": 42.000972, "MAX_BBYMAX": 42.491667, "MEAN_BBXC": -87.858740, "MEAN_BBYC": 41.832719, "COMPARE": 0, "GN_ASCII": "Chicago", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 2841952.000000, "ELEVATION": 179.000000, "GTOPO30": 181.000000, "TIMEZONE": "America\/Chicago", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 531, "UN_ADM0": "United States of America", "UN_LAT": 41.820000, "UN_LONG": -87.640000, "POP1950": 4999.000000, "POP1955": 5565.000000, "POP1960": 6183.000000, "POP1965": 6639.000000, "POP1970": 7106.000000, "POP1975": 7160.000000, "POP1980": 7216.000000, "POP1985": 7285.000000, "POP1990": 7374.000000, "POP1995": 7839.000000, "POP2000": 8333.000000, "POP2005": 8820.000000, "POP2010": 8990.000000, "POP2015": 9211.000000, "POP2020": 9516.000000, "POP2025": 9756.000000, "POP2050": 9932.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9768508.04878812097013, 5135837.500524131581187 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Caracas", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Caracas", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Venezuela", "SOV_A3": "VEN", "ADM0NAME": "Venezuela", "ADM0_A3": "VEN", "ADM1NAME": "Distrito Capital", "ISO_A2": "VE", "NOTE": null, "LATITUDE": 10.500999, "LONGITUDE": -66.917037, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2985000, "POP_MIN": 1815679, "POP_OTHER": 2764555, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3646738.000000, "MEGANAME": "Caracas", "LS_NAME": "Caracas", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2818500.000000, "MAX_POP20": 3351058.000000, "MAX_POP50": 3351241.000000, "MAX_POP300": 3351241.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 224.000000, "MAX_AREAKM": 370.000000, "MIN_AREAMI": 86.000000, "MAX_AREAMI": 143.000000, "MIN_PERKM": 137.000000, "MAX_PERKM": 278.000000, "MIN_PERMI": 85.000000, "MAX_PERMI": 172.000000, "MIN_BBXMIN": -67.133333, "MAX_BBXMIN": -66.993057, "MIN_BBXMAX": -66.725000, "MAX_BBXMAX": -66.725000, "MIN_BBYMIN": 10.325000, "MAX_BBYMIN": 10.408333, "MIN_BBYMAX": 10.533671, "MAX_BBYMAX": 10.541667, "MEAN_BBXC": -66.917919, "MEAN_BBYC": 10.451672, "COMPARE": 0, "GN_ASCII": "Caracas", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 25.000000, "GN_POP": 1815679.000000, "ELEVATION": 0.000000, "GTOPO30": 920.000000, "TIMEZONE": "America\/Caracas", "GEONAMESNO": "GeoNames match general.", "UN_FID": 582, "UN_ADM0": "Venezuela (Bolivarian Republic of)", "UN_LAT": 10.490000, "UN_LONG": -66.890000, "POP1950": 694.000000, "POP1955": 955.000000, "POP1960": 1316.000000, "POP1965": 1657.000000, "POP1970": 2060.000000, "POP1975": 2342.000000, "POP1980": 2575.000000, "POP1985": 2693.000000, "POP1990": 2767.000000, "POP1995": 2816.000000, "POP2000": 2864.000000, "POP2005": 2930.000000, "POP2010": 2985.000000, "POP2015": 3098.000000, "POP2020": 3306.000000, "POP2025": 3482.000000, "POP2050": 3619.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7449387.117646638303995, 1175785.962760407710448 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Kiev", "NAMEPAR": null, "NAMEALT": "Kyiv", "DIFFASCII": 0, "NAMEASCII": "Kiev", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ukraine", "SOV_A3": "UKR", "ADM0NAME": "Ukraine", "ADM0_A3": "UKR", "ADM1NAME": "Kiev", "ISO_A2": "UA", "NOTE": null, "LATITUDE": 50.433367, "LONGITUDE": 30.516628, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2709000, "POP_MIN": 1662508, "POP_OTHER": 1611692, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 703448.000000, "MEGANAME": "Kyiv", "LS_NAME": "Kiev", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1662508.000000, "MAX_POP20": 1662508.000000, "MAX_POP50": 1662508.000000, "MAX_POP300": 1662508.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 217.000000, "MAX_AREAKM": 217.000000, "MIN_AREAMI": 84.000000, "MAX_AREAMI": 84.000000, "MIN_PERKM": 120.000000, "MAX_PERKM": 120.000000, "MIN_PERMI": 75.000000, "MAX_PERMI": 75.000000, "MIN_BBXMIN": 30.325000, "MAX_BBXMIN": 30.325000, "MIN_BBXMAX": 30.575000, "MAX_BBXMAX": 30.575000, "MIN_BBYMIN": 50.366667, "MAX_BBYMIN": 50.366667, "MIN_BBYMAX": 50.541667, "MAX_BBYMAX": 50.541667, "MEAN_BBXC": 30.452630, "MEAN_BBYC": 50.451094, "COMPARE": 0, "GN_ASCII": "Kiev", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 2514227.000000, "ELEVATION": 0.000000, "GTOPO30": 169.000000, "TIMEZONE": "Europe\/Kiev", "GEONAMESNO": "GeoNames match general.", "UN_FID": 511, "UN_ADM0": "Ukraine", "UN_LAT": 50.440000, "UN_LONG": 30.500000, "POP1950": 815.000000, "POP1955": 974.000000, "POP1960": 1163.000000, "POP1965": 1389.000000, "POP1970": 1655.000000, "POP1975": 1926.000000, "POP1980": 2201.000000, "POP1985": 2410.000000, "POP1990": 2574.000000, "POP1995": 2590.000000, "POP2000": 2606.000000, "POP2005": 2672.000000, "POP2010": 2709.000000, "POP2015": 2748.000000, "POP2020": 2770.000000, "POP2025": 2772.000000, "POP2050": 2772.000000, "CITYALT": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 3396878.874256375711411, 6522008.528510976582766 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Dubai", "NAMEPAR": "Dubayy", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dubai", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United Arab Emirates", "SOV_A3": "ARE", "ADM0NAME": "United Arab Emirates", "ADM0_A3": "ARE", "ADM1NAME": "Dubay", "ISO_A2": "AE", "NOTE": null, "LATITUDE": 25.229996, "LONGITUDE": 55.279974, "CHANGED": 1.000000, "NAMEDIFF": 1, "DIFFNOTE": "Name changed.", "POP_MAX": 1379000, "POP_MIN": 1137347, "POP_OTHER": 1166878, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 292223.000000, "MEGANAME": "Dubayy", "LS_NAME": "Dubayy", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1193251.000000, "MAX_POP20": 2244726.000000, "MAX_POP50": 2244726.000000, "MAX_POP300": 2244726.000000, "MAX_POP310": 2244726.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 187.000000, "MAX_AREAKM": 407.000000, "MIN_AREAMI": 72.000000, "MAX_AREAMI": 157.000000, "MIN_PERKM": 158.000000, "MAX_PERKM": 278.000000, "MIN_PERMI": 98.000000, "MAX_PERMI": 173.000000, "MIN_BBXMIN": 55.175000, "MAX_BBXMIN": 55.175000, "MIN_BBXMAX": 55.437142, "MAX_BBXMAX": 55.533333, "MIN_BBYMIN": 25.100000, "MAX_BBYMIN": 25.100000, "MIN_BBYMAX": 25.308333, "MAX_BBYMAX": 25.433333, "MEAN_BBXC": 55.361736, "MEAN_BBYC": 25.258666, "COMPARE": 1, "GN_ASCII": "Dubai", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 3.000000, "GN_POP": 1137347.000000, "ELEVATION": 0.000000, "GTOPO30": 9.000000, "TIMEZONE": "Asia\/Dubai", "GEONAMESNO": "GeoNames match general.", "UN_FID": 498, "UN_ADM0": "United Arab Emirates", "UN_LAT": 25.270000, "UN_LONG": 55.320000, "POP1950": 20.000000, "POP1955": 28.000000, "POP1960": 40.000000, "POP1965": 51.000000, "POP1970": 80.000000, "POP1975": 167.000000, "POP1980": 254.000000, "POP1985": 345.000000, "POP1990": 473.000000, "POP1995": 650.000000, "POP2000": 938.000000, "POP2005": 1272.000000, "POP2010": 1379.000000, "POP2015": 1516.000000, "POP2020": 1709.000000, "POP2025": 1894.000000, "POP2050": 2077.000000, "CITYALT": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 6153521.980750702321529, 2904260.475333499256521 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Tashkent", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tashkent", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Uzbekistan", "SOV_A3": "UZB", "ADM0NAME": "Uzbekistan", "ADM0_A3": "UZB", "ADM1NAME": "Tashkent", "ISO_A2": "UZ", "NOTE": null, "LATITUDE": 41.311702, "LONGITUDE": 69.294933, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2184000, "POP_MIN": 1978028, "POP_OTHER": 2806287, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1512569.000000, "MEGANAME": "Tashkent", "LS_NAME": "Tashkent", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2865234.000000, "MAX_POP20": 2865890.000000, "MAX_POP50": 2865890.000000, "MAX_POP300": 2865890.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 639.000000, "MAX_AREAKM": 643.000000, "MIN_AREAMI": 247.000000, "MAX_AREAMI": 248.000000, "MIN_PERKM": 377.000000, "MAX_PERKM": 383.000000, "MIN_PERMI": 234.000000, "MAX_PERMI": 238.000000, "MIN_BBXMIN": 69.050000, "MAX_BBXMIN": 69.050000, "MIN_BBXMAX": 69.436467, "MAX_BBXMAX": 69.450000, "MIN_BBYMIN": 41.141667, "MAX_BBYMIN": 41.141667, "MIN_BBYMAX": 41.483333, "MAX_BBYMAX": 41.483333, "MEAN_BBXC": 69.256717, "MEAN_BBYC": 41.318916, "COMPARE": 0, "GN_ASCII": "Tashkent", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 13.000000, "GN_POP": 1978028.000000, "ELEVATION": 0.000000, "GTOPO30": 460.000000, "TIMEZONE": "Asia\/Tashkent", "GEONAMESNO": "GeoNames match general.", "UN_FID": 580, "UN_ADM0": "Uzbekistan", "UN_LAT": 41.240000, "UN_LONG": 69.340000, "POP1950": 755.000000, "POP1955": 843.000000, "POP1960": 964.000000, "POP1965": 1165.000000, "POP1970": 1403.000000, "POP1975": 1612.000000, "POP1980": 1818.000000, "POP1985": 1958.000000, "POP1990": 2100.000000, "POP1995": 2116.000000, "POP2000": 2135.000000, "POP2005": 2158.000000, "POP2010": 2184.000000, "POP2015": 2247.000000, "POP2020": 2416.000000, "POP2025": 2636.000000, "POP2050": 2892.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 7713660.024030971340835, 5058715.291371923871338 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Madrid", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Madrid", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Kingdom of Spain", "SOV_A3": "ESP", "ADM0NAME": "Spain", "ADM0_A3": "ESP", "ADM1NAME": "Comunidad de Madrid", "ISO_A2": "ES", "NOTE": null, "LATITUDE": 40.400026, "LONGITUDE": -3.683352, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 5567000, "POP_MIN": 50437, "POP_OTHER": 3673427, "RANK_MAX": 13, "RANK_MIN": 8, "GEONAMEID": 3675707.000000, "MEGANAME": "Madrid", "LS_NAME": "Madrid", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3767139.000000, "MAX_POP20": 3767139.000000, "MAX_POP50": 3767139.000000, "MAX_POP300": 3767139.000000, "MAX_POP310": 3767139.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 690.000000, "MAX_AREAKM": 690.000000, "MIN_AREAMI": 266.000000, "MAX_AREAMI": 266.000000, "MIN_PERKM": 558.000000, "MAX_PERKM": 558.000000, "MIN_PERMI": 347.000000, "MAX_PERMI": 347.000000, "MIN_BBXMIN": -4.025000, "MAX_BBXMIN": -4.025000, "MIN_BBXMAX": -3.433333, "MAX_BBXMAX": -3.433333, "MIN_BBYMIN": 40.225000, "MAX_BBYMIN": 40.225000, "MIN_BBYMAX": 40.616667, "MAX_BBYMAX": 40.616667, "MEAN_BBXC": -3.749399, "MEAN_BBYC": 40.425498, "COMPARE": 0, "GN_ASCII": "Madrid", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 33.000000, "GN_POP": 50437.000000, "ELEVATION": 0.000000, "GTOPO30": 2400.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 464, "UN_ADM0": "Spain", "UN_LAT": 40.440000, "UN_LONG": -3.690000, "POP1950": 1700.000000, "POP1955": 2018.000000, "POP1960": 2392.000000, "POP1965": 2898.000000, "POP1970": 3521.000000, "POP1975": 3890.000000, "POP1980": 4253.000000, "POP1985": 4355.000000, "POP1990": 4414.000000, "POP1995": 4701.000000, "POP2000": 5045.000000, "POP2005": 5414.000000, "POP2010": 5567.000000, "POP2015": 5764.000000, "POP2020": 5918.000000, "POP2025": 5934.000000, "POP2050": 5935.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -410245.446087966440246, 4924528.870741635560989 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 7, "FEATURECLA": "Admin-1 capital", "NAME": "Geneva", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Geneva", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 0, "SOV0NAME": "Switzerland", "SOV_A3": "CHE", "ADM0NAME": "Switzerland", "ADM0_A3": "CHE", "ADM1NAME": "Genève", "ISO_A2": "CH", "NOTE": null, "LATITUDE": 46.210008, "LONGITUDE": 6.140028, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1240000, "POP_MIN": 192385, "POP_OTHER": 508284, "RANK_MAX": 12, "RANK_MIN": 9, "GEONAMEID": 2660646.000000, "MEGANAME": null, "LS_NAME": "Geneva", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 530422.000000, "MAX_POP20": 530422.000000, "MAX_POP50": 530422.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 179.000000, "MAX_AREAKM": 179.000000, "MIN_AREAMI": 69.000000, "MAX_AREAMI": 69.000000, "MIN_PERKM": 215.000000, "MAX_PERKM": 215.000000, "MIN_PERMI": 134.000000, "MAX_PERMI": 134.000000, "MIN_BBXMIN": 5.966667, "MAX_BBXMIN": 5.966667, "MIN_BBXMAX": 6.325000, "MAX_BBXMAX": 6.325000, "MIN_BBYMIN": 46.133333, "MAX_BBYMIN": 46.133333, "MIN_BBYMAX": 46.291667, "MAX_BBYMAX": 46.291667, "MEAN_BBXC": 6.142400, "MEAN_BBYC": 46.209427, "COMPARE": 0, "GN_ASCII": "Geneve", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 0.000000, "GN_POP": 183981.000000, "ELEVATION": 0.000000, "GTOPO30": 375.000000, "TIMEZONE": "Europe\/Zurich", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 683504.794211514061317, 5814067.182167599909008 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Stockholm", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Stockholm", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Sweden", "SOV_A3": "SWE", "ADM0NAME": "Sweden", "ADM0_A3": "SWE", "ADM1NAME": "Stockholm", "ISO_A2": "SE", "NOTE": null, "LATITUDE": 59.350760, "LONGITUDE": 18.097335, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 1264000, "POP_MIN": 1253309, "POP_OTHER": 0, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2673730.000000, "MEGANAME": "Stockholm", "LS_NAME": "Stockholm", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1337078.000000, "MAX_POP20": 1337078.000000, "MAX_POP50": 1337078.000000, "MAX_POP300": 1337078.000000, "MAX_POP310": 1337078.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 694.000000, "MAX_AREAKM": 694.000000, "MIN_AREAMI": 268.000000, "MAX_AREAMI": 268.000000, "MIN_PERKM": 629.000000, "MAX_PERKM": 629.000000, "MIN_PERMI": 391.000000, "MAX_PERMI": 391.000000, "MIN_BBXMIN": 17.775000, "MAX_BBXMIN": 17.775000, "MIN_BBXMAX": 18.408333, "MAX_BBXMAX": 18.408333, "MIN_BBYMIN": 59.091667, "MAX_BBYMIN": 59.091667, "MIN_BBYMAX": 59.558333, "MAX_BBYMAX": 59.558333, "MEAN_BBXC": 18.044982, "MEAN_BBYC": 59.328680, "COMPARE": 0, "GN_ASCII": "Stockholm", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 26.000000, "GN_POP": 1253309.000000, "ELEVATION": 0.000000, "GTOPO30": 20.000000, "TIMEZONE": "Europe\/Stockholm", "GEONAMESNO": "GeoNames match general.", "UN_FID": 467, "UN_ADM0": "Sweden", "UN_LAT": 59.330000, "UN_LONG": 17.990000, "POP1950": 741.000000, "POP1955": 772.000000, "POP1960": 805.000000, "POP1965": 1003.000000, "POP1970": 1035.000000, "POP1975": 1015.000000, "POP1980": 992.000000, "POP1985": 1012.000000, "POP1990": 1038.000000, "POP1995": 1138.000000, "POP2000": 1206.000000, "POP2005": 1248.000000, "POP2010": 1264.000000, "POP2015": 1285.000000, "POP2020": 1308.000000, "POP2025": 1326.000000, "POP2050": 1343.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2014369.475180088542402, 8257013.830266736447811 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Bangkok", "NAMEPAR": null, "NAMEALT": "Krung Thep", "DIFFASCII": 0, "NAMEASCII": "Bangkok", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Thailand", "SOV_A3": "THA", "ADM0NAME": "Thailand", "ADM0_A3": "THA", "ADM1NAME": "Bangkok Metropolis", "ISO_A2": "TH", "NOTE": null, "LATITUDE": 13.749999, "LONGITUDE": 100.516645, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 6704000, "POP_MIN": 5104476, "POP_OTHER": 5082758, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 1609350.000000, "MEGANAME": "Krung Thep", "LS_NAME": "Bangkok", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5323600.000000, "MAX_POP20": 8823534.000000, "MAX_POP50": 9210939.000000, "MAX_POP300": 9206246.000000, "MAX_POP310": 9206246.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 815.000000, "MAX_AREAKM": 2350.000000, "MIN_AREAMI": 315.000000, "MAX_AREAMI": 908.000000, "MIN_PERKM": 280.000000, "MAX_PERKM": 1354.000000, "MIN_PERMI": 174.000000, "MAX_PERMI": 841.000000, "MIN_BBXMIN": 99.991667, "MAX_BBXMIN": 100.216667, "MIN_BBXMAX": 100.844293, "MAX_BBXMAX": 101.016667, "MIN_BBYMIN": 13.500000, "MAX_BBYMIN": 13.516667, "MIN_BBYMAX": 13.872295, "MAX_BBYMAX": 14.158333, "MEAN_BBXC": 100.545047, "MEAN_BBYC": 13.761017, "COMPARE": 0, "GN_ASCII": "Bangkok", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 40.000000, "GN_POP": 5104476.000000, "ELEVATION": 0.000000, "GTOPO30": 2.000000, "TIMEZONE": "Asia\/Bangkok", "GEONAMESNO": "GeoNames match general.", "UN_FID": 496, "UN_ADM0": "Thailand", "UN_LAT": 13.750000, "UN_LONG": 100.510000, "POP1950": 1360.000000, "POP1955": 1712.000000, "POP1960": 2151.000000, "POP1965": 2584.000000, "POP1970": 3110.000000, "POP1975": 3842.000000, "POP1980": 4723.000000, "POP1985": 5279.000000, "POP1990": 5888.000000, "POP1995": 6106.000000, "POP2000": 6332.000000, "POP2005": 6582.000000, "POP2010": 6704.000000, "POP2015": 6918.000000, "POP2020": 7332.000000, "POP2025": 7807.000000, "POP2050": 8332.000000, "CITYALT": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 11189245.086953386664391, 1545773.113991710357368 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Lima", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lima", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Peru", "SOV_A3": "PER", "ADM0NAME": "Peru", "ADM0_A3": "PER", "ADM1NAME": "Lima", "ISO_A2": "PE", "NOTE": null, "LATITUDE": -12.048013, "LONGITUDE": -77.050062, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 8012000, "POP_MIN": 6758234, "POP_OTHER": 6068380, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 3936456.000000, "MEGANAME": "Lima", "LS_NAME": "Lima2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 6758234.000000, "MAX_POP20": 7092933.000000, "MAX_POP50": 7115614.000000, "MAX_POP300": 7115806.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 724.000000, "MAX_AREAKM": 790.000000, "MIN_AREAMI": 279.000000, "MAX_AREAMI": 305.000000, "MIN_PERKM": 315.000000, "MAX_PERKM": 384.000000, "MIN_PERMI": 196.000000, "MAX_PERMI": 239.000000, "MIN_BBXMIN": -77.166667, "MAX_BBXMIN": -77.153161, "MIN_BBXMAX": -76.850000, "MAX_BBXMAX": -76.833333, "MIN_BBYMIN": -12.316667, "MAX_BBYMIN": -12.281801, "MIN_BBYMAX": -11.808333, "MAX_BBYMAX": -11.808333, "MEAN_BBXC": -77.010199, "MEAN_BBYC": -12.041474, "COMPARE": 0, "GN_ASCII": "Lima", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 15.000000, "GN_POP": 7737002.000000, "ELEVATION": 0.000000, "GTOPO30": 108.000000, "TIMEZONE": "America\/Lima", "GEONAMESNO": "GeoNames match general.", "UN_FID": 411, "UN_ADM0": "Peru", "UN_LAT": -12.080000, "UN_LONG": -77.040000, "POP1950": 1066.000000, "POP1955": 1368.000000, "POP1960": 1756.000000, "POP1965": 2284.000000, "POP1970": 2980.000000, "POP1975": 3696.000000, "POP1980": 4438.000000, "POP1985": 5116.000000, "POP1990": 5837.000000, "POP1995": 6537.000000, "POP2000": 7116.000000, "POP2005": 7747.000000, "POP2010": 8012.000000, "POP2015": 8375.000000, "POP2020": 8857.000000, "POP2025": 9251.000000, "POP2050": 9600.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8577390.289975620806217, -1350951.557260310743004 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Dakar", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dakar", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Senegal", "SOV_A3": "SEN", "ADM0NAME": "Senegal", "ADM0_A3": "SEN", "ADM1NAME": "Dakar", "ISO_A2": "SM", "NOTE": null, "LATITUDE": 14.715832, "LONGITUDE": -17.473130, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2604000, "POP_MIN": 2476400, "POP_OTHER": 2470140, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2253354.000000, "MEGANAME": "Dakar", "LS_NAME": "Dakar", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2635239.000000, "MAX_POP20": 2634882.000000, "MAX_POP50": 2660614.000000, "MAX_POP300": 2660614.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 257.000000, "MAX_AREAKM": 302.000000, "MIN_AREAMI": 99.000000, "MAX_AREAMI": 117.000000, "MIN_PERKM": 222.000000, "MAX_PERKM": 288.000000, "MIN_PERMI": 138.000000, "MAX_PERMI": 179.000000, "MIN_BBXMIN": -17.533333, "MAX_BBXMIN": -17.533333, "MIN_BBXMAX": -17.200000, "MAX_BBXMAX": -17.125000, "MIN_BBYMIN": 14.650000, "MAX_BBYMIN": 14.650000, "MIN_BBYMAX": 14.825000, "MAX_BBYMAX": 14.825000, "MEAN_BBXC": -17.343779, "MEAN_BBYC": 14.742828, "COMPARE": 0, "GN_ASCII": "Dakar", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 2476400.000000, "ELEVATION": 0.000000, "GTOPO30": 14.000000, "TIMEZONE": "Africa\/Dakar", "GEONAMESNO": "GeoNames match general.", "UN_FID": 447, "UN_ADM0": "Senegal", "UN_LAT": 14.680000, "UN_LONG": -17.450000, "POP1950": 211.000000, "POP1955": 235.000000, "POP1960": 359.000000, "POP1965": 473.000000, "POP1970": 610.000000, "POP1975": 782.000000, "POP1980": 957.000000, "POP1985": 1162.000000, "POP1990": 1405.000000, "POP1995": 1688.000000, "POP2000": 2029.000000, "POP2005": 2434.000000, "POP2010": 2604.000000, "POP2015": 2856.000000, "POP2020": 3275.000000, "POP2025": 3726.000000, "POP2050": 4225.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1945316.56045223143883, 1656696.331062559271231 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Johannesburg", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Johannesburg", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "South Africa", "SOV_A3": "ZAF", "ADM0NAME": "South Africa", "ADM0_A3": "ZAF", "ADM1NAME": "Gauteng", "ISO_A2": "ZA", "NOTE": null, "LATITUDE": -26.170045, "LONGITUDE": 28.030010, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed feature class.", "POP_MAX": 3435000, "POP_MIN": 2026469, "POP_OTHER": 3852246, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 993800.000000, "MEGANAME": "Johannesburg", "LS_NAME": "Johannesburg", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3887168.000000, "MAX_POP20": 5413549.000000, "MAX_POP50": 5413549.000000, "MAX_POP300": 5413549.000000, "MAX_POP310": 5451385.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1124.000000, "MAX_AREAKM": 1614.000000, "MIN_AREAMI": 434.000000, "MAX_AREAMI": 623.000000, "MIN_PERKM": 497.000000, "MAX_PERKM": 828.000000, "MIN_PERMI": 309.000000, "MAX_PERMI": 514.000000, "MIN_BBXMIN": 27.733333, "MAX_BBXMIN": 27.733333, "MIN_BBXMAX": 28.193693, "MAX_BBXMAX": 28.491667, "MIN_BBYMIN": -26.400000, "MAX_BBYMIN": -26.400000, "MIN_BBYMAX": -25.991667, "MAX_BBYMAX": -25.941667, "MEAN_BBXC": 28.063712, "MEAN_BBYC": -26.187259, "COMPARE": 0, "GN_ASCII": "Johannesburg", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 6.000000, "GN_POP": 2026469.000000, "ELEVATION": 0.000000, "GTOPO30": 1775.000000, "TIMEZONE": "Africa\/Johannesburg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 458, "UN_ADM0": "South Africa", "UN_LAT": -26.170000, "UN_LONG": 28.000000, "POP1950": 900.000000, "POP1955": 1016.000000, "POP1960": 1147.000000, "POP1965": 1288.000000, "POP1970": 1444.000000, "POP1975": 1547.000000, "POP1980": 1656.000000, "POP1985": 1773.000000, "POP1990": 1898.000000, "POP1995": 2265.000000, "POP2000": 2732.000000, "POP2005": 3258.000000, "POP2010": 3435.000000, "POP2015": 3618.000000, "POP2020": 3785.000000, "POP2025": 3916.000000, "POP2050": 4041.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3120069.797375320456922, -3019915.649792860727757 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Amsterdam", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Amsterdam", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto capita", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Kingdom of the Netherlands", "SOV_A3": "NLD", "ADM0NAME": "Netherlands", "ADM0_A3": "NLD", "ADM1NAME": "Noord-Holland", "ISO_A2": "NL", "NOTE": null, "LATITUDE": 52.349969, "LONGITUDE": 4.916640, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1031000, "POP_MIN": 741636, "POP_OTHER": 962488, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2759794.000000, "MEGANAME": "Amsterdam", "LS_NAME": "Amsterdam", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1072902.000000, "MAX_POP20": 1072902.000000, "MAX_POP50": 1108173.000000, "MAX_POP300": 1108173.000000, "MAX_POP310": 1108173.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 275.000000, "MAX_AREAKM": 300.000000, "MIN_AREAMI": 106.000000, "MAX_AREAMI": 116.000000, "MIN_PERKM": 293.000000, "MAX_PERKM": 343.000000, "MIN_PERMI": 182.000000, "MAX_PERMI": 213.000000, "MIN_BBXMIN": 4.725000, "MAX_BBXMIN": 4.757753, "MIN_BBXMAX": 5.058333, "MAX_BBXMAX": 5.058333, "MIN_BBYMIN": 52.183333, "MAX_BBYMIN": 52.183333, "MIN_BBYMAX": 52.508333, "MAX_BBYMAX": 52.533333, "MEAN_BBXC": 4.871429, "MEAN_BBYC": 52.348868, "COMPARE": 0, "GN_ASCII": "Amsterdam", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 741636.000000, "ELEVATION": 0.000000, "GTOPO30": -2.000000, "TIMEZONE": "Europe\/Amsterdam", "GEONAMESNO": "GeoNames match general.", "UN_FID": 379, "UN_ADM0": "Netherlands", "UN_LAT": 52.370000, "UN_LONG": 4.890000, "POP1950": 851.000000, "POP1955": 871.000000, "POP1960": 895.000000, "POP1965": 942.000000, "POP1970": 927.000000, "POP1975": 978.000000, "POP1980": 941.000000, "POP1985": 907.000000, "POP1990": 936.000000, "POP1995": 988.000000, "POP2000": 1005.000000, "POP2005": 1023.000000, "POP2010": 1031.000000, "POP2015": 1044.000000, "POP2020": 1064.000000, "POP2025": 1078.000000, "POP2050": 1089.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 547101.268817671458237, 6864007.956377770751715 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-1 capital", "NAME": "Casablanca", "NAMEPAR": null, "NAMEALT": "Dar-el-Beida", "DIFFASCII": 0, "NAMEASCII": "Casablanca", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Morocco", "SOV_A3": "MAR", "ADM0NAME": "Morocco", "ADM0_A3": "MAR", "ADM1NAME": "Grand Casablanca", "ISO_A2": "MA", "NOTE": null, "LATITUDE": 33.599976, "LONGITUDE": -7.616367, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3181000, "POP_MIN": 3144909, "POP_OTHER": 3718797, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2553604.000000, "MEGANAME": "Dar-el-Beida", "LS_NAME": "Casablanca", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3796279.000000, "MAX_POP20": 3796279.000000, "MAX_POP50": 3796279.000000, "MAX_POP300": 3796279.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 436.000000, "MAX_AREAKM": 436.000000, "MIN_AREAMI": 168.000000, "MAX_AREAMI": 168.000000, "MIN_PERKM": 261.000000, "MAX_PERKM": 261.000000, "MIN_PERMI": 162.000000, "MAX_PERMI": 162.000000, "MIN_BBXMIN": -7.700000, "MAX_BBXMIN": -7.700000, "MIN_BBXMAX": -7.325000, "MAX_BBXMAX": -7.325000, "MIN_BBYMIN": 33.391667, "MAX_BBYMIN": 33.391667, "MIN_BBYMAX": 33.733333, "MAX_BBYMAX": 33.733333, "MEAN_BBXC": -7.518511, "MEAN_BBYC": 33.557664, "COMPARE": 0, "GN_ASCII": "Casablanca", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 45.000000, "GN_POP": 3144909.000000, "ELEVATION": 0.000000, "GTOPO30": 17.000000, "TIMEZONE": "Africa\/Casablanca", "GEONAMESNO": "GeoNames match general.", "UN_FID": 372, "UN_ADM0": "Morocco", "UN_LAT": 33.600000, "UN_LONG": -7.630000, "POP1950": 625.000000, "POP1955": 778.000000, "POP1960": 967.000000, "POP1965": 1206.000000, "POP1970": 1505.000000, "POP1975": 1793.000000, "POP1980": 2109.000000, "POP1985": 2406.000000, "POP1990": 2682.000000, "POP1995": 2951.000000, "POP2000": 3043.000000, "POP2005": 3138.000000, "POP2010": 3181.000000, "POP2015": 3267.000000, "POP2020": 3475.000000, "POP2025": 3716.000000, "POP2050": 3949.000000, "CITYALT": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -848066.756335527170449, 3975474.316349029541016 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Seoul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Seoul", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Korea, South", "SOV_A3": "KOR", "ADM0NAME": "South Korea", "ADM0_A3": "KOR", "ADM1NAME": "Seoul", "ISO_A2": "KR", "NOTE": null, "LATITUDE": 37.566349, "LONGITUDE": 126.999731, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 9796000, "POP_MIN": 9796000, "POP_OTHER": 12018058, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 1835848.000000, "MEGANAME": "Seoul", "LS_NAME": "Seoul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 12322855.000000, "MAX_POP20": 13143622.000000, "MAX_POP50": 21387676.000000, "MAX_POP300": 21991959.000000, "MAX_POP310": 21991959.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 971.000000, "MAX_AREAKM": 2718.000000, "MIN_AREAMI": 375.000000, "MAX_AREAMI": 1049.000000, "MIN_PERKM": 546.000000, "MAX_PERKM": 1901.000000, "MIN_PERMI": 340.000000, "MAX_PERMI": 1181.000000, "MIN_BBXMIN": 126.550000, "MAX_BBXMIN": 126.767185, "MIN_BBXMAX": 127.266667, "MAX_BBXMAX": 127.325000, "MIN_BBYMIN": 36.750000, "MAX_BBYMIN": 37.412022, "MIN_BBYMAX": 37.791667, "MAX_BBYMAX": 37.875000, "MEAN_BBXC": 126.971295, "MEAN_BBYC": 37.485925, "COMPARE": 0, "GN_ASCII": "Seoul", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 10349312.000000, "ELEVATION": 0.000000, "GTOPO30": 46.000000, "TIMEZONE": "Asia\/Seoul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 336, "UN_ADM0": "Republic of Korea", "UN_LAT": 37.540000, "UN_LONG": 126.930000, "POP1950": 1021.000000, "POP1955": 1553.000000, "POP1960": 2361.000000, "POP1965": 3452.000000, "POP1970": 5312.000000, "POP1975": 6808.000000, "POP1980": 8258.000000, "POP1985": 9547.000000, "POP1990": 10544.000000, "POP1995": 10256.000000, "POP2000": 9917.000000, "POP2005": 9825.000000, "POP2010": 9796.000000, "POP2015": 9762.000000, "POP2020": 9740.000000, "POP2025": 9738.000000, "POP2050": 9738.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 14137328.773458210751414, 4518618.597544295713305 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Manila", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Manila", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official, de fa", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Philippines", "SOV_A3": "PHL", "ADM0NAME": "Philippines", "ADM0_A3": "PHL", "ADM1NAME": "Metropolitan Manila", "ISO_A2": "PH", "NOTE": null, "LATITUDE": 14.604159, "LONGITUDE": 120.982217, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11100000, "POP_MIN": 3077575, "POP_OTHER": 2381280, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 1701668.000000, "MEGANAME": "Manila", "LS_NAME": "Manila", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3077575.000000, "MAX_POP20": 3077575.000000, "MAX_POP50": 3077575.000000, "MAX_POP300": 23366503.000000, "MAX_POP310": 26749011.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 67.000000, "MAX_AREAKM": 8820.000000, "MIN_AREAMI": 26.000000, "MAX_AREAMI": 3405.000000, "MIN_PERKM": 46.000000, "MAX_PERKM": 5298.000000, "MIN_PERMI": 29.000000, "MAX_PERMI": 3292.000000, "MIN_BBXMIN": 120.141667, "MAX_BBXMIN": 120.925000, "MIN_BBXMAX": 121.038985, "MAX_BBXMAX": 121.333333, "MIN_BBYMIN": 14.016667, "MAX_BBYMIN": 14.571814, "MIN_BBYMAX": 14.702876, "MAX_BBYMAX": 16.416667, "MEAN_BBXC": 120.915044, "MEAN_BBYC": 14.823118, "COMPARE": 0, "GN_ASCII": "Manila", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 10444527.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Asia\/Manila", "GEONAMESNO": "GeoNames match general.", "UN_FID": 414, "UN_ADM0": "Philippines", "UN_LAT": 14.610000, "UN_LONG": 120.960000, "POP1950": 1544.000000, "POP1955": 1872.000000, "POP1960": 2274.000000, "POP1965": 2829.000000, "POP1970": 3534.000000, "POP1975": 4999.000000, "POP1980": 5955.000000, "POP1985": 6888.000000, "POP1990": 7973.000000, "POP1995": 9401.000000, "POP2000": 9958.000000, "POP2005": 10761.000000, "POP2010": 11100.000000, "POP2015": 11662.000000, "POP2020": 12786.000000, "POP2025": 13892.000000, "POP2050": 14808.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13467462.197542432695627, 1643846.533365988638252 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 2, "FEATURECLA": "Admin-1 capital", "NAME": "Monterrey", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Monterrey", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Mexico", "SOV_A3": "MEX", "ADM0NAME": "Mexico", "ADM0_A3": "MEX", "ADM1NAME": "Nuevo León", "ISO_A2": "MX", "NOTE": null, "LATITUDE": 25.669995, "LONGITUDE": -100.329985, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3712000, "POP_MIN": 1122874, "POP_OTHER": 3225636, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3995465.000000, "MEGANAME": "Monterrey", "LS_NAME": "Monterrey", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3296184.000000, "MAX_POP20": 3296184.000000, "MAX_POP50": 3296184.000000, "MAX_POP300": 3296184.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 594.000000, "MAX_AREAKM": 594.000000, "MIN_AREAMI": 229.000000, "MAX_AREAMI": 229.000000, "MIN_PERKM": 208.000000, "MAX_PERKM": 208.000000, "MIN_PERMI": 130.000000, "MAX_PERMI": 130.000000, "MIN_BBXMIN": -100.500000, "MAX_BBXMIN": -100.500000, "MIN_BBXMAX": -100.125000, "MAX_BBXMAX": -100.125000, "MIN_BBYMIN": 25.575000, "MAX_BBYMIN": 25.575000, "MIN_BBYMAX": 25.850000, "MAX_BBYMAX": 25.850000, "MEAN_BBXC": -100.290632, "MEAN_BBYC": 25.716130, "COMPARE": 0, "GN_ASCII": "Monterrey", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 19.000000, "GN_POP": 1122874.000000, "ELEVATION": 0.000000, "GTOPO30": 563.000000, "TIMEZONE": "America\/Monterrey", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 359, "UN_ADM0": "Mexico", "UN_LAT": 25.670000, "UN_LONG": -100.310000, "POP1950": 356.000000, "POP1955": 498.000000, "POP1960": 698.000000, "POP1965": 943.000000, "POP1970": 1267.000000, "POP1975": 1589.000000, "POP1980": 1992.000000, "POP1985": 2273.000000, "POP1990": 2594.000000, "POP1995": 2961.000000, "POP2000": 3266.000000, "POP2005": 3579.000000, "POP2010": 3712.000000, "POP2015": 3901.000000, "POP2020": 4140.000000, "POP2025": 4298.000000, "POP2050": 4413.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -11168899.429410213604569, 2958505.838591093197465 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Auckland", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Auckland", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "New Zealand", "SOV_A3": "NZL", "ADM0NAME": "New Zealand", "ADM0_A3": "NZL", "ADM1NAME": "Auckland", "ISO_A2": "NZ", "NOTE": null, "LATITUDE": -36.850013, "LONGITUDE": 174.764981, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1245000, "POP_MIN": 274020, "POP_OTHER": 243794, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": 2193733.000000, "MEGANAME": "Auckland", "LS_NAME": "Auckland", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 274020.000000, "MAX_POP20": 354233.000000, "MAX_POP50": 350364.000000, "MAX_POP300": 638000.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 169.000000, "MAX_AREAKM": 399.000000, "MIN_AREAMI": 65.000000, "MAX_AREAMI": 154.000000, "MIN_PERKM": 105.000000, "MAX_PERKM": 266.000000, "MIN_PERMI": 65.000000, "MAX_PERMI": 166.000000, "MIN_BBXMIN": 174.583333, "MAX_BBXMIN": 174.657483, "MIN_BBXMAX": 174.883333, "MAX_BBXMAX": 174.983333, "MIN_BBYMIN": -37.091667, "MAX_BBYMIN": -36.964958, "MIN_BBYMAX": -36.825000, "MAX_BBYMAX": -36.800000, "MEAN_BBXC": 174.755045, "MEAN_BBYC": -36.896818, "COMPARE": 0, "GN_ASCII": "Auckland", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 417910.000000, "ELEVATION": 0.000000, "GTOPO30": 26.000000, "TIMEZONE": "Pacific\/Auckland", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 381, "UN_ADM0": "New Zealand", "UN_LAT": -36.900000, "UN_LONG": 174.760000, "POP1950": 319.000000, "POP1955": 387.000000, "POP1960": 440.000000, "POP1965": 532.000000, "POP1970": 635.000000, "POP1975": 729.000000, "POP1980": 774.000000, "POP1985": 812.000000, "POP1990": 870.000000, "POP1995": 976.000000, "POP2000": 1063.000000, "POP2005": 1189.000000, "POP2010": 1245.000000, "POP2015": 1321.000000, "POP2020": 1398.000000, "POP2025": 1441.000000, "POP2050": 1475.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19454532.062974482774734, -4417950.412091337144375 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Berlin", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Berlin", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Germany", "SOV_A3": "DEU", "ADM0NAME": "Germany", "ADM0_A3": "DEU", "ADM1NAME": "Berlin", "ISO_A2": "DE", "NOTE": null, "LATITUDE": 52.521819, "LONGITUDE": 13.401549, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 3406000, "POP_MIN": 3094014, "POP_OTHER": 3013258, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2950159.000000, "MEGANAME": "Berlin", "LS_NAME": "Berlin", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3094014.000000, "MAX_POP20": 3093307.000000, "MAX_POP50": 3503466.000000, "MAX_POP300": 3503466.000000, "MAX_POP310": 3503466.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 811.000000, "MAX_AREAKM": 1021.000000, "MIN_AREAMI": 313.000000, "MAX_AREAMI": 394.000000, "MIN_PERKM": 482.000000, "MAX_PERKM": 709.000000, "MIN_PERMI": 300.000000, "MAX_PERMI": 441.000000, "MIN_BBXMIN": 12.958333, "MAX_BBXMIN": 13.193843, "MIN_BBXMAX": 13.925000, "MAX_BBXMAX": 13.925000, "MIN_BBYMIN": 52.275000, "MAX_BBYMIN": 52.275000, "MIN_BBYMAX": 52.708333, "MAX_BBYMAX": 52.708333, "MEAN_BBXC": 13.418329, "MEAN_BBYC": 52.503658, "COMPARE": 0, "GN_ASCII": "Berlin", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 16.000000, "GN_POP": 3426354.000000, "ELEVATION": 74.000000, "GTOPO30": 35.000000, "TIMEZONE": "Europe\/Berlin", "GEONAMESNO": "GeoNames match general.", "UN_FID": 192, "UN_ADM0": "Germany", "UN_LAT": 52.510000, "UN_LONG": 13.320000, "POP1950": 3352.000000, "POP1955": 3299.000000, "POP1960": 3260.000000, "POP1965": 3232.000000, "POP1970": 3206.000000, "POP1975": 3130.000000, "POP1980": 3056.000000, "POP1985": 3060.000000, "POP1990": 3422.000000, "POP1995": 3471.000000, "POP2000": 3384.000000, "POP2005": 3391.000000, "POP2010": 3406.000000, "POP2015": 3423.000000, "POP2020": 3434.000000, "POP2025": 3436.000000, "POP2050": 3436.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1491636.956598605262116, 6895388.533179172314703 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Urumqi", "NAMEPAR": null, "NAMEALT": "Ürümqi|Wulumqi", "DIFFASCII": 0, "NAMEASCII": "Urumqi", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "China", "ADM0_A3": "CHN", "ADM1NAME": "Xinjiang Uygur", "ISO_A2": "CN", "NOTE": null, "LATITUDE": 43.805012, "LONGITUDE": 87.575006, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2151000, "POP_MIN": 1508225, "POP_OTHER": 2044401, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1529102.000000, "MEGANAME": "Ürümqi (Wulumqi)", "LS_NAME": "Urumqi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2066046.000000, "MAX_POP20": 2066046.000000, "MAX_POP50": 2066046.000000, "MAX_POP300": 2066046.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 361.000000, "MAX_AREAKM": 361.000000, "MIN_AREAMI": 139.000000, "MAX_AREAMI": 139.000000, "MIN_PERKM": 318.000000, "MAX_PERKM": 318.000000, "MIN_PERMI": 198.000000, "MAX_PERMI": 198.000000, "MIN_BBXMIN": 87.358333, "MAX_BBXMIN": 87.358333, "MIN_BBXMAX": 87.725000, "MAX_BBXMAX": 87.725000, "MIN_BBYMIN": 43.641667, "MAX_BBYMIN": 43.641667, "MIN_BBYMAX": 44.016667, "MAX_BBYMAX": 44.016667, "MEAN_BBXC": 87.578494, "MEAN_BBYC": 43.854525, "COMPARE": 0, "GN_ASCII": "Urumqi", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 13.000000, "GN_POP": 1508225.000000, "ELEVATION": 0.000000, "GTOPO30": 915.000000, "TIMEZONE": "Asia\/Urumqi", "GEONAMESNO": "GeoNames match general.", "UN_FID": 118, "UN_ADM0": "China", "UN_LAT": 43.780000, "UN_LONG": 87.580000, "POP1950": 253.000000, "POP1955": 312.000000, "POP1960": 384.000000, "POP1965": 472.000000, "POP1970": 581.000000, "POP1975": 715.000000, "POP1980": 881.000000, "POP1985": 1029.000000, "POP1990": 1161.000000, "POP1995": 1417.000000, "POP2000": 1730.000000, "POP2005": 2025.000000, "POP2010": 2151.000000, "POP2015": 2340.000000, "POP2020": 2620.000000, "POP2025": 2851.000000, "POP2050": 3038.000000, "CITYALT": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 9748588.423727145418525, 5435616.939674494788051 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Chengdu", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Chengdu", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "China", "ADM0_A3": "CHN", "ADM1NAME": "Sichuan", "ISO_A2": "CN", "NOTE": null, "LATITUDE": 30.670000, "LONGITUDE": 104.070019, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4123000, "POP_MIN": 3950437, "POP_OTHER": 11622929, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1815286.000000, "MEGANAME": "Chengdu", "LS_NAME": "Chengdu", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 9954810.000000, "MAX_POP20": 11359674.000000, "MAX_POP50": 24374217.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 5912.000000, "MAX_AREAKM": 24244.000000, "MIN_AREAMI": 2283.000000, "MAX_AREAMI": 9361.000000, "MIN_PERKM": 2296.000000, "MAX_PERKM": 11900.000000, "MIN_PERMI": 1427.000000, "MAX_PERMI": 7394.000000, "MIN_BBXMIN": 103.125000, "MAX_BBXMIN": 103.383333, "MIN_BBXMAX": 104.433333, "MAX_BBXMAX": 105.375000, "MIN_BBYMIN": 28.738768, "MAX_BBYMIN": 30.065456, "MIN_BBYMAX": 31.083333, "MAX_BBYMAX": 31.341667, "MEAN_BBXC": 104.039242, "MEAN_BBYC": 30.486458, "COMPARE": 0, "GN_ASCII": "Chengdu", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 32.000000, "GN_POP": 3950437.000000, "ELEVATION": 0.000000, "GTOPO30": 529.000000, "TIMEZONE": "Asia\/Chongqing", "GEONAMESNO": "GeoNames match general.", "UN_FID": 31, "UN_ADM0": "China", "UN_LAT": 30.670000, "UN_LONG": 104.070000, "POP1950": 768.000000, "POP1955": 922.000000, "POP1960": 1106.000000, "POP1965": 1327.000000, "POP1970": 1592.000000, "POP1975": 1911.000000, "POP1980": 2293.000000, "POP1985": 2639.000000, "POP1990": 2955.000000, "POP1995": 3403.000000, "POP2000": 3919.000000, "POP2005": 4065.000000, "POP2010": 4123.000000, "POP2015": 4266.000000, "POP2020": 4634.000000, "POP2025": 5014.000000, "POP2050": 5320.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11584804.964434115216136, 3590217.956900402903557 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 2, "FEATURECLA": "Admin-1 region capital", "NAME": "Osaka", "NAMEPAR": null, "NAMEALT": "Osaka-Kobe", "DIFFASCII": 0, "NAMEASCII": "Osaka", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Japan", "SOV_A3": "JPN", "ADM0NAME": "Japan", "ADM0_A3": "JPN", "ADM1NAME": "Osaka", "ISO_A2": "JP", "NOTE": null, "LATITUDE": 34.750035, "LONGITUDE": 135.460145, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed feature to Admin-0 region capital.", "POP_MAX": 11294000, "POP_MIN": 2592413, "POP_OTHER": 9630783, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 1853909.000000, "MEGANAME": "Osaka-Kobe", "LS_NAME": "Osaka", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 10169723.000000, "MAX_POP20": 10259448.000000, "MAX_POP50": 13292739.000000, "MAX_POP300": 15645640.000000, "MAX_POP310": 15645640.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1561.000000, "MAX_AREAKM": 2861.000000, "MIN_AREAMI": 603.000000, "MAX_AREAMI": 1105.000000, "MIN_PERKM": 546.000000, "MAX_PERKM": 1202.000000, "MIN_PERMI": 339.000000, "MAX_PERMI": 747.000000, "MIN_BBXMIN": 134.508333, "MAX_BBXMIN": 135.304598, "MIN_BBXMAX": 135.883333, "MAX_BBXMAX": 135.883333, "MIN_BBYMIN": 34.325000, "MAX_BBYMIN": 34.408333, "MIN_BBYMAX": 34.916667, "MAX_BBYMAX": 35.100000, "MEAN_BBXC": 135.475415, "MEAN_BBYC": 34.676719, "COMPARE": 0, "GN_ASCII": "Osaka", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 32.000000, "GN_POP": 2592413.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Asia\/Tokyo", "GEONAMESNO": "GeoNames rough area, rough name.", "UN_FID": 315, "UN_ADM0": "Japan", "UN_LAT": 34.630000, "UN_LONG": 135.510000, "POP1950": 4147.000000, "POP1955": 5120.000000, "POP1960": 6227.000000, "POP1965": 7654.000000, "POP1970": 9408.000000, "POP1975": 9844.000000, "POP1980": 9990.000000, "POP1985": 10350.000000, "POP1990": 11035.000000, "POP1995": 11052.000000, "POP2000": 11165.000000, "POP2005": 11258.000000, "POP2010": 11294.000000, "POP2015": 11337.000000, "POP2020": 11365.000000, "POP2025": 11368.000000, "POP2050": 11368.000000, "CITYALT": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 15079137.731622118502855, 4130227.234940600115806 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Kinshasa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kinshasa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Congo (Kinshasa)", "SOV_A3": "COD", "ADM0NAME": "Congo (Kinshasa)", "ADM0_A3": "COD", "ADM1NAME": "Kinshasa City", "ISO_A2": "CD", "NOTE": null, "LATITUDE": -4.329724, "LONGITUDE": 15.314972, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 7843000, "POP_MIN": 5565703, "POP_OTHER": 4738154, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 2314302.000000, "MEGANAME": "Kinshasa", "LS_NAME": "Kinshasa", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5565703.000000, "MAX_POP20": 5567255.000000, "MAX_POP50": 5567255.000000, "MAX_POP300": 5567255.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 346.000000, "MAX_AREAKM": 357.000000, "MIN_AREAMI": 134.000000, "MAX_AREAMI": 138.000000, "MIN_PERKM": 201.000000, "MAX_PERKM": 219.000000, "MIN_PERMI": 125.000000, "MAX_PERMI": 136.000000, "MIN_BBXMIN": 15.183333, "MAX_BBXMIN": 15.183333, "MIN_BBXMAX": 15.533333, "MAX_BBXMAX": 15.533333, "MIN_BBYMIN": -4.500000, "MAX_BBYMIN": -4.478678, "MIN_BBYMAX": -4.291667, "MAX_BBYMAX": -4.291667, "MEAN_BBXC": 15.334415, "MEAN_BBYC": -4.384467, "COMPARE": 0, "GN_ASCII": "Kinshasa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 6.000000, "GN_POP": 7785965.000000, "ELEVATION": 0.000000, "GTOPO30": 224.000000, "TIMEZONE": "Africa\/Kinshasa", "GEONAMESNO": "GeoNames match general.", "UN_FID": 168, "UN_ADM0": "Democratic Republic of the Congo", "UN_LAT": -4.320000, "UN_LONG": 15.290000, "POP1950": 202.000000, "POP1955": 292.000000, "POP1960": 443.000000, "POP1965": 717.000000, "POP1970": 1070.000000, "POP1975": 1482.000000, "POP1980": 2053.000000, "POP1985": 2793.000000, "POP1990": 3448.000000, "POP1995": 4447.000000, "POP2000": 5485.000000, "POP2005": 7108.000000, "POP2010": 7843.000000, "POP2015": 9052.000000, "POP2020": 11313.000000, "POP2025": 13875.000000, "POP2050": 16762.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1704638.259403627365828, -482224.834732992574573 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "New Delhi", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "New Delhi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 0, "SOV0NAME": "India", "SOV_A3": "IND", "ADM0NAME": "India", "ADM0_A3": "IND", "ADM1NAME": "Delhi", "ISO_A2": "IN", "NOTE": null, "LATITUDE": 28.600023, "LONGITUDE": 77.199980, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 317797, "POP_MIN": 317797, "POP_OTHER": 8060107, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 1261481.000000, "MEGANAME": null, "LS_NAME": "New Delhi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 8761047.000000, "MAX_POP20": 13414375.000000, "MAX_POP50": 32426336.000000, "MAX_POP300": 32424761.000000, "MAX_POP310": 224908923.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 864.000000, "MAX_AREAKM": 186559.000000, "MIN_AREAMI": 334.000000, "MAX_AREAMI": 72030.000000, "MIN_PERKM": 244.000000, "MAX_PERKM": 130296.000000, "MIN_PERMI": 152.000000, "MAX_PERMI": 80962.000000, "MIN_BBXMIN": 71.033333, "MAX_BBXMIN": 76.943289, "MIN_BBXMAX": 77.431830, "MAX_BBXMAX": 82.566667, "MIN_BBYMIN": 24.000000, "MAX_BBYMIN": 28.152007, "MIN_BBYMAX": 28.738629, "MAX_BBYMAX": 33.466667, "MEAN_BBXC": 77.272945, "MEAN_BBYC": 28.382537, "COMPARE": 0, "GN_ASCII": "New Delhi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 317797.000000, "ELEVATION": 0.000000, "GTOPO30": 205.000000, "TIMEZONE": "Asia\/Kolkata", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8593862.465083200484514, 3324835.758186175487936 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Bangalore", "NAMEPAR": null, "NAMEALT": "Bengaluru", "DIFFASCII": 0, "NAMEASCII": "Bangalore", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "India", "SOV_A3": "IND", "ADM0NAME": "India", "ADM0_A3": "IND", "ADM1NAME": "Karnataka", "ISO_A2": "IN", "NOTE": null, "LATITUDE": 12.969995, "LONGITUDE": 77.560010, "CHANGED": 3.000000, "NAMEDIFF": 1, "DIFFNOTE": "Name changed. Changed scale rank.", "POP_MAX": 6787000, "POP_MIN": 5104047, "POP_OTHER": 8102712, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 1277333.000000, "MEGANAME": "Bangalore", "LS_NAME": "Bangalore", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 8181096.000000, "MAX_POP20": 8181096.000000, "MAX_POP50": 8553953.000000, "MAX_POP300": 8553953.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 2443.000000, "MAX_AREAKM": 2836.000000, "MIN_AREAMI": 943.000000, "MAX_AREAMI": 1095.000000, "MIN_PERKM": 1908.000000, "MAX_PERKM": 2412.000000, "MIN_PERMI": 1186.000000, "MAX_PERMI": 1499.000000, "MIN_BBXMIN": 77.275000, "MAX_BBXMIN": 77.275000, "MIN_BBXMAX": 77.996673, "MAX_BBXMAX": 78.150000, "MIN_BBYMIN": 12.325000, "MAX_BBYMIN": 12.325000, "MIN_BBYMAX": 13.333333, "MAX_BBYMAX": 13.333333, "MEAN_BBXC": 77.703019, "MEAN_BBYC": 12.841733, "COMPARE": 1, "GN_ASCII": "Bengaluru", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 19.000000, "GN_POP": 5104047.000000, "ELEVATION": 920.000000, "GTOPO30": 914.000000, "TIMEZONE": "Asia\/Kolkata", "GEONAMESNO": "GeoNames spatial join with similar names only.", "UN_FID": 219, "UN_ADM0": "India", "UN_LAT": 12.970000, "UN_LONG": 77.580000, "POP1950": 746.000000, "POP1955": 939.000000, "POP1960": 1166.000000, "POP1965": 1377.000000, "POP1970": 1615.000000, "POP1975": 2111.000000, "POP1980": 2812.000000, "POP1985": 3395.000000, "POP1990": 4036.000000, "POP1995": 4744.000000, "POP2000": 5567.000000, "POP2005": 6465.000000, "POP2010": 6787.000000, "POP2015": 7229.000000, "POP2020": 7967.000000, "POP2025": 8795.000000, "POP2050": 9719.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8633724.176388207823038, 1456526.777564408257604 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Athens", "NAMEPAR": "Athínai", "NAMEALT": "Athinai", "DIFFASCII": 0, "NAMEASCII": "Athens", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Greece", "SOV_A3": "GRC", "ADM0NAME": "Greece", "ADM0_A3": "GRC", "ADM1NAME": "Attiki", "ISO_A2": "GR", "NOTE": null, "LATITUDE": 37.983326, "LONGITUDE": 23.733321, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3242000, "POP_MIN": 729137, "POP_OTHER": 112572, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 264371.000000, "MEGANAME": "Athínai", "LS_NAME": "Athens2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2352834.000000, "MAX_POP20": 3010089.000000, "MAX_POP50": 3010089.000000, "MAX_POP300": 3010089.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 340.000000, "MAX_AREAKM": 509.000000, "MIN_AREAMI": 131.000000, "MAX_AREAMI": 196.000000, "MIN_PERKM": 199.000000, "MAX_PERKM": 296.000000, "MIN_PERMI": 124.000000, "MAX_PERMI": 184.000000, "MIN_BBXMIN": 23.483333, "MAX_BBXMIN": 23.591667, "MIN_BBXMAX": 23.916667, "MAX_BBXMAX": 23.916667, "MIN_BBYMIN": 37.900000, "MAX_BBYMIN": 37.908333, "MIN_BBYMAX": 38.158333, "MAX_BBYMAX": 38.158333, "MEAN_BBXC": 23.741514, "MEAN_BBYC": 38.032045, "COMPARE": 0, "GN_ASCII": "Athens", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 729137.000000, "ELEVATION": 70.000000, "GTOPO30": 110.000000, "TIMEZONE": "Europe\/Athens", "GEONAMESNO": "GeoNames match general.", "UN_FID": 198, "UN_ADM0": "Greece", "UN_LAT": 37.940000, "UN_LONG": 23.650000, "POP1950": 1347.000000, "POP1955": 1563.000000, "POP1960": 1814.000000, "POP1965": 2121.000000, "POP1970": 2485.000000, "POP1975": 2738.000000, "POP1980": 2987.000000, "POP1985": 3047.000000, "POP1990": 3070.000000, "POP1995": 3122.000000, "POP2000": 3179.000000, "POP2005": 3230.000000, "POP2010": 3242.000000, "POP2015": 3256.000000, "POP2020": 3278.000000, "POP2025": 3300.000000, "POP2050": 3326.000000, "CITYALT": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 2641764.605946733150631, 4577345.462085374630988 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Baghdad", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Baghdad", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Iraq", "SOV_A3": "IRQ", "ADM0NAME": "Iraq", "ADM0_A3": "IRQ", "ADM1NAME": "Baghdad", "ISO_A2": "IQ", "NOTE": null, "LATITUDE": 33.338648, "LONGITUDE": 44.393869, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 5054000, "POP_MIN": 5054000, "POP_OTHER": 4959534, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 98182.000000, "MEGANAME": "Baghdad", "LS_NAME": "Baghdad", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5298025.000000, "MAX_POP20": 5298025.000000, "MAX_POP50": 5298025.000000, "MAX_POP300": 5298025.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 587.000000, "MAX_AREAKM": 587.000000, "MIN_AREAMI": 227.000000, "MAX_AREAMI": 227.000000, "MIN_PERKM": 365.000000, "MAX_PERKM": 365.000000, "MIN_PERMI": 227.000000, "MAX_PERMI": 227.000000, "MIN_BBXMIN": 44.241667, "MAX_BBXMIN": 44.241667, "MIN_BBXMAX": 44.575000, "MAX_BBXMAX": 44.575000, "MIN_BBYMIN": 33.141667, "MAX_BBYMIN": 33.141667, "MIN_BBYMAX": 33.575000, "MAX_BBYMAX": 33.575000, "MEAN_BBXC": 44.401776, "MEAN_BBYC": 33.332697, "COMPARE": 0, "GN_ASCII": "Baghdad", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 5672513.000000, "ELEVATION": 0.000000, "GTOPO30": 41.000000, "TIMEZONE": "Asia\/Baghdad", "GEONAMESNO": "GeoNames match general.", "UN_FID": 300, "UN_ADM0": "Iraq", "UN_LAT": 33.330000, "UN_LONG": 44.390000, "POP1950": 579.000000, "POP1955": 719.000000, "POP1960": 1019.000000, "POP1965": 1614.000000, "POP1970": 2070.000000, "POP1975": 2620.000000, "POP1980": 3145.000000, "POP1985": 3607.000000, "POP1990": 4092.000000, "POP1995": 4598.000000, "POP2000": 5200.000000, "POP2005": 5327.000000, "POP2010": 5054.000000, "POP2015": 5891.000000, "POP2020": 6618.000000, "POP2025": 7345.000000, "POP2050": 8060.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4941686.254183533601463, 3940599.921219584532082 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Addis Ababa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Addis Ababa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ethiopia", "SOV_A3": "ETH", "ADM0NAME": "Ethiopia", "ADM0_A3": "ETH", "ADM1NAME": "Addis Ababa", "ISO_A2": "ET", "NOTE": null, "LATITUDE": 9.033310, "LONGITUDE": 38.700004, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3100000, "POP_MIN": 2757729, "POP_OTHER": 3013653, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 344979.000000, "MEGANAME": "Addis Ababa", "LS_NAME": "Addis Ababa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2984087.000000, "MAX_POP20": 3176486.000000, "MAX_POP50": 3491912.000000, "MAX_POP300": 3450173.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 462.000000, "MAX_AREAKM": 1182.000000, "MIN_AREAMI": 178.000000, "MAX_AREAMI": 457.000000, "MIN_PERKM": 397.000000, "MAX_PERKM": 1325.000000, "MIN_PERMI": 247.000000, "MAX_PERMI": 823.000000, "MIN_BBXMIN": 38.575000, "MAX_BBXMIN": 38.575000, "MIN_BBXMAX": 38.966667, "MAX_BBXMAX": 39.483333, "MIN_BBYMIN": 8.033333, "MAX_BBYMIN": 8.671780, "MIN_BBYMAX": 9.125000, "MAX_BBYMAX": 9.125000, "MEAN_BBXC": 38.919464, "MEAN_BBYC": 8.825709, "COMPARE": 0, "GN_ASCII": "Addis Ababa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 44.000000, "GN_POP": 2757729.000000, "ELEVATION": 0.000000, "GTOPO30": 2363.000000, "TIMEZONE": "Africa\/Addis_Ababa", "GEONAMESNO": "GeoNames match general.", "UN_FID": 180, "UN_ADM0": "Ethiopia", "UN_LAT": 9.020000, "UN_LONG": 38.700000, "POP1950": 392.000000, "POP1955": 451.000000, "POP1960": 519.000000, "POP1965": 597.000000, "POP1970": 729.000000, "POP1975": 926.000000, "POP1980": 1175.000000, "POP1985": 1476.000000, "POP1990": 1791.000000, "POP1995": 2157.000000, "POP2000": 2493.000000, "POP2005": 2902.000000, "POP2010": 3100.000000, "POP2015": 3453.000000, "POP2020": 4184.000000, "POP2025": 5083.000000, "POP2050": 6156.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4307848.17529609054327, 1009994.883191471570171 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Tehran", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tehran", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Iran", "SOV_A3": "IRN", "ADM0NAME": "Iran", "ADM0_A3": "IRN", "ADM1NAME": "Tehran", "ISO_A2": "IR", "NOTE": null, "LATITUDE": 35.671943, "LONGITUDE": 51.424344, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 7873000, "POP_MIN": 7153309, "POP_OTHER": 8209012, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 112931.000000, "MEGANAME": "Tehran", "LS_NAME": "Tehran", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 8258981.000000, "MAX_POP20": 8258981.000000, "MAX_POP50": 8258981.000000, "MAX_POP300": 8258981.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 496.000000, "MAX_AREAKM": 496.000000, "MIN_AREAMI": 191.000000, "MAX_AREAMI": 191.000000, "MIN_PERKM": 245.000000, "MAX_PERKM": 245.000000, "MIN_PERMI": 152.000000, "MAX_PERMI": 152.000000, "MIN_BBXMIN": 51.216667, "MAX_BBXMIN": 51.216667, "MIN_BBXMAX": 51.600000, "MAX_BBXMAX": 51.600000, "MIN_BBYMIN": 35.550000, "MAX_BBYMIN": 35.550000, "MIN_BBYMAX": 35.825000, "MAX_BBYMAX": 35.825000, "MEAN_BBXC": 51.416848, "MEAN_BBYC": 35.709171, "COMPARE": 0, "GN_ASCII": "Tehran", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 26.000000, "GN_POP": 7153309.000000, "ELEVATION": 0.000000, "GTOPO30": 1149.000000, "TIMEZONE": "Asia\/Tehran", "GEONAMESNO": "GeoNames match general.", "UN_FID": 297, "UN_ADM0": "Iran (Islamic Republic of)", "UN_LAT": 35.770000, "UN_LONG": 51.440000, "POP1950": 1041.000000, "POP1955": 1396.000000, "POP1960": 1873.000000, "POP1965": 2511.000000, "POP1970": 3290.000000, "POP1975": 4273.000000, "POP1980": 5079.000000, "POP1985": 5839.000000, "POP1990": 6365.000000, "POP1995": 6687.000000, "POP2000": 7128.000000, "POP2005": 7653.000000, "POP2010": 7873.000000, "POP2015": 8221.000000, "POP2020": 8832.000000, "POP2025": 9404.000000, "POP2050": 9814.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5724315.180210961960256, 4255841.233905126340687 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 2, "FEATURECLA": "Populated place", "NAME": "Vancouver", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vancouver", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Canada", "SOV_A3": "CAN", "ADM0NAME": "Canada", "ADM0_A3": "CAN", "ADM1NAME": "British Columbia", "ISO_A2": "CA", "NOTE": null, "LATITUDE": 49.273417, "LONGITUDE": -123.121644, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2313328, "POP_MIN": 603502, "POP_OTHER": 482002, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 6173331.000000, "MEGANAME": "Vancouver", "LS_NAME": "Vancouver2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1590116.000000, "MAX_POP20": 1588839.000000, "MAX_POP50": 1590116.000000, "MAX_POP300": 1590116.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 706.000000, "MAX_AREAKM": 708.000000, "MIN_AREAMI": 273.000000, "MAX_AREAMI": 273.000000, "MIN_PERKM": 398.000000, "MAX_PERKM": 405.000000, "MIN_PERMI": 248.000000, "MAX_PERMI": 251.000000, "MIN_BBXMIN": -123.283333, "MAX_BBXMIN": -123.283333, "MIN_BBXMAX": -122.708333, "MAX_BBXMAX": -122.708333, "MIN_BBYMIN": 49.100000, "MAX_BBYMIN": 49.100000, "MIN_BBYMAX": 49.383333, "MAX_BBYMAX": 49.383333, "MEAN_BBXC": -122.982768, "MEAN_BBYC": 49.228888, "COMPARE": 0, "GN_ASCII": "Vancouver", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 2.000000, "GN_POP": 1837969.000000, "ELEVATION": 0.000000, "GTOPO30": 63.000000, "TIMEZONE": "America\/Vancouver", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 15, "UN_ADM0": "Canada", "UN_LAT": 49.270000, "UN_LONG": -122.960000, "POP1950": 556.000000, "POP1955": 588.000000, "POP1960": 620.000000, "POP1965": 836.000000, "POP1970": 1045.000000, "POP1975": 1150.000000, "POP1980": 1247.000000, "POP1985": 1359.000000, "POP1990": 1559.000000, "POP1995": 1789.000000, "POP2000": 1959.000000, "POP2005": 2093.000000, "POP2010": 2146.000000, "POP2015": 2219.000000, "POP2020": 2310.000000, "POP2025": 2380.000000, "POP2050": 2444.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -13706055.351943967863917, 6321714.456608767621219 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 2, "FEATURECLA": "Admin-1 capital", "NAME": "Toronto", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Toronto", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Canada", "SOV_A3": "CAN", "ADM0NAME": "Canada", "ADM0_A3": "CAN", "ADM1NAME": "Ontario", "ISO_A2": "CA", "NOTE": null, "LATITUDE": 43.699980, "LONGITUDE": -79.420021, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 5213000, "POP_MIN": 3934421, "POP_OTHER": 3749229, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 6167865.000000, "MEGANAME": "Toronto", "LS_NAME": "Toronto", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3934421.000000, "MAX_POP20": 4377344.000000, "MAX_POP50": 5190755.000000, "MAX_POP300": 5190755.000000, "MAX_POP310": 5190755.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1432.000000, "MAX_AREAKM": 2286.000000, "MIN_AREAMI": 553.000000, "MAX_AREAMI": 883.000000, "MIN_PERKM": 464.000000, "MAX_PERKM": 1161.000000, "MIN_PERMI": 289.000000, "MAX_PERMI": 721.000000, "MIN_BBXMIN": -80.008333, "MAX_BBXMIN": -79.806554, "MIN_BBXMAX": -79.130272, "MAX_BBXMAX": -78.608333, "MIN_BBYMIN": 43.141667, "MAX_BBYMIN": 43.475000, "MIN_BBYMAX": 44.090162, "MAX_BBYMAX": 44.125000, "MEAN_BBXC": -79.464213, "MEAN_BBYC": 43.712937, "COMPARE": 0, "GN_ASCII": "Toronto", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 8.000000, "GN_POP": 4612191.000000, "ELEVATION": 0.000000, "GTOPO30": 173.000000, "TIMEZONE": "America\/Toronto", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 14, "UN_ADM0": "Canada", "UN_LAT": 43.720000, "UN_LONG": -79.410000, "POP1950": 1068.000000, "POP1955": 1365.000000, "POP1960": 1744.000000, "POP1965": 2093.000000, "POP1970": 2535.000000, "POP1975": 2770.000000, "POP1980": 3008.000000, "POP1985": 3355.000000, "POP1990": 3807.000000, "POP1995": 4197.000000, "POP2000": 4607.000000, "POP2005": 5035.000000, "POP2010": 5213.000000, "POP2015": 5447.000000, "POP2020": 5687.000000, "POP2025": 5827.000000, "POP2050": 5946.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8841212.885611027479172, 5419429.781051269732416 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Buenos Aires", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Buenos Aires", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Argentina", "SOV_A3": "ARG", "ADM0NAME": "Argentina", "ADM0_A3": "ARG", "ADM1NAME": "Ciudad de Buenos Aires", "ISO_A2": "AR", "NOTE": null, "LATITUDE": -34.602502, "LONGITUDE": -58.397531, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 12795000, "POP_MIN": 10929146, "POP_OTHER": 10271457, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 3435910.000000, "MEGANAME": "Buenos Aires", "LS_NAME": "Buenos Aires", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 10929146.000000, "MAX_POP20": 10991915.000000, "MAX_POP50": 12611862.000000, "MAX_POP300": 12611862.000000, "MAX_POP310": 12611862.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1675.000000, "MAX_AREAKM": 2447.000000, "MIN_AREAMI": 647.000000, "MAX_AREAMI": 945.000000, "MIN_PERKM": 570.000000, "MAX_PERKM": 1064.000000, "MIN_PERMI": 354.000000, "MAX_PERMI": 661.000000, "MIN_BBXMIN": -59.016667, "MAX_BBXMIN": -58.757731, "MIN_BBXMAX": -58.175000, "MAX_BBXMAX": -57.816667, "MIN_BBYMIN": -35.008333, "MAX_BBYMIN": -35.008333, "MIN_BBYMAX": -34.375000, "MAX_BBYMAX": -34.366667, "MEAN_BBXC": -58.508450, "MEAN_BBYC": -34.681331, "COMPARE": 0, "GN_ASCII": "Buenos Aires", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 13076300.000000, "ELEVATION": 0.000000, "GTOPO30": 13.000000, "TIMEZONE": "America\/Argentina\/Buenos_Aires", "GEONAMESNO": "GeoNames match general.", "UN_FID": 201, "UN_ADM0": "Argentina", "UN_LAT": -34.620000, "UN_LONG": -58.440000, "POP1950": 5098.000000, "POP1955": 5799.000000, "POP1960": 6598.000000, "POP1965": 7317.000000, "POP1970": 8105.000000, "POP1975": 8745.000000, "POP1980": 9422.000000, "POP1985": 9959.000000, "POP1990": 10513.000000, "POP1995": 11154.000000, "POP2000": 11847.000000, "POP2005": 12553.000000, "POP2010": 12795.000000, "POP2015": 13089.000000, "POP2020": 13432.000000, "POP2025": 13653.000000, "POP2050": 13768.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6501000.068096510134637, -4109729.892427975777537 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Kabul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kabul", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Afghanistan", "SOV_A3": "AFG", "ADM0NAME": "Afghanistan", "ADM0_A3": "AFG", "ADM1NAME": "Kabul", "ISO_A2": "AF", "NOTE": null, "LATITUDE": 34.516690, "LONGITUDE": 69.183260, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3277000, "POP_MIN": 3043532, "POP_OTHER": 3475519, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1138958.000000, "MEGANAME": "Kabul", "LS_NAME": "Kabul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3720671.000000, "MAX_POP20": 3720671.000000, "MAX_POP50": 4803365.000000, "MAX_POP300": 4793793.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 594.000000, "MAX_AREAKM": 1471.000000, "MIN_AREAMI": 229.000000, "MAX_AREAMI": 568.000000, "MIN_PERKM": 409.000000, "MAX_PERKM": 1100.000000, "MIN_PERMI": 254.000000, "MAX_PERMI": 683.000000, "MIN_BBXMIN": 68.866667, "MAX_BBXMIN": 68.866667, "MIN_BBXMAX": 69.308333, "MAX_BBXMAX": 69.783333, "MIN_BBYMIN": 34.433333, "MAX_BBYMIN": 34.433333, "MIN_BBYMAX": 34.768813, "MAX_BBYMAX": 35.166667, "MEAN_BBXC": 69.144173, "MEAN_BBYC": 34.688498, "COMPARE": 0, "GN_ASCII": "Kabul", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 13.000000, "GN_POP": 3043532.000000, "ELEVATION": 0.000000, "GTOPO30": 1808.000000, "TIMEZONE": "Asia\/Kabul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 320, "UN_ADM0": "Afghanistan", "UN_LAT": 34.530000, "UN_LONG": 69.130000, "POP1950": 129.000000, "POP1955": 184.000000, "POP1960": 263.000000, "POP1965": 369.000000, "POP1970": 472.000000, "POP1975": 674.000000, "POP1980": 978.000000, "POP1985": 1160.000000, "POP1990": 1306.000000, "POP1995": 1616.000000, "POP2000": 1963.000000, "POP2005": 2994.000000, "POP2010": 3277.000000, "POP2015": 3768.000000, "POP2020": 4730.000000, "POP2025": 5836.000000, "POP2050": 7175.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 7701228.668118759058416, 4098656.613776889629662 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Vienna", "NAMEPAR": "Wien", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vienna", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Austria", "SOV_A3": "AUT", "ADM0NAME": "Austria", "ADM0_A3": "AUT", "ADM1NAME": "Wien", "ISO_A2": "AT", "NOTE": null, "LATITUDE": 48.200015, "LONGITUDE": 16.366639, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 2400000, "POP_MIN": 1731000, "POP_OTHER": 1480886, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2761369.000000, "MEGANAME": "Wien", "LS_NAME": "Vienna", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1561335.000000, "MAX_POP20": 1610331.000000, "MAX_POP50": 1610331.000000, "MAX_POP300": 1610331.000000, "MAX_POP310": 1610331.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 488.000000, "MAX_AREAKM": 533.000000, "MIN_AREAMI": 189.000000, "MAX_AREAMI": 206.000000, "MIN_PERKM": 444.000000, "MAX_PERKM": 497.000000, "MIN_PERMI": 276.000000, "MAX_PERMI": 309.000000, "MIN_BBXMIN": 16.133333, "MAX_BBXMIN": 16.133333, "MIN_BBXMAX": 16.583333, "MAX_BBXMAX": 16.583333, "MIN_BBYMIN": 47.916667, "MAX_BBYMIN": 48.008333, "MIN_BBYMAX": 48.383333, "MAX_BBYMAX": 48.383333, "MEAN_BBXC": 16.351672, "MEAN_BBYC": 48.182470, "COMPARE": 0, "GN_ASCII": "Vienna", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 1691468.000000, "ELEVATION": 171.000000, "GTOPO30": 164.000000, "TIMEZONE": "Europe\/Vienna", "GEONAMESNO": "GeoNames match general.", "UN_FID": 321, "UN_ADM0": "Austria", "UN_LAT": 48.200000, "UN_LONG": 16.320000, "POP1950": 2086.000000, "POP1955": 2087.000000, "POP1960": 2089.000000, "POP1965": 2080.000000, "POP1970": 2070.000000, "POP1975": 2059.000000, "POP1980": 2049.000000, "POP1985": 2069.000000, "POP1990": 2096.000000, "POP1995": 2127.000000, "POP2000": 2158.000000, "POP2005": 2264.000000, "POP2010": 2315.000000, "POP2015": 2385.000000, "POP2020": 2451.000000, "POP2025": 2476.000000, "POP2050": 2496.000000, "CITYALT": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 1821709.302517710952088, 6140519.980618135072291 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-1 capital", "NAME": "Melbourne", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Melbourne", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Australia", "SOV_A3": "AUS", "ADM0NAME": "Australia", "ADM0_A3": "AUS", "ADM1NAME": "Victoria", "ISO_A2": "AU", "NOTE": null, "LATITUDE": -37.820031, "LONGITUDE": 144.975016, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed feature class. Changed scale rank.", "POP_MAX": 4170000, "POP_MIN": 93625, "POP_OTHER": 1805353, "RANK_MAX": 12, "RANK_MIN": 8, "GEONAMEID": 2158177.000000, "MEGANAME": "Melbourne", "LS_NAME": "Melbourne2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1904377.000000, "MAX_POP20": 2545035.000000, "MAX_POP50": 2564188.000000, "MAX_POP300": 2564188.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1010.000000, "MAX_AREAKM": 1554.000000, "MIN_AREAMI": 390.000000, "MAX_AREAMI": 600.000000, "MIN_PERKM": 360.000000, "MAX_PERKM": 843.000000, "MIN_PERMI": 224.000000, "MAX_PERMI": 524.000000, "MIN_BBXMIN": 144.608333, "MAX_BBXMIN": 144.728637, "MIN_BBXMAX": 145.327432, "MAX_BBXMAX": 145.400000, "MIN_BBYMIN": -38.208333, "MAX_BBYMIN": -38.010500, "MIN_BBYMAX": -37.589905, "MAX_BBYMAX": -37.566667, "MEAN_BBXC": 145.053821, "MEAN_BBYC": -37.835257, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 3730206.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames rough area, rough name, requires further research.", "UN_FID": 274, "UN_ADM0": "Australia", "UN_LAT": -37.850000, "UN_LONG": 145.070000, "POP1950": 1332.000000, "POP1955": 1574.000000, "POP1960": 1851.000000, "POP1965": 2068.000000, "POP1970": 2334.000000, "POP1975": 2561.000000, "POP1980": 2765.000000, "POP1985": 2935.000000, "POP1990": 3117.000000, "POP1995": 3257.000000, "POP2000": 3433.000000, "POP2005": 3641.000000, "POP2010": 3728.000000, "POP2015": 3851.000000, "POP2020": 4013.000000, "POP2025": 4137.000000, "POP2050": 4238.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 16138328.372983055189252, -4553759.166562337428331 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Taipei", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Taipei", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Taiwan", "SOV_A3": "TWN", "ADM0NAME": "Taiwan", "ADM0_A3": "TWN", "ADM1NAME": "Taipei City", "ISO_A2": "TW", "NOTE": null, "LATITUDE": 25.035833, "LONGITUDE": 121.568333, "CHANGED": 1.000000, "NAMEDIFF": 0, "DIFFNOTE": "Corrected coordinates.", "POP_MAX": 6900273, "POP_MIN": 2618772, "POP_OTHER": 5698241, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 1668341.000000, "MEGANAME": "Taipei", "LS_NAME": "Taipei", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5920742.000000, "MAX_POP20": 8275696.000000, "MAX_POP50": 8647783.000000, "MAX_POP300": 9212245.000000, "MAX_POP310": 9212245.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 536.000000, "MAX_AREAKM": 1708.000000, "MIN_AREAMI": 207.000000, "MAX_AREAMI": 660.000000, "MIN_PERKM": 288.000000, "MAX_PERKM": 1087.000000, "MIN_PERMI": 179.000000, "MAX_PERMI": 675.000000, "MIN_BBXMIN": 120.741667, "MAX_BBXMIN": 121.325000, "MIN_BBXMAX": 121.622484, "MAX_BBXMAX": 121.816667, "MIN_BBYMIN": 24.466667, "MAX_BBYMIN": 24.900000, "MIN_BBYMAX": 25.233333, "MAX_BBYMAX": 25.233333, "MEAN_BBXC": 121.292375, "MEAN_BBYC": 24.965116, "COMPARE": 0, "GN_ASCII": "Taipei", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 7871900.000000, "ELEVATION": 0.000000, "GTOPO30": 10.000000, "TIMEZONE": "Asia\/Taipei", "GEONAMESNO": "GeoNames match general.", "UN_FID": 111, "UN_ADM0": "China", "UN_LAT": 25.030000, "UN_LONG": 121.500000, "POP1950": 604.000000, "POP1955": 760.000000, "POP1960": 955.000000, "POP1965": 1230.000000, "POP1970": 1741.000000, "POP1975": 2023.000000, "POP1980": 2217.000000, "POP1985": 2446.000000, "POP1990": 2711.000000, "POP1995": 2676.000000, "POP2000": 2640.000000, "POP2005": 2606.000000, "POP2010": 2603.000000, "POP2015": 2651.000000, "POP2020": 2862.000000, "POP2025": 3104.000000, "POP2050": 3305.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13532924.963253580033779, 2880146.584156085271388 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Los Angeles", "NAMEPAR": null, "NAMEALT": "Los Angeles-Long Beach-Santa Ana", "DIFFASCII": 0, "NAMEASCII": "Los Angeles", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "California", "ISO_A2": "US", "NOTE": null, "LATITUDE": 33.989978, "LONGITUDE": -118.179981, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 12500000, "POP_MIN": 3694820, "POP_OTHER": 142265, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 5368361.000000, "MEGANAME": "Los Angeles-Long Beach-Santa Ana", "LS_NAME": "Los Angeles1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 4976870.000000, "MAX_POP20": 6558538.000000, "MAX_POP50": 14868745.000000, "MAX_POP300": 14870543.000000, "MAX_POP310": 14903021.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1338.000000, "MAX_AREAKM": 5803.000000, "MIN_AREAMI": 517.000000, "MAX_AREAMI": 2241.000000, "MIN_PERKM": 534.000000, "MAX_PERKM": 2202.000000, "MIN_PERMI": 332.000000, "MAX_PERMI": 1369.000000, "MIN_BBXMIN": -118.991667, "MAX_BBXMIN": -118.966667, "MIN_BBXMAX": -117.857183, "MAX_BBXMAX": -117.008333, "MIN_BBYMIN": 33.391667, "MAX_BBYMIN": 33.862631, "MIN_BBYMAX": 34.241667, "MAX_BBYMAX": 34.333333, "MEAN_BBXC": -118.107478, "MEAN_BBYC": 33.980609, "COMPARE": 0, "GN_ASCII": "Los Angeles", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 3694820.000000, "ELEVATION": 89.000000, "GTOPO30": 115.000000, "TIMEZONE": "America\/Los_Angeles", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 547, "UN_ADM0": "United States of America", "UN_LAT": 34.000000, "UN_LONG": -118.250000, "POP1950": 4046.000000, "POP1955": 5154.000000, "POP1960": 6530.000000, "POP1965": 7408.000000, "POP1970": 8378.000000, "POP1975": 8926.000000, "POP1980": 9512.000000, "POP1985": 10181.000000, "POP1990": 10883.000000, "POP1995": 11339.000000, "POP2000": 11814.000000, "POP2005": 12307.000000, "POP2010": 12500.000000, "POP2015": 12773.000000, "POP2020": 13160.000000, "POP2025": 13461.000000, "POP2050": 13672.000000, "CITYALT": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -13155951.864469917491078, 4027717.68279454158619 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "Washington, D.C.", "NAMEPAR": null, "NAMEALT": "Washington D.C.", "DIFFASCII": 0, "NAMEASCII": "Washington, D.C.", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "District of Columbia", "ISO_A2": "US", "NOTE": null, "LATITUDE": 38.899549, "LONGITUDE": -77.009419, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 4338000, "POP_MIN": 552433, "POP_OTHER": 2175991, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 4140963.000000, "MEGANAME": "Washington, D.C.", "LS_NAME": "Washington, D.C.", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2182723.000000, "MAX_POP20": 2240256.000000, "MAX_POP50": 3764385.000000, "MAX_POP300": 5678280.000000, "MAX_POP310": 5678280.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1114.000000, "MAX_AREAKM": 3447.000000, "MIN_AREAMI": 430.000000, "MAX_AREAMI": 1331.000000, "MIN_PERKM": 548.000000, "MAX_PERKM": 1898.000000, "MIN_PERMI": 341.000000, "MAX_PERMI": 1179.000000, "MIN_BBXMIN": -77.533333, "MAX_BBXMIN": -77.308333, "MIN_BBXMAX": -76.752653, "MAX_BBXMAX": -76.400000, "MIN_BBYMIN": 38.666667, "MAX_BBYMIN": 38.754222, "MIN_BBYMAX": 39.241667, "MAX_BBYMAX": 39.533333, "MEAN_BBXC": -77.002668, "MEAN_BBYC": 39.007587, "COMPARE": 0, "GN_ASCII": "Washington", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 552433.000000, "ELEVATION": 7.000000, "GTOPO30": 11.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames match general.", "UN_FID": 577, "UN_ADM0": "United States of America", "UN_LAT": 38.890000, "UN_LONG": -76.950000, "POP1950": 1298.000000, "POP1955": 1539.000000, "POP1960": 1823.000000, "POP1965": 2135.000000, "POP1970": 2488.000000, "POP1975": 2626.000000, "POP1980": 2777.000000, "POP1985": 3063.000000, "POP1990": 3376.000000, "POP1995": 3651.000000, "POP2000": 3949.000000, "POP2005": 4241.000000, "POP2010": 4338.000000, "POP2015": 4464.000000, "POP2020": 4636.000000, "POP2025": 4778.000000, "POP2050": 4889.000000, "CITYALT": "Washington D.C." }, "geometry": { "type": "Point", "coordinates": [ -8572865.874693362042308, 4707571.416160551831126 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "New York", "NAMEPAR": null, "NAMEALT": "New York-Newark", "DIFFASCII": 0, "NAMEASCII": "New York", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": "UN Headquarters", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "New York", "ISO_A2": "US", "NOTE": null, "LATITUDE": 40.749979, "LONGITUDE": -73.980017, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 19040000, "POP_MIN": 8008278, "POP_OTHER": 9292603, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 5128581.000000, "MEGANAME": "New York-Newark", "LS_NAME": "New York", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 9376946.000000, "MAX_POP20": 11947707.000000, "MAX_POP50": 18788144.000000, "MAX_POP300": 18788144.000000, "MAX_POP310": 18924578.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1137.000000, "MAX_AREAKM": 8185.000000, "MIN_AREAMI": 439.000000, "MAX_AREAMI": 3160.000000, "MIN_PERKM": 497.000000, "MAX_PERKM": 4993.000000, "MIN_PERMI": 309.000000, "MAX_PERMI": 3102.000000, "MIN_BBXMIN": -74.750000, "MAX_BBXMIN": -74.091431, "MIN_BBXMAX": -73.574946, "MAX_BBXMAX": -72.716667, "MIN_BBYMIN": 39.808333, "MAX_BBYMIN": 40.566667, "MIN_BBYMAX": 41.057237, "MAX_BBYMAX": 41.941667, "MEAN_BBXC": -73.815782, "MEAN_BBYC": 40.813006, "COMPARE": 0, "GN_ASCII": "New York City", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 8008278.000000, "ELEVATION": 10.000000, "GTOPO30": 2.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames spatial join with similar names only.", "UN_FID": 555, "UN_ADM0": "United States of America", "UN_LAT": 40.700000, "UN_LONG": -73.900000, "POP1950": 12338.000000, "POP1955": 13219.000000, "POP1960": 14164.000000, "POP1965": 15177.000000, "POP1970": 16191.000000, "POP1975": 15880.000000, "POP1980": 15601.000000, "POP1985": 15827.000000, "POP1990": 16086.000000, "POP1995": 16943.000000, "POP2000": 17846.000000, "POP2005": 18732.000000, "POP2010": 19040.000000, "POP2015": 19441.000000, "POP2020": 19974.000000, "POP2025": 20370.000000, "POP2050": 20628.000000, "CITYALT": "New York" }, "geometry": { "type": "Point", "coordinates": [ -8235634.425381042994559, 4975819.220637888647616 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "London", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "London", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United Kingdom", "SOV_A3": "GBR", "ADM0NAME": "United Kingdom", "ADM0_A3": "GBR", "ADM1NAME": "Westminster", "ISO_A2": "GB", "NOTE": null, "LATITUDE": 51.499995, "LONGITUDE": -0.116722, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 8567000, "POP_MIN": 7421209, "POP_OTHER": 326670, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 2643743.000000, "MEGANAME": "London", "LS_NAME": "London2", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 7721282.000000, "MAX_POP20": 8370578.000000, "MAX_POP50": 10011551.000000, "MAX_POP300": 10011551.000000, "MAX_POP310": 10011551.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1914.000000, "MAX_AREAKM": 3198.000000, "MIN_AREAMI": 739.000000, "MAX_AREAMI": 1235.000000, "MIN_PERKM": 994.000000, "MAX_PERKM": 2440.000000, "MIN_PERMI": 618.000000, "MAX_PERMI": 1516.000000, "MIN_BBXMIN": -1.091667, "MAX_BBXMIN": -0.546866, "MIN_BBXMAX": 0.307108, "MAX_BBXMAX": 0.816667, "MIN_BBYMIN": 51.133333, "MAX_BBYMIN": 51.208333, "MIN_BBYMAX": 51.825000, "MAX_BBYMAX": 51.825000, "MEAN_BBXC": -0.169651, "MEAN_BBYC": 51.489624, "COMPARE": 0, "GN_ASCII": "London", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 7421209.000000, "ELEVATION": 0.000000, "GTOPO30": 21.000000, "TIMEZONE": "Europe\/London", "GEONAMESNO": "GeoNames match general.", "UN_FID": 519, "UN_ADM0": "United Kingdom", "UN_LAT": 51.480000, "UN_LONG": -0.170000, "POP1950": 8361.000000, "POP1955": 8278.000000, "POP1960": 8196.000000, "POP1965": 7869.000000, "POP1970": 7509.000000, "POP1975": 7546.000000, "POP1980": 7660.000000, "POP1985": 7667.000000, "POP1990": 7654.000000, "POP1995": 7908.000000, "POP2000": 8225.000000, "POP2005": 8505.000000, "POP2010": 8567.000000, "POP2015": 8607.000000, "POP2020": 8618.000000, "POP2025": 8618.000000, "POP2050": 8618.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -13210.028213227227752, 6710566.111051243729889 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-1 capital", "NAME": "Istanbul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Istanbul", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Turkey", "SOV_A3": "TUR", "ADM0NAME": "Turkey", "ADM0_A3": "TUR", "ADM1NAME": "Istanbul", "ISO_A2": "TR", "NOTE": null, "LATITUDE": 41.104996, "LONGITUDE": 29.010002, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 10061000, "POP_MIN": 9945610, "POP_OTHER": 9651488, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 745044.000000, "MEGANAME": "Istanbul", "LS_NAME": "Istanbul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 9945610.000000, "MAX_POP20": 9945243.000000, "MAX_POP50": 10140950.000000, "MAX_POP300": 10140950.000000, "MAX_POP310": 10140950.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1249.000000, "MAX_AREAKM": 1327.000000, "MIN_AREAMI": 482.000000, "MAX_AREAMI": 512.000000, "MIN_PERKM": 852.000000, "MAX_PERKM": 926.000000, "MIN_PERMI": 529.000000, "MAX_PERMI": 575.000000, "MIN_BBXMIN": 28.200000, "MAX_BBXMIN": 28.257268, "MIN_BBXMAX": 29.450000, "MAX_BBXMAX": 29.558333, "MIN_BBYMIN": 40.750000, "MAX_BBYMIN": 40.750000, "MIN_BBYMAX": 41.258333, "MAX_BBYMAX": 41.258333, "MEAN_BBXC": 29.008987, "MEAN_BBYC": 41.004964, "COMPARE": 0, "GN_ASCII": "Istanbul", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 34.000000, "GN_POP": 11174257.000000, "ELEVATION": 0.000000, "GTOPO30": 28.000000, "TIMEZONE": "Europe\/Istanbul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 504, "UN_ADM0": "Turkey", "UN_LAT": 41.060000, "UN_LONG": 29.000000, "POP1950": 967.000000, "POP1955": 1249.000000, "POP1960": 1453.000000, "POP1965": 2001.000000, "POP1970": 2772.000000, "POP1975": 3600.000000, "POP1980": 4397.000000, "POP1985": 5407.000000, "POP1990": 6552.000000, "POP1995": 7665.000000, "POP2000": 8744.000000, "POP2005": 9709.000000, "POP2010": 10061.000000, "POP2015": 10530.000000, "POP2020": 11177.000000, "POP2025": 11695.000000, "POP2050": 12102.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3229161.992432836443186, 5028128.406019689515233 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Riyadh", "NAMEPAR": null, "NAMEALT": "Ar-Riyadh", "DIFFASCII": 0, "NAMEASCII": "Riyadh", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Saudi Arabia", "SOV_A3": "SAU", "ADM0NAME": "Saudi Arabia", "ADM0_A3": "SAU", "ADM1NAME": "Ar Riyad", "ISO_A2": "SA", "NOTE": null, "LATITUDE": 24.640833, "LONGITUDE": 46.772742, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4465000, "POP_MIN": 4205961, "POP_OTHER": 5148778, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 108410.000000, "MEGANAME": "Ar-Riyadh", "LS_NAME": "Riyadh", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5322753.000000, "MAX_POP20": 5322753.000000, "MAX_POP50": 5322753.000000, "MAX_POP300": 5322753.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 854.000000, "MAX_AREAKM": 854.000000, "MIN_AREAMI": 330.000000, "MAX_AREAMI": 330.000000, "MIN_PERKM": 459.000000, "MAX_PERKM": 459.000000, "MIN_PERMI": 285.000000, "MAX_PERMI": 285.000000, "MIN_BBXMIN": 46.516667, "MAX_BBXMIN": 46.516667, "MIN_BBXMAX": 46.933333, "MAX_BBXMAX": 46.933333, "MIN_BBYMIN": 24.516667, "MAX_BBYMIN": 24.516667, "MIN_BBYMAX": 24.833333, "MAX_BBYMAX": 24.833333, "MEAN_BBXC": 46.740447, "MEAN_BBYC": 24.678984, "COMPARE": 0, "GN_ASCII": "Riyadh", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 4205961.000000, "ELEVATION": 0.000000, "GTOPO30": 618.000000, "TIMEZONE": "Asia\/Riyadh", "GEONAMESNO": "GeoNames match general.", "UN_FID": 444, "UN_ADM0": "Saudi Arabia", "UN_LAT": 24.650000, "UN_LONG": 46.770000, "POP1950": 111.000000, "POP1955": 131.000000, "POP1960": 156.000000, "POP1965": 227.000000, "POP1970": 408.000000, "POP1975": 710.000000, "POP1980": 1055.000000, "POP1985": 1566.000000, "POP1990": 2325.000000, "POP1995": 3035.000000, "POP2000": 3567.000000, "POP2005": 4193.000000, "POP2010": 4465.000000, "POP2015": 4856.000000, "POP2020": 5405.000000, "POP2025": 5866.000000, "POP2050": 6275.000000, "CITYALT": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 5206501.172306157648563, 2831931.448466122616082 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Cape Town", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Cape Town", "ADM0CAP": 1.000000, "CAPALT": 1.000000, "CAPIN": "Legislative cap", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "South Africa", "SOV_A3": "ZAF", "ADM0NAME": "South Africa", "ADM0_A3": "ZAF", "ADM1NAME": "Western Cape", "ISO_A2": "ZA", "NOTE": null, "LATITUDE": -33.920011, "LONGITUDE": 18.434988, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3215000, "POP_MIN": 2432858, "POP_OTHER": 2401318, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3369157.000000, "MEGANAME": "Cape Town", "LS_NAME": "Cape Town", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2432858.000000, "MAX_POP20": 2443605.000000, "MAX_POP50": 2443605.000000, "MAX_POP300": 2443605.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 534.000000, "MAX_AREAKM": 542.000000, "MIN_AREAMI": 206.000000, "MAX_AREAMI": 209.000000, "MIN_PERKM": 295.000000, "MAX_PERKM": 300.000000, "MIN_PERMI": 183.000000, "MAX_PERMI": 187.000000, "MIN_BBXMIN": 18.375000, "MAX_BBXMIN": 18.375000, "MIN_BBXMAX": 18.724745, "MAX_BBXMAX": 18.741667, "MIN_BBYMIN": -34.108333, "MAX_BBYMIN": -34.108333, "MIN_BBYMAX": -33.808333, "MAX_BBYMAX": -33.808333, "MEAN_BBXC": 18.557208, "MEAN_BBYC": -33.954979, "COMPARE": 0, "GN_ASCII": "Cape Town", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 11.000000, "GN_POP": 3433441.000000, "ELEVATION": 0.000000, "GTOPO30": 7.000000, "TIMEZONE": "Africa\/Johannesburg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 455, "UN_ADM0": "South Africa", "UN_LAT": -33.970000, "UN_LONG": 18.480000, "POP1950": 618.000000, "POP1955": 705.000000, "POP1960": 803.000000, "POP1965": 945.000000, "POP1970": 1114.000000, "POP1975": 1339.000000, "POP1980": 1609.000000, "POP1985": 1925.000000, "POP1990": 2155.000000, "POP1995": 2394.000000, "POP2000": 2715.000000, "POP2005": 3087.000000, "POP2010": 3215.000000, "POP2015": 3357.000000, "POP2020": 3504.000000, "POP2025": 3627.000000, "POP2050": 3744.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2051956.88252071570605, -4017805.47094540996477 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Moscow", "NAMEPAR": "Moskva", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Moscow", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Russia", "SOV_A3": "RUS", "ADM0NAME": "Russia", "ADM0_A3": "RUS", "ADM1NAME": "Moskva", "ISO_A2": "RU", "NOTE": null, "LATITUDE": 55.752164, "LONGITUDE": 37.615523, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 10452000, "POP_MIN": 10452000, "POP_OTHER": 10585385, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 524901.000000, "MEGANAME": "Moskva", "LS_NAME": "Moscow", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 11029015.000000, "MAX_POP20": 11030955.000000, "MAX_POP50": 11547877.000000, "MAX_POP300": 11547877.000000, "MAX_POP310": 11547877.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1434.000000, "MAX_AREAKM": 1639.000000, "MIN_AREAMI": 554.000000, "MAX_AREAMI": 633.000000, "MIN_PERKM": 875.000000, "MAX_PERKM": 1135.000000, "MIN_PERMI": 544.000000, "MAX_PERMI": 705.000000, "MIN_BBXMIN": 37.233333, "MAX_BBXMIN": 37.233333, "MIN_BBXMAX": 38.075401, "MAX_BBXMAX": 38.300000, "MIN_BBYMIN": 55.341667, "MAX_BBYMIN": 55.533007, "MIN_BBYMAX": 56.075000, "MAX_BBYMAX": 56.075000, "MEAN_BBXC": 37.643636, "MEAN_BBYC": 55.754996, "COMPARE": 0, "GN_ASCII": "Moscow", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 426, "UN_ADM0": "Russian Federation", "UN_LAT": 55.740000, "UN_LONG": 37.700000, "POP1950": 5356.000000, "POP1955": 5749.000000, "POP1960": 6170.000000, "POP1965": 6622.000000, "POP1970": 7106.000000, "POP1975": 7623.000000, "POP1980": 8136.000000, "POP1985": 8580.000000, "POP1990": 8987.000000, "POP1995": 9201.000000, "POP2000": 10016.000000, "POP2005": 10416.000000, "POP2010": 10452.000000, "POP2015": 10495.000000, "POP2020": 10524.000000, "POP2025": 10526.000000, "POP2050": 10526.000000, "CITYALT": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 4187124.23491025576368, 7509620.824145698919892 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Mexico City", "NAMEPAR": null, "NAMEALT": "Ciudad de México", "DIFFASCII": 0, "NAMEASCII": "Mexico City", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Mexico", "SOV_A3": "MEX", "ADM0NAME": "Mexico", "ADM0_A3": "MEX", "ADM1NAME": "Distrito Federal", "ISO_A2": "MX", "NOTE": null, "LATITUDE": 19.442442, "LONGITUDE": -99.130988, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 19028000, "POP_MIN": 10811002, "POP_OTHER": 10018444, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 3530597.000000, "MEGANAME": "Ciudad de México", "LS_NAME": "Mexico City", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 10811002.000000, "MAX_POP20": 17250245.000000, "MAX_POP50": 18948089.000000, "MAX_POP300": 18948089.000000, "MAX_POP310": 18948089.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 895.000000, "MAX_AREAKM": 2080.000000, "MIN_AREAMI": 345.000000, "MAX_AREAMI": 803.000000, "MIN_PERKM": 256.000000, "MAX_PERKM": 889.000000, "MIN_PERMI": 159.000000, "MAX_PERMI": 552.000000, "MIN_BBXMIN": -99.366667, "MAX_BBXMIN": -99.366667, "MIN_BBXMAX": -99.018165, "MAX_BBXMAX": -98.808333, "MIN_BBYMIN": 19.200000, "MAX_BBYMIN": 19.233333, "MIN_BBYMAX": 19.640315, "MAX_BBYMAX": 19.908333, "MEAN_BBXC": -99.116655, "MEAN_BBYC": 19.473748, "COMPARE": 0, "GN_ASCII": "Mexico City", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 11285654.000000, "ELEVATION": 0.000000, "GTOPO30": 2216.000000, "TIMEZONE": "America\/Mexico_City", "GEONAMESNO": "GeoNames match general.", "UN_FID": 352, "UN_ADM0": "Mexico", "UN_LAT": 19.420000, "UN_LONG": -99.120000, "POP1950": 2883.000000, "POP1955": 3801.000000, "POP1960": 5012.000000, "POP1965": 6653.000000, "POP1970": 8769.000000, "POP1975": 10690.000000, "POP1980": 13010.000000, "POP1985": 14109.000000, "POP1990": 15312.000000, "POP1995": 16811.000000, "POP2000": 18022.000000, "POP2005": 18735.000000, "POP2010": 19028.000000, "POP2015": 19485.000000, "POP2020": 20189.000000, "POP2025": 20695.000000, "POP2050": 21009.000000, "CITYALT": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -11035427.740435086190701, 2207325.950261935591698 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital alt", "NAME": "Lagos", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lagos", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Former capital", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Nigeria", "SOV_A3": "NGA", "ADM0NAME": "Nigeria", "ADM0_A3": "NGA", "ADM1NAME": "Lagos", "ISO_A2": "NG", "NOTE": null, "LATITUDE": 6.443262, "LONGITUDE": 3.391531, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 9466000, "POP_MIN": 1536, "POP_OTHER": 6567892, "RANK_MAX": 13, "RANK_MIN": 3, "GEONAMEID": 735497.000000, "MEGANAME": "Lagos", "LS_NAME": "Lagos", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 7147910.000000, "MAX_POP20": 7105663.000000, "MAX_POP50": 7411389.000000, "MAX_POP300": 7453740.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1035.000000, "MAX_AREAKM": 1332.000000, "MIN_AREAMI": 400.000000, "MAX_AREAMI": 514.000000, "MIN_PERKM": 638.000000, "MAX_PERKM": 882.000000, "MIN_PERMI": 397.000000, "MAX_PERMI": 548.000000, "MIN_BBXMIN": 2.925412, "MAX_BBXMIN": 2.996332, "MIN_BBXMAX": 3.475000, "MAX_BBXMAX": 3.475000, "MIN_BBYMIN": 6.400000, "MAX_BBYMIN": 6.400000, "MIN_BBYMAX": 6.800870, "MAX_BBYMAX": 6.966667, "MEAN_BBXC": 3.231132, "MEAN_BBYC": 6.585848, "COMPARE": 0, "GN_ASCII": "Lagos", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 1536.000000, "ELEVATION": 0.000000, "GTOPO30": 89.000000, "TIMEZONE": "Europe\/Athens", "GEONAMESNO": "GeoNames match general.", "UN_FID": 392, "UN_ADM0": "Nigeria", "UN_LAT": 6.450000, "UN_LONG": 3.300000, "POP1950": 305.000000, "POP1955": 468.000000, "POP1960": 762.000000, "POP1965": 1135.000000, "POP1970": 1414.000000, "POP1975": 1890.000000, "POP1980": 2572.000000, "POP1985": 3500.000000, "POP1990": 4764.000000, "POP1995": 5966.000000, "POP2000": 7233.000000, "POP2005": 8767.000000, "POP2010": 9466.000000, "POP2015": 10572.000000, "POP2020": 12403.000000, "POP2025": 14134.000000, "POP2050": 15796.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 377326.899866867461242, 718995.184806589735672 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Rome", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Rome", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Italy", "SOV_A3": "ITA", "ADM0NAME": "Italy", "ADM0_A3": "ITA", "ADM1NAME": "Lazio", "ISO_A2": "IT", "NOTE": null, "LATITUDE": 41.895956, "LONGITUDE": 12.483258, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 3339000, "POP_MIN": 35452, "POP_OTHER": 2050212, "RANK_MAX": 12, "RANK_MIN": 7, "GEONAMEID": 4219762.000000, "MEGANAME": "Rome", "LS_NAME": "Rome", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2143900.000000, "MAX_POP20": 2143900.000000, "MAX_POP50": 2666328.000000, "MAX_POP300": 2666328.000000, "MAX_POP310": 2666328.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 505.000000, "MAX_AREAKM": 683.000000, "MIN_AREAMI": 195.000000, "MAX_AREAMI": 264.000000, "MIN_PERKM": 382.000000, "MAX_PERKM": 500.000000, "MIN_PERMI": 238.000000, "MAX_PERMI": 311.000000, "MIN_BBXMIN": 12.333333, "MAX_BBXMIN": 12.450494, "MIN_BBXMAX": 12.766667, "MAX_BBXMAX": 12.766667, "MIN_BBYMIN": 41.666667, "MAX_BBYMIN": 41.666667, "MIN_BBYMAX": 42.033333, "MAX_BBYMAX": 42.050000, "MEAN_BBXC": 12.561474, "MEAN_BBYC": 41.864442, "COMPARE": 0, "GN_ASCII": "Rome", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 35452.000000, "ELEVATION": 187.000000, "GTOPO30": 183.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames match general.", "UN_FID": 308, "UN_ADM0": "Italy", "UN_LAT": 41.870000, "UN_LONG": 12.510000, "POP1950": 1884.000000, "POP1955": 2143.000000, "POP1960": 2456.000000, "POP1965": 2780.000000, "POP1970": 3135.000000, "POP1975": 3300.000000, "POP1980": 3390.000000, "POP1985": 3429.000000, "POP1990": 3450.000000, "POP1995": 3425.000000, "POP2000": 3385.000000, "POP2005": 3348.000000, "POP2010": 3339.000000, "POP2015": 3333.000000, "POP2020": 3330.000000, "POP2025": 3330.000000, "POP2050": 3330.000000, "CITYALT": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 1389413.35893082106486, 5145697.829829449765384 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "Beijing", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Beijing", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "China", "ADM0_A3": "CHN", "ADM1NAME": "Beijing", "ISO_A2": "CN", "NOTE": null, "LATITUDE": 39.928892, "LONGITUDE": 116.388286, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11106000, "POP_MIN": 7480601, "POP_OTHER": 9033231, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 1816670.000000, "MEGANAME": "Beijing", "LS_NAME": "Beijing", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 10190861.000000, "MAX_POP20": 11120470.000000, "MAX_POP50": 16510327.000000, "MAX_POP300": 23647944.000000, "MAX_POP310": 137121250.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 2512.000000, "MAX_AREAKM": 118844.000000, "MIN_AREAMI": 970.000000, "MAX_AREAMI": 45886.000000, "MIN_PERKM": 1837.000000, "MAX_PERKM": 93615.000000, "MIN_PERMI": 1141.000000, "MAX_PERMI": 58169.000000, "MIN_BBXMIN": 111.441667, "MAX_BBXMIN": 116.058333, "MIN_BBXMAX": 117.208333, "MAX_BBXMAX": 117.325000, "MIN_BBYMIN": 31.883333, "MAX_BBYMIN": 39.658333, "MIN_BBYMAX": 40.433333, "MAX_BBYMAX": 40.466667, "MEAN_BBXC": 115.929521, "MEAN_BBYC": 38.837783, "COMPARE": 0, "GN_ASCII": "Beijing", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 22.000000, "GN_POP": 7480601.000000, "ELEVATION": 0.000000, "GTOPO30": 63.000000, "TIMEZONE": "Asia\/Harbin", "GEONAMESNO": "GeoNames match general.", "UN_FID": 24, "UN_ADM0": "China", "UN_LAT": 39.900000, "UN_LONG": 116.380000, "POP1950": 4331.000000, "POP1955": 4628.000000, "POP1960": 4945.000000, "POP1965": 5284.000000, "POP1970": 5646.000000, "POP1975": 6034.000000, "POP1980": 6448.000000, "POP1985": 6890.000000, "POP1990": 7362.000000, "POP1995": 8486.000000, "POP2000": 9782.000000, "POP2005": 10717.000000, "POP2010": 11106.000000, "POP2015": 11741.000000, "POP2020": 12842.000000, "POP2025": 13807.000000, "POP2050": 14545.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 12956068.084685306996107, 4855896.943275311030447 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Nairobi", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nairobi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Kenya", "SOV_A3": "KEN", "ADM0NAME": "Kenya", "ADM0_A3": "KEN", "ADM1NAME": "Nairobi", "ISO_A2": "KE", "NOTE": null, "LATITUDE": -1.283347, "LONGITUDE": 36.816657, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3010000, "POP_MIN": 2750547, "POP_OTHER": 3400962, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 184745.000000, "MEGANAME": "Nairobi", "LS_NAME": "Nairobi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3401842.000000, "MAX_POP20": 3401842.000000, "MAX_POP50": 3418532.000000, "MAX_POP300": 3418532.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 698.000000, "MAX_AREAKM": 719.000000, "MIN_AREAMI": 269.000000, "MAX_AREAMI": 277.000000, "MIN_PERKM": 554.000000, "MAX_PERKM": 571.000000, "MIN_PERMI": 344.000000, "MAX_PERMI": 355.000000, "MIN_BBXMIN": 36.608333, "MAX_BBXMIN": 36.608333, "MIN_BBXMAX": 37.066667, "MAX_BBXMAX": 37.066667, "MIN_BBYMIN": -1.433333, "MAX_BBYMIN": -1.433333, "MIN_BBYMAX": -1.083333, "MAX_BBYMAX": -1.083333, "MEAN_BBXC": 36.804283, "MEAN_BBYC": -1.249679, "COMPARE": 0, "GN_ASCII": "Nairobi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 2750547.000000, "ELEVATION": 0.000000, "GTOPO30": 1724.000000, "TIMEZONE": "Africa\/Nairobi", "GEONAMESNO": "GeoNames match general.", "UN_FID": 324, "UN_ADM0": "Kenya", "UN_LAT": -1.260000, "UN_LONG": 36.800000, "POP1950": 137.000000, "POP1955": 201.000000, "POP1960": 293.000000, "POP1965": 404.000000, "POP1970": 531.000000, "POP1975": 677.000000, "POP1980": 862.000000, "POP1985": 1090.000000, "POP1990": 1380.000000, "POP1995": 1755.000000, "POP2000": 2233.000000, "POP2005": 2787.000000, "POP2010": 3010.000000, "POP2015": 3363.000000, "POP2020": 4052.000000, "POP2025": 4881.000000, "POP2050": 5871.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4098194.88227401021868, -142656.786622658750275 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "Jakarta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Jakarta", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Indonesia", "SOV_A3": "IDN", "ADM0NAME": "Indonesia", "ADM0_A3": "IDN", "ADM1NAME": "Jakarta Raya", "ISO_A2": "ID", "NOTE": null, "LATITUDE": -6.174418, "LONGITUDE": 106.829438, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 9125000, "POP_MIN": 8540121, "POP_OTHER": 9129613, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 1642911.000000, "MEGANAME": "Jakarta", "LS_NAME": "Jakarta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 9664972.000000, "MAX_POP20": 15074060.000000, "MAX_POP50": 22017580.000000, "MAX_POP300": 22031364.000000, "MAX_POP310": 44354170.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1303.000000, "MAX_AREAKM": 19435.000000, "MIN_AREAMI": 503.000000, "MAX_AREAMI": 7504.000000, "MIN_PERKM": 318.000000, "MAX_PERKM": 10224.000000, "MIN_PERMI": 197.000000, "MAX_PERMI": 6353.000000, "MIN_BBXMIN": 105.891667, "MAX_BBXMIN": 106.473854, "MIN_BBXMAX": 106.932506, "MAX_BBXMAX": 109.808333, "MIN_BBYMIN": -7.716667, "MAX_BBYMIN": -6.383127, "MIN_BBYMAX": -6.016667, "MAX_BBYMAX": -5.875000, "MEAN_BBXC": 106.989399, "MEAN_BBYC": -6.313824, "COMPARE": 0, "GN_ASCII": "Jakarta", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 8540121.000000, "ELEVATION": 0.000000, "GTOPO30": 2.000000, "TIMEZONE": "Asia\/Jakarta", "GEONAMESNO": "GeoNames match general.", "UN_FID": 280, "UN_ADM0": "Indonesia", "UN_LAT": -6.160000, "UN_LONG": 106.800000, "POP1950": 1452.000000, "POP1955": 1972.000000, "POP1960": 2679.000000, "POP1965": 3297.000000, "POP1970": 3915.000000, "POP1975": 4813.000000, "POP1980": 5984.000000, "POP1985": 7009.000000, "POP1990": 8175.000000, "POP1995": 8322.000000, "POP2000": 8390.000000, "POP2005": 8843.000000, "POP2010": 9125.000000, "POP2015": 9703.000000, "POP2020": 10792.000000, "POP2025": 11689.000000, "POP2050": 12363.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11891981.985720803961158, -688449.375052951974794 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Bogota", "NAMEPAR": null, "NAMEALT": "Bogotá", "DIFFASCII": 0, "NAMEASCII": "Bogota", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Colombia", "SOV_A3": "COL", "ADM0NAME": "Colombia", "ADM0_A3": "COL", "ADM1NAME": "Bogota", "ISO_A2": "CO", "NOTE": null, "LATITUDE": 4.596424, "LONGITUDE": -74.083344, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 7772000, "POP_MIN": 6333661, "POP_OTHER": 5754084, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 3688689.000000, "MEGANAME": "Bogotá", "LS_NAME": "Bogota", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 6333661.000000, "MAX_POP20": 6333154.000000, "MAX_POP50": 6333154.000000, "MAX_POP300": 6333154.000000, "MAX_POP310": 6333154.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 523.000000, "MAX_AREAKM": 523.000000, "MIN_AREAMI": 202.000000, "MAX_AREAMI": 202.000000, "MIN_PERKM": 186.000000, "MAX_PERKM": 186.000000, "MIN_PERMI": 116.000000, "MAX_PERMI": 116.000000, "MIN_BBXMIN": -74.266667, "MAX_BBXMIN": -74.266667, "MIN_BBXMAX": -74.008333, "MAX_BBXMAX": -74.008333, "MIN_BBYMIN": 4.483333, "MAX_BBYMIN": 4.483333, "MIN_BBYMAX": 4.800000, "MAX_BBYMAX": 4.800000, "MEAN_BBXC": -74.116517, "MEAN_BBYC": 4.643227, "COMPARE": 0, "GN_ASCII": "Bogota", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 34.000000, "GN_POP": 7102602.000000, "ELEVATION": 0.000000, "GTOPO30": 2620.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 161, "UN_ADM0": "Colombia", "UN_LAT": 4.630000, "UN_LONG": -74.080000, "POP1950": 630.000000, "POP1955": 894.000000, "POP1960": 1269.000000, "POP1965": 1780.000000, "POP1970": 2383.000000, "POP1975": 3040.000000, "POP1980": 3525.000000, "POP1985": 4087.000000, "POP1990": 4740.000000, "POP1995": 5494.000000, "POP2000": 6356.000000, "POP2005": 7353.000000, "POP2010": 7772.000000, "POP2015": 8320.000000, "POP2020": 8916.000000, "POP2025": 9299.000000, "POP2050": 9600.000000, "CITYALT": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -8247136.737341466359794, 512438.552491569600534 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Cairo", "NAMEPAR": null, "NAMEALT": "Al-Qahirah", "DIFFASCII": 0, "NAMEASCII": "Cairo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Egypt", "SOV_A3": "EGY", "ADM0NAME": "Egypt", "ADM0_A3": "EGY", "ADM1NAME": "Al Qahirah", "ISO_A2": "EG", "NOTE": null, "LATITUDE": 30.049960, "LONGITUDE": 31.249968, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11893000, "POP_MIN": 7734614, "POP_OTHER": 13720557, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 360630.000000, "MEGANAME": "Al-Qahirah", "LS_NAME": "Cairo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 14936123.000000, "MAX_POP20": 15091561.000000, "MAX_POP50": 29872827.000000, "MAX_POP300": 30682197.000000, "MAX_POP310": 30696820.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1479.000000, "MAX_AREAKM": 4900.000000, "MIN_AREAMI": 571.000000, "MAX_AREAMI": 1892.000000, "MIN_PERKM": 1365.000000, "MAX_PERKM": 5010.000000, "MIN_PERMI": 848.000000, "MAX_PERMI": 3113.000000, "MIN_BBXMIN": 30.641667, "MAX_BBXMIN": 30.991693, "MIN_BBXMAX": 31.672096, "MAX_BBXMAX": 31.733333, "MIN_BBYMIN": 29.300000, "MAX_BBYMIN": 29.800000, "MIN_BBYMAX": 30.531354, "MAX_BBYMAX": 31.158333, "MEAN_BBXC": 31.273845, "MEAN_BBYC": 30.353647, "COMPARE": 0, "GN_ASCII": "Cairo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 7734614.000000, "ELEVATION": 0.000000, "GTOPO30": 23.000000, "TIMEZONE": "Africa\/Cairo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 515, "UN_ADM0": "Egypt", "UN_LAT": 30.070000, "UN_LONG": 31.250000, "POP1950": 2494.000000, "POP1955": 3029.000000, "POP1960": 3680.000000, "POP1965": 4738.000000, "POP1970": 5585.000000, "POP1975": 6450.000000, "POP1980": 7349.000000, "POP1985": 8328.000000, "POP1990": 9061.000000, "POP1995": 9707.000000, "POP2000": 10534.000000, "POP2005": 11487.000000, "POP2010": 11893.000000, "POP2015": 12503.000000, "POP2020": 13465.000000, "POP2025": 14451.000000, "POP2050": 15561.000000, "CITYALT": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 3478513.937537387944758, 3510223.648597643245012 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Shanghai", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Shanghai", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "China", "ADM0_A3": "CHN", "ADM1NAME": "Shanghai", "ISO_A2": "CN", "NOTE": null, "LATITUDE": 31.216452, "LONGITUDE": 121.436505, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 14987000, "POP_MIN": 14608512, "POP_OTHER": 16803572, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 1796236.000000, "MEGANAME": "Shanghai", "LS_NAME": "Shanghai", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 16172884.000000, "MAX_POP20": 16172884.000000, "MAX_POP50": 26630672.000000, "MAX_POP300": 26631586.000000, "MAX_POP310": 40576904.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 3792.000000, "MAX_AREAKM": 16400.000000, "MIN_AREAMI": 1464.000000, "MAX_AREAMI": 6332.000000, "MIN_PERKM": 2219.000000, "MAX_PERKM": 12342.000000, "MIN_PERMI": 1379.000000, "MAX_PERMI": 7669.000000, "MIN_BBXMIN": 119.016667, "MAX_BBXMIN": 121.013757, "MIN_BBXMAX": 121.900000, "MAX_BBXMAX": 121.900000, "MIN_BBYMIN": 30.191667, "MAX_BBYMIN": 30.700000, "MIN_BBYMAX": 31.650000, "MAX_BBYMAX": 32.308333, "MEAN_BBXC": 121.053901, "MEAN_BBYC": 31.253289, "COMPARE": 0, "GN_ASCII": "Shanghai", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 23.000000, "GN_POP": 14608512.000000, "ELEVATION": 0.000000, "GTOPO30": 6.000000, "TIMEZONE": "Asia\/Shanghai", "GEONAMESNO": "GeoNames match general.", "UN_FID": 98, "UN_ADM0": "China", "UN_LAT": 31.240000, "UN_LONG": 121.470000, "POP1950": 6066.000000, "POP1955": 6299.000000, "POP1960": 6542.000000, "POP1965": 6793.000000, "POP1970": 7055.000000, "POP1975": 7326.000000, "POP1980": 7608.000000, "POP1985": 7901.000000, "POP1990": 8205.000000, "POP1995": 10423.000000, "POP2000": 13243.000000, "POP2005": 14503.000000, "POP2010": 14987.000000, "POP2015": 15789.000000, "POP2020": 17214.000000, "POP2025": 18466.000000, "POP2050": 19412.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13518033.252528209239244, 3661144.920720709953457 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Tokyo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tokyo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto capita", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Japan", "SOV_A3": "JPN", "ADM0NAME": "Japan", "ADM0_A3": "JPN", "ADM1NAME": "Tokyo", "ISO_A2": "JP", "NOTE": null, "LATITUDE": 35.685017, "LONGITUDE": 139.751407, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 35676000, "POP_MIN": 8336599, "POP_OTHER": 12945252, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 1850147.000000, "MEGANAME": "Tokyo", "LS_NAME": "Tokyo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 13762740.000000, "MAX_POP20": 24218878.000000, "MAX_POP50": 31303497.000000, "MAX_POP300": 31303497.000000, "MAX_POP310": 31303497.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 2130.000000, "MAX_AREAKM": 5750.000000, "MIN_AREAMI": 823.000000, "MAX_AREAMI": 2220.000000, "MIN_PERKM": 838.000000, "MAX_PERKM": 2284.000000, "MIN_PERMI": 521.000000, "MAX_PERMI": 1419.000000, "MIN_BBXMIN": 139.166667, "MAX_BBXMIN": 139.536465, "MIN_BBXMAX": 140.433333, "MAX_BBXMAX": 140.433333, "MIN_BBYMIN": 35.175000, "MAX_BBYMIN": 35.486247, "MIN_BBYMAX": 36.050000, "MAX_BBYMAX": 36.241667, "MEAN_BBXC": 139.751020, "MEAN_BBYC": 35.743469, "COMPARE": 0, "GN_ASCII": "Tokyo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 40.000000, "GN_POP": 8336599.000000, "ELEVATION": 0.000000, "GTOPO30": 40.000000, "TIMEZONE": "Asia\/Tokyo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 318, "UN_ADM0": "Japan", "UN_LAT": 35.680000, "UN_LONG": 139.800000, "POP1950": 11275.000000, "POP1955": 13713.000000, "POP1960": 16679.000000, "POP1965": 20284.000000, "POP1970": 23298.000000, "POP1975": 26615.000000, "POP1980": 28549.000000, "POP1985": 30304.000000, "POP1990": 32530.000000, "POP1995": 33587.000000, "POP2000": 34450.000000, "POP2005": 35327.000000, "POP2010": 35676.000000, "POP2015": 36094.000000, "POP2020": 36371.000000, "POP2025": 36399.000000, "POP2050": 36400.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 15556838.900667186826468, 4257632.982114631682634 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Mumbai", "NAMEPAR": "Bombay", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Mumbai", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "India", "SOV_A3": "IND", "ADM0NAME": "India", "ADM0_A3": "IND", "ADM1NAME": "Maharashtra", "ISO_A2": "IN", "NOTE": null, "LATITUDE": 19.016990, "LONGITUDE": 72.856989, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 18978000, "POP_MIN": 12691836, "POP_OTHER": 12426085, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 1275339.000000, "MEGANAME": "Mumbai", "LS_NAME": "Mumbai", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 12814908.000000, "MAX_POP20": 20149761.000000, "MAX_POP50": 20149761.000000, "MAX_POP300": 20149761.000000, "MAX_POP310": 20149761.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 442.000000, "MAX_AREAKM": 1479.000000, "MIN_AREAMI": 171.000000, "MAX_AREAMI": 571.000000, "MIN_PERKM": 244.000000, "MAX_PERKM": 1021.000000, "MIN_PERMI": 152.000000, "MAX_PERMI": 634.000000, "MIN_BBXMIN": 72.758333, "MAX_BBXMIN": 72.775000, "MIN_BBXMAX": 72.983154, "MAX_BBXMAX": 73.266667, "MIN_BBYMIN": 18.891667, "MAX_BBYMIN": 18.891667, "MIN_BBYMAX": 19.308333, "MAX_BBYMAX": 19.491667, "MEAN_BBXC": 72.959776, "MEAN_BBYC": 19.189154, "COMPARE": 0, "GN_ASCII": "Mumbai", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 16.000000, "GN_POP": 12691836.000000, "ELEVATION": 0.000000, "GTOPO30": 12.000000, "TIMEZONE": "Asia\/Kolkata", "GEONAMESNO": "GeoNames match general.", "UN_FID": 253, "UN_ADM0": "India", "UN_LAT": 19.070000, "UN_LONG": 72.820000, "POP1950": 2857.000000, "POP1955": 3432.000000, "POP1960": 4060.000000, "POP1965": 4854.000000, "POP1970": 5811.000000, "POP1975": 7082.000000, "POP1980": 8658.000000, "POP1985": 10341.000000, "POP1990": 12308.000000, "POP1995": 14111.000000, "POP2000": 16086.000000, "POP2005": 18202.000000, "POP2010": 18978.000000, "POP2015": 20072.000000, "POP2020": 21946.000000, "POP2025": 24051.000000, "POP2050": 26385.000000, "CITYALT": "Bombay" }, "geometry": { "type": "Point", "coordinates": [ 8110186.337325312197208, 2157165.476737847086042 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Paris", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Paris", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "French Republic", "SOV_A3": "FRA", "ADM0NAME": "France", "ADM0_A3": "FRA", "ADM1NAME": "Île-de-France", "ISO_A2": "FR", "NOTE": null, "LATITUDE": 48.866693, "LONGITUDE": 2.333335, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 9904000, "POP_MIN": 11177, "POP_OTHER": 7142744, "RANK_MAX": 13, "RANK_MIN": 6, "GEONAMEID": 6942553.000000, "MEGANAME": "Paris", "LS_NAME": "Paris", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 7454172.000000, "MAX_POP20": 7970513.000000, "MAX_POP50": 9960588.000000, "MAX_POP300": 9960588.000000, "MAX_POP310": 9960588.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1121.000000, "MAX_AREAKM": 2415.000000, "MIN_AREAMI": 433.000000, "MAX_AREAMI": 932.000000, "MIN_PERKM": 542.000000, "MAX_PERKM": 1891.000000, "MIN_PERMI": 337.000000, "MAX_PERMI": 1175.000000, "MIN_BBXMIN": 1.658333, "MAX_BBXMIN": 2.152754, "MIN_BBXMAX": 2.658336, "MAX_BBXMAX": 2.925000, "MIN_BBYMIN": 48.491667, "MAX_BBYMIN": 48.591667, "MIN_BBYMAX": 49.183333, "MAX_BBYMAX": 49.183333, "MEAN_BBXC": 2.352277, "MEAN_BBYC": 48.839027, "COMPARE": 0, "GN_ASCII": "Paris", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 8.000000, "GN_POP": 11177.000000, "ELEVATION": 0.000000, "GTOPO30": 228.000000, "TIMEZONE": "America\/Toronto", "GEONAMESNO": "GeoNames match general.", "UN_FID": 189, "UN_ADM0": "France", "UN_LAT": 48.880000, "UN_LONG": 2.430000, "POP1950": 6522.000000, "POP1955": 6796.000000, "POP1960": 7411.000000, "POP1965": 7968.000000, "POP1970": 8350.000000, "POP1975": 8558.000000, "POP1980": 8669.000000, "POP1985": 8956.000000, "POP1990": 9330.000000, "POP1995": 9510.000000, "POP2000": 9692.000000, "POP2005": 9852.000000, "POP2010": 9904.000000, "POP2015": 9958.000000, "POP2020": 10007.000000, "POP2025": 10031.000000, "POP2050": 10036.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 259529.088321753079072, 6252601.467208499088883 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Santiago", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Santiago", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official, admin", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Chile", "SOV_A3": "CHL", "ADM0NAME": "Chile", "ADM0_A3": "CHL", "ADM1NAME": "Región Metropolitana de Santiago", "ISO_A2": "CL", "NOTE": null, "LATITUDE": -33.450014, "LONGITUDE": -70.667041, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 5720000, "POP_MIN": 46611, "POP_OTHER": 3066651, "RANK_MAX": 13, "RANK_MIN": 7, "GEONAMEID": 3449741.000000, "MEGANAME": "Santiago", "LS_NAME": "Santiago3", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3540014.000000, "MAX_POP20": 5157058.000000, "MAX_POP50": 5157058.000000, "MAX_POP300": 5157058.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 570.000000, "MAX_AREAKM": 903.000000, "MIN_AREAMI": 220.000000, "MAX_AREAMI": 349.000000, "MIN_PERKM": 310.000000, "MAX_PERKM": 558.000000, "MIN_PERMI": 193.000000, "MAX_PERMI": 347.000000, "MIN_BBXMIN": -70.958333, "MAX_BBXMIN": -70.800000, "MIN_BBXMAX": -70.458333, "MAX_BBXMAX": -70.458333, "MIN_BBYMIN": -33.700000, "MAX_BBYMIN": -33.556142, "MIN_BBYMAX": -33.175000, "MAX_BBYMAX": -33.175000, "MEAN_BBXC": -70.661270, "MEAN_BBYC": -33.461735, "COMPARE": 0, "GN_ASCII": "Santiago", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 23.000000, "GN_POP": 46611.000000, "ELEVATION": 0.000000, "GTOPO30": 441.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 17, "UN_ADM0": "Chile", "UN_LAT": 8.100000, "UN_LONG": -80.960000, "POP1950": 1322.000000, "POP1955": 1618.000000, "POP1960": 1980.000000, "POP1965": 2294.000000, "POP1970": 2647.000000, "POP1975": 3138.000000, "POP1980": 3721.000000, "POP1985": 4201.000000, "POP1990": 4616.000000, "POP1995": 4964.000000, "POP2000": 5275.000000, "POP2005": 5599.000000, "POP2010": 5720.000000, "POP2015": 5879.000000, "POP2020": 6084.000000, "POP2025": 6224.000000, "POP2050": 6310.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7866835.615787239745259, -3954929.633151687216014 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Kolkata", "NAMEPAR": "Calcutta", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kolkata", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "India", "SOV_A3": "IND", "ADM0NAME": "India", "ADM0_A3": "IND", "ADM1NAME": "West Bengal", "ISO_A2": "IN", "NOTE": null, "LATITUDE": 22.494969, "LONGITUDE": 88.324676, "CHANGED": 4.000000, "NAMEDIFF": 1, "DIFFNOTE": "Name changed. Changed scale rank.", "POP_MAX": 14787000, "POP_MIN": 4631392, "POP_OTHER": 7783716, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 1275004.000000, "MEGANAME": "Kolkata", "LS_NAME": "Calcutta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 8143162.000000, "MAX_POP20": 18577087.000000, "MAX_POP50": 48715672.000000, "MAX_POP300": 87652060.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 2490.000000, "MAX_AREAKM": 53331.000000, "MIN_AREAMI": 962.000000, "MAX_AREAMI": 20591.000000, "MIN_PERKM": 0.000000, "MAX_PERKM": 35493.000000, "MIN_PERMI": 0.000000, "MAX_PERMI": 22054.000000, "MIN_BBXMIN": 85.483333, "MAX_BBXMIN": 87.714444, "MIN_BBXMAX": 88.850000, "MAX_BBXMAX": 89.455426, "MIN_BBYMIN": 19.866667, "MAX_BBYMIN": 22.056849, "MIN_BBYMAX": 22.575491, "MAX_BBYMAX": 25.259961, "MEAN_BBXC": 88.040398, "MEAN_BBYC": 22.616509, "COMPARE": 1, "GN_ASCII": "Calcutta", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 28.000000, "GN_POP": 4631392.000000, "ELEVATION": 0.000000, "GTOPO30": 16.000000, "TIMEZONE": "Asia\/Kolkata", "GEONAMESNO": "GeoNames match general.", "UN_FID": 245, "UN_ADM0": "India", "UN_LAT": 22.540000, "UN_LONG": 88.330000, "POP1950": 4513.000000, "POP1955": 5055.000000, "POP1960": 5652.000000, "POP1965": 6261.000000, "POP1970": 6926.000000, "POP1975": 7888.000000, "POP1980": 9030.000000, "POP1985": 9946.000000, "POP1990": 10890.000000, "POP1995": 11924.000000, "POP2000": 13058.000000, "POP2005": 14282.000000, "POP2010": 14787.000000, "POP2015": 15577.000000, "POP2020": 17039.000000, "POP2025": 18707.000000, "POP2050": 20560.000000, "CITYALT": "Calcutta" }, "geometry": { "type": "Point", "coordinates": [ 9832041.306752843782306, 2571291.354412415064871 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Rio de Janeiro", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Rio de Janeiro", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Brazil", "SOV_A3": "BRA", "ADM0NAME": "Brazil", "ADM0_A3": "BRA", "ADM1NAME": "Rio de Janeiro", "ISO_A2": "BR", "NOTE": null, "LATITUDE": -22.925023, "LONGITUDE": -43.225021, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11748000, "POP_MIN": 2010175, "POP_OTHER": 1821489, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 3451190.000000, "MEGANAME": "Rio de Janeiro", "LS_NAME": "Rio de Janeiro", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2010175.000000, "MAX_POP20": 8118691.000000, "MAX_POP50": 8889292.000000, "MAX_POP300": 8889292.000000, "MAX_POP310": 8889292.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 316.000000, "MAX_AREAKM": 1472.000000, "MIN_AREAMI": 122.000000, "MAX_AREAMI": 568.000000, "MIN_PERKM": 203.000000, "MAX_PERKM": 691.000000, "MIN_PERMI": 126.000000, "MAX_PERMI": 429.000000, "MIN_BBXMIN": -43.750000, "MAX_BBXMIN": -43.499182, "MIN_BBXMAX": -43.158333, "MAX_BBXMAX": -43.150000, "MIN_BBYMIN": -23.033333, "MAX_BBYMIN": -23.033333, "MIN_BBYMAX": -22.837896, "MAX_BBYMAX": -22.575000, "MEAN_BBXC": -43.407551, "MEAN_BBYC": -22.856463, "COMPARE": 0, "GN_ASCII": "Rio de Janeiro", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 21.000000, "GN_POP": 6023699.000000, "ELEVATION": 0.000000, "GTOPO30": 19.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 489, "UN_ADM0": "Brazil", "UN_LAT": -22.720000, "UN_LONG": -43.450000, "POP1950": 2950.000000, "POP1955": 3592.000000, "POP1960": 4374.000000, "POP1965": 5387.000000, "POP1970": 6637.000000, "POP1975": 7557.000000, "POP1980": 8583.000000, "POP1985": 9086.000000, "POP1990": 9595.000000, "POP1995": 10174.000000, "POP2000": 10803.000000, "POP2005": 11469.000000, "POP2010": 11748.000000, "POP2015": 12171.000000, "POP2020": 12775.000000, "POP2025": 13179.000000, "POP2050": 13413.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -4812003.916332375258207, -2622718.786988301202655 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Sao Paulo", "NAMEPAR": null, "NAMEALT": "Sao Paulo|São Paulo", "DIFFASCII": 0, "NAMEASCII": "Sao Paulo", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Brazil", "SOV_A3": "BRA", "ADM0NAME": "Brazil", "ADM0_A3": "BRA", "ADM1NAME": "São Paulo", "ISO_A2": "BR", "NOTE": null, "LATITUDE": -23.558680, "LONGITUDE": -46.625020, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 18845000, "POP_MIN": 10021295, "POP_OTHER": 11522944, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 3448439.000000, "MEGANAME": "São Paulo", "LS_NAME": "Sao Paolo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 12495084.000000, "MAX_POP20": 17425624.000000, "MAX_POP50": 18203351.000000, "MAX_POP300": 18203351.000000, "MAX_POP310": 18203351.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1434.000000, "MAX_AREAKM": 2667.000000, "MIN_AREAMI": 554.000000, "MAX_AREAMI": 1030.000000, "MIN_PERKM": 532.000000, "MAX_PERKM": 1086.000000, "MIN_PERMI": 330.000000, "MAX_PERMI": 675.000000, "MIN_BBXMIN": -47.058333, "MAX_BBXMIN": -47.056372, "MIN_BBXMAX": -46.383333, "MAX_BBXMAX": -46.108333, "MIN_BBYMIN": -23.891667, "MAX_BBYMIN": -23.842331, "MIN_BBYMAX": -23.358333, "MAX_BBYMAX": -23.241667, "MEAN_BBXC": -46.651489, "MEAN_BBYC": -23.558961, "COMPARE": 0, "GN_ASCII": "Sao Paulo", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 27.000000, "GN_POP": 10021295.000000, "ELEVATION": 0.000000, "GTOPO30": 631.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 491, "UN_ADM0": "Brazil", "UN_LAT": -23.580000, "UN_LONG": -46.620000, "POP1950": 2334.000000, "POP1955": 3044.000000, "POP1960": 3970.000000, "POP1965": 5494.000000, "POP1970": 7620.000000, "POP1975": 9614.000000, "POP1980": 12089.000000, "POP1985": 13395.000000, "POP1990": 14776.000000, "POP1995": 15948.000000, "POP2000": 17099.000000, "POP2005": 18333.000000, "POP2010": 18845.000000, "POP2015": 19582.000000, "POP2020": 20544.000000, "POP2025": 21124.000000, "POP2050": 21428.000000, "CITYALT": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -5190490.094438991509378, -2699486.460265028756112 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-1 capital", "NAME": "Sydney", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sydney", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Australia", "SOV_A3": "AUS", "ADM0NAME": "Australia", "ADM0_A3": "AUS", "ADM1NAME": "New South Wales", "ISO_A2": "AU", "NOTE": null, "LATITUDE": -33.920011, "LONGITUDE": 151.185180, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed feature class.", "POP_MAX": 4630000, "POP_MIN": 3641422, "POP_OTHER": 2669348, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2147714.000000, "MEGANAME": "Sydney", "LS_NAME": "Sydney1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2731457.000000, "MAX_POP20": 2731457.000000, "MAX_POP50": 3164008.000000, "MAX_POP300": 3164008.000000, "MAX_POP310": 3164008.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1078.000000, "MAX_AREAKM": 1409.000000, "MIN_AREAMI": 416.000000, "MAX_AREAMI": 544.000000, "MIN_PERKM": 468.000000, "MAX_PERKM": 717.000000, "MIN_PERMI": 291.000000, "MAX_PERMI": 445.000000, "MIN_BBXMIN": 150.533333, "MAX_BBXMIN": 150.831963, "MIN_BBXMAX": 151.308333, "MAX_BBXMAX": 151.341667, "MIN_BBYMIN": -34.091667, "MAX_BBYMIN": -34.091667, "MIN_BBYMAX": -33.641667, "MAX_BBYMAX": -33.600000, "MEAN_BBXC": 151.051024, "MEAN_BBYC": -33.846724, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 4394576.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames rough area, rough name, requires further research.", "UN_FID": 276, "UN_ADM0": "Australia", "UN_LAT": -33.880000, "UN_LONG": 151.020000, "POP1950": 1690.000000, "POP1955": 1906.000000, "POP1960": 2135.000000, "POP1965": 2390.000000, "POP1970": 2667.000000, "POP1975": 2960.000000, "POP1980": 3227.000000, "POP1985": 3432.000000, "POP1990": 3632.000000, "POP1995": 3839.000000, "POP2000": 4078.000000, "POP2005": 4260.000000, "POP2010": 4327.000000, "POP2015": 4427.000000, "POP2020": 4582.000000, "POP2025": 4716.000000, "POP2050": 4826.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 16829640.61981076747179, -4017805.47094540996477 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Singapore", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Singapore", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Singapore", "SOV_A3": "SGP", "ADM0NAME": "Singapore", "ADM0_A3": "SGP", "ADM1NAME": null, "ISO_A2": "SG", "NOTE": null, "LATITUDE": 1.293033, "LONGITUDE": 103.855821, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 5183700, "POP_MIN": 3289529, "POP_OTHER": 3314179, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 1880252.000000, "MEGANAME": "Singapore", "LS_NAME": "Singapore", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 3289529.000000, "MAX_POP20": 4207001.000000, "MAX_POP50": 4207001.000000, "MAX_POP300": 4207001.000000, "MAX_POP310": 4207001.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 305.000000, "MAX_AREAKM": 456.000000, "MIN_AREAMI": 118.000000, "MAX_AREAMI": 176.000000, "MIN_PERKM": 173.000000, "MAX_PERKM": 288.000000, "MIN_PERMI": 108.000000, "MAX_PERMI": 179.000000, "MIN_BBXMIN": 103.633333, "MAX_BBXMIN": 103.658333, "MIN_BBXMAX": 104.000000, "MAX_BBXMAX": 104.000000, "MIN_BBYMIN": 1.250000, "MAX_BBYMIN": 1.250000, "MIN_BBYMAX": 1.425000, "MAX_BBYMAX": 1.475000, "MEAN_BBXC": 103.821508, "MEAN_BBYC": 1.352586, "COMPARE": 0, "GN_ASCII": "Singapore", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 3547809.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Asia\/Singapore", "GEONAMESNO": "GeoNames match general.", "UN_FID": 450, "UN_ADM0": "Singapore", "UN_LAT": 1.260000, "UN_LONG": 103.830000, "POP1950": 1016.000000, "POP1955": 1306.000000, "POP1960": 1634.000000, "POP1965": 1880.000000, "POP1970": 2075.000000, "POP1975": 2263.000000, "POP1980": 2415.000000, "POP1985": 2709.000000, "POP1990": 3016.000000, "POP1995": 3478.000000, "POP2000": 4017.000000, "POP2005": 4327.000000, "POP2010": 4436.000000, "POP2015": 4592.000000, "POP2020": 4809.000000, "POP2025": 4965.000000, "POP2050": 5104.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11560960.461770480498672, 144168.713978545973077 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 0, "FEATURECLA": "Admin-0 region capital", "NAME": "Hong Kong", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Hong Kong", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "Hong Kong S.A.R.", "ADM0_A3": "HKG", "ADM1NAME": null, "ISO_A2": "HK", "NOTE": null, "LATITUDE": 22.304981, "LONGITUDE": 114.185009, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 7206000, "POP_MIN": 4551579, "POP_OTHER": 4549026, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 1819729.000000, "MEGANAME": "Hong Kong", "LS_NAME": "Hong Kong", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 4551579.000000, "MAX_POP20": 15779579.000000, "MAX_POP50": 16718429.000000, "MAX_POP300": 16718429.000000, "MAX_POP310": 42594594.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 202.000000, "MAX_AREAKM": 10661.000000, "MIN_AREAMI": 78.000000, "MAX_AREAMI": 4116.000000, "MIN_PERKM": 219.000000, "MAX_PERKM": 7493.000000, "MIN_PERMI": 136.000000, "MAX_PERMI": 4656.000000, "MIN_BBXMIN": 112.533333, "MAX_BBXMIN": 113.983333, "MIN_BBXMAX": 114.300000, "MAX_BBXMAX": 114.775000, "MIN_BBYMIN": 21.925000, "MAX_BBYMIN": 22.200000, "MIN_BBYMAX": 22.400000, "MAX_BBYMAX": 24.033333, "MEAN_BBXC": 114.035195, "MEAN_BBYC": 22.679605, "COMPARE": 0, "GN_ASCII": "Hong Kong", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 7012738.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Asia\/Hong_Kong", "GEONAMESNO": "GeoNames match general.", "UN_FID": 210, "UN_ADM0": "China, Hong Kong Special Administrative Region", "UN_LAT": 22.270000, "UN_LONG": 114.170000, "POP1950": 1682.000000, "POP1955": 2121.000000, "POP1960": 2620.000000, "POP1965": 3191.000000, "POP1970": 3458.000000, "POP1975": 3943.000000, "POP1980": 4609.000000, "POP1985": 5070.000000, "POP1990": 5677.000000, "POP1995": 6206.000000, "POP2000": 6662.000000, "POP2005": 7057.000000, "POP2010": 7206.000000, "POP2015": 7419.000000, "POP2020": 7744.000000, "POP2025": 8040.000000, "POP2050": 8305.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 12710800.481412149965763, 2548415.568022339604795 ] } }
{ "type": "Feature", "properties": { "SCALERANK": 8, "NATSCALE": 10, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Vatican City", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vatican City", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 0, "SOV0NAME": "Vatican (Holy Sea)", "SOV_A3": "VAT", "ADM0NAME": "Vatican (Holy Sea)", "ADM0_A3": "VAT", "ADM1NAME": "Lazio", "ISO_A2": "VA", "NOTE": null, "LATITUDE": 41.900012, "LONGITUDE": 12.447808, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 832, "POP_MIN": 832, "POP_OTHER": 562430, "RANK_MAX": 2, "RANK_MIN": 2, "GEONAMEID": 6691831.000000, "MEGANAME": null, "LS_NAME": "Vatican City", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 636762.000000, "MAX_POP20": 636762.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 20.000000, "MIN_AREAKM": 177.000000, "MAX_AREAKM": 177.000000, "MIN_AREAMI": 68.000000, "MAX_AREAMI": 68.000000, "MIN_PERKM": 160.000000, "MAX_PERKM": 160.000000, "MIN_PERMI": 99.000000, "MAX_PERMI": 99.000000, "MIN_BBXMIN": 12.333333, "MAX_BBXMIN": 12.333333, "MIN_BBXMAX": 12.481009, "MAX_BBXMAX": 12.481009, "MIN_BBYMIN": 41.766667, "MAX_BBYMIN": 41.766667, "MIN_BBYMAX": 42.050000, "MAX_BBYMAX": 42.050000, "MEAN_BBXC": 12.419907, "MEAN_BBYC": 41.903477, "COMPARE": 0, "GN_ASCII": "Vatican City", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 826.000000, "ELEVATION": 0.000000, "GTOPO30": 17.000000, "TIMEZONE": "Europe\/Vatican", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1386304.648838, 5146502.575862 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "San Marino", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "San Marino", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "San Marino", "SOV_A3": "SMR", "ADM0NAME": "San Marino", "ADM0_A3": "SMR", "ADM1NAME": null, "ISO_A2": "SM", "NOTE": null, "LATITUDE": 43.917150, "LONGITUDE": 12.466670, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 29579, "POP_MIN": 29000, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 3168070.000000, "MEGANAME": null, "LS_NAME": "San Marino", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 29088.000000, "MAX_POP20": 29579.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 20.000000, "MIN_AREAKM": 30.000000, "MAX_AREAKM": 30.000000, "MIN_AREAMI": 11.000000, "MAX_AREAMI": 11.000000, "MIN_PERKM": 63.000000, "MAX_PERKM": 63.000000, "MIN_PERMI": 39.000000, "MAX_PERMI": 39.000000, "MIN_BBXMIN": 12.391667, "MAX_BBXMIN": 12.391667, "MIN_BBXMAX": 12.541667, "MAX_BBXMAX": 12.541667, "MIN_BBYMIN": 43.900000, "MAX_BBYMIN": 43.900000, "MIN_BBYMAX": 44.000000, "MAX_BBYMAX": 44.000000, "MEAN_BBXC": 12.462153, "MEAN_BBYC": 43.953472, "COMPARE": 0, "GN_ASCII": "San Marino", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 29000.000000, "ELEVATION": 0.000000, "GTOPO30": 377.000000, "TIMEZONE": "Europe\/San_Marino", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1385011.518533, 5455558.186449 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Vaduz", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vaduz", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Liechtenstein", "SOV_A3": "LIE", "ADM0NAME": "Liechtenstein", "ADM0_A3": "LIE", "ADM1NAME": null, "ISO_A2": "LI", "NOTE": null, "LATITUDE": 47.133724, "LONGITUDE": 9.516669, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 36281, "POP_MIN": 5342, "POP_OTHER": 33009, "RANK_MAX": 7, "RANK_MIN": 5, "GEONAMEID": 3042030.000000, "MEGANAME": null, "LS_NAME": "Vaduz", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 45442.000000, "MAX_POP20": 45442.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 20.000000, "MIN_AREAKM": 45.000000, "MAX_AREAKM": 45.000000, "MIN_AREAMI": 17.000000, "MAX_AREAMI": 17.000000, "MIN_PERKM": 90.000000, "MAX_PERKM": 90.000000, "MIN_PERMI": 56.000000, "MAX_PERMI": 56.000000, "MIN_BBXMIN": 9.433333, "MAX_BBXMIN": 9.433333, "MIN_BBXMAX": 9.558333, "MAX_BBXMAX": 9.558333, "MIN_BBYMIN": 47.091667, "MAX_BBYMIN": 47.091667, "MIN_BBYMAX": 47.233333, "MAX_BBYMAX": 47.233333, "MEAN_BBXC": 9.503734, "MEAN_BBYC": 47.167478, "COMPARE": 0, "GN_ASCII": "Vaduz", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 5197.000000, "ELEVATION": 0.000000, "GTOPO30": 711.000000, "TIMEZONE": "Europe\/Vaduz", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1059390.799771, 5963928.576226 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital alt", "NAME": "Lobamba", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lobamba", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Legislative and", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Swaziland", "SOV_A3": "SWZ", "ADM0NAME": "Swaziland", "ADM0_A3": "SWZ", "ADM1NAME": "Manzini", "ISO_A2": "SZ", "NOTE": null, "LATITUDE": -26.466667, "LONGITUDE": 31.199997, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 9782, "POP_MIN": 4557, "POP_OTHER": 0, "RANK_MAX": 5, "RANK_MIN": 4, "GEONAMEID": 935048.000000, "MEGANAME": null, "LS_NAME": "Lobamba", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 9782.000000, "MAX_POP20": 9782.000000, "MAX_POP50": 9782.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 18.000000, "MAX_AREAKM": 18.000000, "MIN_AREAMI": 7.000000, "MAX_AREAMI": 7.000000, "MIN_PERKM": 32.000000, "MAX_PERKM": 32.000000, "MIN_PERMI": 20.000000, "MAX_PERMI": 20.000000, "MIN_BBXMIN": 31.183333, "MAX_BBXMIN": 31.183333, "MIN_BBXMAX": 31.233333, "MAX_BBXMAX": 31.233333, "MIN_BBYMIN": -26.458333, "MAX_BBYMIN": -26.458333, "MIN_BBYMAX": -26.391667, "MAX_BBYMAX": -26.391667, "MEAN_BBXC": 31.201993, "MEAN_BBYC": -26.430254, "COMPARE": 0, "GN_ASCII": "Lobamba", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 4557.000000, "ELEVATION": 0.000000, "GTOPO30": 651.000000, "TIMEZONE": "Africa\/Mbabane", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3473167.791004, -3056995.457303 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Luxembourg", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Luxembourg", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Luxembourg", "SOV_A3": "LUX", "ADM0NAME": "Luxembourg", "ADM0_A3": "LUX", "ADM1NAME": "Luxembourg", "ISO_A2": "LU", "NOTE": null, "LATITUDE": 49.611660, "LONGITUDE": 6.130003, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 107260, "POP_MIN": 76684, "POP_OTHER": 106219, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 2960316.000000, "MEGANAME": null, "LS_NAME": "Luxembourg", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 107260.000000, "MAX_POP20": 107260.000000, "MAX_POP50": 107260.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 60.000000, "MAX_AREAKM": 60.000000, "MIN_AREAMI": 23.000000, "MAX_AREAMI": 23.000000, "MIN_PERKM": 71.000000, "MAX_PERKM": 71.000000, "MIN_PERMI": 44.000000, "MAX_PERMI": 44.000000, "MIN_BBXMIN": 6.041667, "MAX_BBXMIN": 6.041667, "MIN_BBXMAX": 6.183333, "MAX_BBXMAX": 6.183333, "MIN_BBYMIN": 49.558333, "MAX_BBYMIN": 49.558333, "MIN_BBYMAX": 49.708333, "MAX_BBYMAX": 49.708333, "MEAN_BBXC": 6.125273, "MEAN_BBYC": 49.620833, "COMPARE": 0, "GN_ASCII": "Luxembourg", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 76684.000000, "ELEVATION": 0.000000, "GTOPO30": 259.000000, "TIMEZONE": "Europe\/Luxembourg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 682388.790950, 6379291.915456 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Palikir", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Palikir", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Federated States of Micronesia", "SOV_A3": "FSM", "ADM0NAME": "Federated States of Micronesia", "ADM0_A3": "FSM", "ADM1NAME": null, "ISO_A2": "FM", "NOTE": null, "LATITUDE": 6.916644, "LONGITUDE": 158.149974, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4645, "POP_MIN": 4645, "POP_OTHER": 0, "RANK_MAX": 4, "RANK_MIN": 4, "GEONAMEID": 2081986.000000, "MEGANAME": null, "LS_NAME": "Palikir", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 412.000000, "MAX_POP20": 412.000000, "MAX_POP50": 412.000000, "MAX_POP300": 412.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1.000000, "MAX_AREAKM": 1.000000, "MIN_AREAMI": 0.000000, "MAX_AREAMI": 0.000000, "MIN_PERKM": 4.000000, "MAX_PERKM": 4.000000, "MIN_PERMI": 2.000000, "MAX_PERMI": 2.000000, "MIN_BBXMIN": 158.158333, "MAX_BBXMIN": 158.158333, "MIN_BBXMAX": 158.166667, "MAX_BBXMAX": 158.166667, "MIN_BBYMIN": 6.908333, "MAX_BBYMIN": 6.908333, "MIN_BBYMAX": 6.916667, "MAX_BBYMAX": 6.916667, "MEAN_BBXC": 158.162500, "MEAN_BBYC": 6.912500, "COMPARE": 0, "GN_ASCII": "Palikir", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 4645.000000, "ELEVATION": 0.000000, "GTOPO30": 159.000000, "TIMEZONE": "Pacific\/Ponape", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 17605174.610690, 771834.179448 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Majuro", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Majuro", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Marshall Islands", "SOV_A3": "MHL", "ADM0NAME": "Marshall Islands", "ADM0_A3": "MHL", "ADM1NAME": null, "ISO_A2": "MH", "NOTE": null, "LATITUDE": 7.103004, "LONGITUDE": 171.380000, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 25400, "POP_MIN": 20500, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2113779.000000, "MEGANAME": null, "LS_NAME": "Majuro", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2084.000000, "MAX_POP20": 2084.000000, "MAX_POP50": 2084.000000, "MAX_POP300": 2084.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 3.000000, "MAX_AREAKM": 3.000000, "MIN_AREAMI": 1.000000, "MAX_AREAMI": 1.000000, "MIN_PERKM": 7.000000, "MAX_PERKM": 7.000000, "MIN_PERMI": 5.000000, "MAX_PERMI": 5.000000, "MIN_BBXMIN": 171.366667, "MAX_BBXMIN": 171.366667, "MIN_BBXMAX": 171.375000, "MAX_BBXMAX": 171.375000, "MIN_BBYMIN": 7.091667, "MAX_BBYMIN": 7.091667, "MIN_BBYMAX": 7.116667, "MAX_BBYMAX": 7.116667, "MEAN_BBXC": 171.370833, "MEAN_BBYC": 7.104167, "COMPARE": 0, "GN_ASCII": "Majuro", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 20500.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Pacific\/Majuro", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19077934.351715, 792735.993679 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Funafuti", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Funafuti", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Tuvalu", "SOV_A3": "TUV", "ADM0NAME": "Tuvalu", "ADM0_A3": "TUV", "ADM1NAME": null, "ISO_A2": "TV", "NOTE": null, "LATITUDE": -8.516652, "LONGITUDE": 179.216647, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Population from GeoNames. Changed scale rank.", "POP_MAX": 4749, "POP_MIN": 4749, "POP_OTHER": 0, "RANK_MAX": 4, "RANK_MIN": 4, "GEONAMEID": 2110394.000000, "MEGANAME": null, "LS_NAME": "Funafuti", "LS_MATCH": 0, "CHECKME": 5, "MAX_POP10": 0.000000, "MAX_POP20": 0.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 0.000000, "MIN_AREAKM": 0.000000, "MAX_AREAKM": 0.000000, "MIN_AREAMI": 0.000000, "MAX_AREAMI": 0.000000, "MIN_PERKM": 0.000000, "MAX_PERKM": 0.000000, "MIN_PERMI": 0.000000, "MAX_PERMI": 0.000000, "MIN_BBXMIN": 0.000000, "MAX_BBXMIN": 0.000000, "MIN_BBXMAX": 0.000000, "MAX_BBXMAX": 0.000000, "MIN_BBYMIN": 0.000000, "MAX_BBYMIN": 0.000000, "MIN_BBYMAX": 0.000000, "MAX_BBYMAX": 0.000000, "MEAN_BBXC": 0.000000, "MEAN_BBYC": 0.000000, "COMPARE": 0, "GN_ASCII": "Funafuti", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 4749.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Pacific\/Funafuti", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19950305.896185, -951580.026821 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Melekeok", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Melekeok", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Palau", "SOV_A3": "PLW", "ADM0NAME": "Palau", "ADM0_A3": "PLW", "ADM1NAME": null, "ISO_A2": "PW", "NOTE": null, "LATITUDE": 7.487396, "LONGITUDE": 134.626548, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 7026, "POP_MIN": 7026, "POP_OTHER": 0, "RANK_MAX": 5, "RANK_MIN": 5, "GEONAMEID": 1559804.000000, "MEGANAME": null, "LS_NAME": "Melekeok", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 0.000000, "MAX_POP20": 0.000000, "MAX_POP50": 0.000000, "MAX_POP300": 7026.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 6.000000, "MAX_AREAKM": 6.000000, "MIN_AREAMI": 2.000000, "MAX_AREAMI": 2.000000, "MIN_PERKM": 15.000000, "MAX_PERKM": 15.000000, "MIN_PERMI": 9.000000, "MAX_PERMI": 9.000000, "MIN_BBXMIN": 134.466667, "MAX_BBXMIN": 134.466667, "MIN_BBXMAX": 134.500000, "MAX_BBXMAX": 134.500000, "MIN_BBYMIN": 7.325000, "MAX_BBYMIN": 7.325000, "MIN_BBYMAX": 7.350000, "MAX_BBYMAX": 7.350000, "MEAN_BBXC": 134.481548, "MEAN_BBYC": 7.339881, "COMPARE": 0, "GN_ASCII": "Melekeok", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 217.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Pacific\/Palau", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 14986558.822601, 835875.594339 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital alt", "NAME": "Bir Lehlou", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bir Lehlou", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Claimed as inte", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Western Sahara", "SOV_A3": "SAH", "ADM0NAME": "Western Sahara", "ADM0_A3": "SAH", "ADM1NAME": null, "ISO_A2": "EH", "NOTE": null, "LATITUDE": 26.119167, "LONGITUDE": -9.652522, "CHANGED": 4.000000, "NAMEDIFF": 1, "DIFFNOTE": "Added place.", "POP_MAX": 500, "POP_MIN": 200, "POP_OTHER": 0, "RANK_MAX": 2, "RANK_MIN": 1, "GEONAMEID": -1.000000, "MEGANAME": null, "LS_NAME": null, "LS_MATCH": 2, "CHECKME": 0, "MAX_POP10": 0.000000, "MAX_POP20": 0.000000, "MAX_POP50": 0.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 0.000000, "MIN_AREAKM": 0.000000, "MAX_AREAKM": 0.000000, "MIN_AREAMI": 0.000000, "MAX_AREAMI": 0.000000, "MIN_PERKM": 0.000000, "MAX_PERKM": 0.000000, "MIN_PERMI": 0.000000, "MAX_PERMI": 0.000000, "MIN_BBXMIN": 0.000000, "MAX_BBXMIN": 0.000000, "MIN_BBXMAX": 0.000000, "MAX_BBXMAX": 0.000000, "MIN_BBYMIN": 0.000000, "MAX_BBYMIN": 0.000000, "MIN_BBYMAX": 0.000000, "MAX_BBYMAX": 0.000000, "MEAN_BBXC": 0.000000, "MEAN_BBYC": 0.000000, "COMPARE": 1, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1074513.858206, 3013847.749461 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Monaco", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Monaco", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Monaco", "SOV_A3": "MCO", "ADM0NAME": "Monaco", "ADM0_A3": "MCO", "ADM1NAME": null, "ISO_A2": "MC", "NOTE": null, "LATITUDE": 43.739646, "LONGITUDE": 7.406913, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 36371, "POP_MIN": 36371, "POP_OTHER": 102371, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2993458.000000, "MEGANAME": null, "LS_NAME": "Monaco", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 108543.000000, "MAX_POP20": 108543.000000, "MAX_POP50": 108543.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 36.000000, "MAX_AREAKM": 36.000000, "MIN_AREAMI": 14.000000, "MAX_AREAMI": 14.000000, "MIN_PERKM": 57.000000, "MAX_PERKM": 57.000000, "MIN_PERMI": 35.000000, "MAX_PERMI": 35.000000, "MIN_BBXMIN": 7.350000, "MAX_BBXMIN": 7.350000, "MIN_BBXMAX": 7.533333, "MAX_BBXMAX": 7.533333, "MIN_BBYMIN": 43.716667, "MAX_BBYMIN": 43.716667, "MIN_BBYMAX": 43.800000, "MAX_BBYMAX": 43.800000, "MEAN_BBXC": 7.442529, "MEAN_BBYC": 43.754167, "COMPARE": 0, "GN_ASCII": "Monaco", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1020.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Europe\/Monaco", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 824533.802820, 5425239.758034 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Tarawa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tarawa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Kiribati", "SOV_A3": "KIR", "ADM0NAME": "Kiribati", "ADM0_A3": "KIR", "ADM1NAME": null, "ISO_A2": "KI", "NOTE": null, "LATITUDE": 1.338188, "LONGITUDE": 173.017571, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 28802, "POP_MIN": 22534, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2110079.000000, "MEGANAME": null, "LS_NAME": "Tarawa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 22534.000000, "MAX_POP20": 22534.000000, "MAX_POP50": 22534.000000, "MAX_POP300": 22534.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 12.000000, "MAX_AREAKM": 12.000000, "MIN_AREAMI": 5.000000, "MAX_AREAMI": 5.000000, "MIN_PERKM": 28.000000, "MAX_PERKM": 28.000000, "MIN_PERMI": 17.000000, "MAX_PERMI": 17.000000, "MIN_BBXMIN": 172.966667, "MAX_BBXMIN": 172.966667, "MIN_BBXMAX": 173.058333, "MAX_BBXMAX": 173.058333, "MIN_BBYMIN": 1.325000, "MAX_BBYMIN": 1.325000, "MIN_BBYMAX": 1.358333, "MAX_BBYMAX": 1.358333, "MEAN_BBXC": 173.015476, "MEAN_BBYC": 1.338690, "COMPARE": 0, "GN_ASCII": "Tarawa", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 28802.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Pacific\/Tarawa", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19260227.882923, 148979.896893 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Moroni", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Moroni", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Comoros", "SOV_A3": "COM", "ADM0NAME": "Comoros", "ADM0_A3": "COM", "ADM1NAME": null, "ISO_A2": "KM", "NOTE": null, "LATITUDE": -11.704158, "LONGITUDE": 43.240244, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 128698, "POP_MIN": 42872, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 7, "GEONAMEID": 921772.000000, "MEGANAME": null, "LS_NAME": "Moroni", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 128698.000000, "MAX_POP20": 128698.000000, "MAX_POP50": 128698.000000, "MAX_POP300": 128698.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 60.000000, "MAX_AREAKM": 60.000000, "MIN_AREAMI": 23.000000, "MAX_AREAMI": 23.000000, "MIN_PERKM": 98.000000, "MAX_PERKM": 98.000000, "MIN_PERMI": 61.000000, "MAX_PERMI": 61.000000, "MIN_BBXMIN": 43.225000, "MAX_BBXMIN": 43.225000, "MIN_BBXMAX": 43.291667, "MAX_BBXMAX": 43.291667, "MIN_BBYMIN": -11.758333, "MAX_BBYMIN": -11.758333, "MIN_BBYMAX": -11.475000, "MAX_BBYMAX": -11.475000, "MEAN_BBXC": 43.264352, "MEAN_BBYC": -11.639931, "COMPARE": 0, "GN_ASCII": "Moroni", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 42872.000000, "ELEVATION": 0.000000, "GTOPO30": 35.000000, "TIMEZONE": "Indian\/Comoro", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4813481.954843, -1312057.963742 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Andorra", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Andorra", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Andorra", "SOV_A3": "AND", "ADM0NAME": "Andorra", "ADM0_A3": "AND", "ADM1NAME": null, "ISO_A2": "AD", "NOTE": null, "LATITUDE": 42.500001, "LONGITUDE": 1.516486, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 53998, "POP_MIN": 22256, "POP_OTHER": 53371, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 3130067.000000, "MEGANAME": null, "LS_NAME": "Andorra", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 53998.000000, "MAX_POP20": 53998.000000, "MAX_POP50": 53998.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 23.000000, "MAX_AREAKM": 23.000000, "MIN_AREAMI": 9.000000, "MAX_AREAMI": 9.000000, "MIN_PERKM": 49.000000, "MAX_PERKM": 49.000000, "MIN_PERMI": 31.000000, "MAX_PERMI": 31.000000, "MIN_BBXMIN": 1.483333, "MAX_BBXMIN": 1.483333, "MIN_BBXMAX": 1.591667, "MAX_BBXMAX": 1.591667, "MIN_BBYMIN": 42.483333, "MAX_BBYMIN": 42.483333, "MIN_BBYMAX": 42.550000, "MAX_BBYMAX": 42.550000, "MEAN_BBXC": 1.535473, "MEAN_BBYC": 42.518131, "COMPARE": 0, "GN_ASCII": "Andorra", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 52.000000, "GN_POP": 7890.000000, "ELEVATION": 0.000000, "GTOPO30": 687.000000, "TIMEZONE": "Europe\/Madrid", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 168814.444918, 5236174.001877 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port-of-Spain", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port-of-Spain", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Trinidad and Tobago", "SOV_A3": "TTO", "ADM0NAME": "Trinidad and Tobago", "ADM0_A3": "TTO", "ADM1NAME": "Port of Spain", "ISO_A2": "TT", "NOTE": null, "LATITUDE": 10.651997, "LONGITUDE": -61.517031, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 294934, "POP_MIN": 49031, "POP_OTHER": 419082, "RANK_MAX": 10, "RANK_MIN": 7, "GEONAMEID": 3573890.000000, "MEGANAME": null, "LS_NAME": "Port-of-Spain", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 294934.000000, "MAX_POP20": 294934.000000, "MAX_POP50": 294934.000000, "MAX_POP300": 294934.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 112.000000, "MAX_AREAKM": 112.000000, "MIN_AREAMI": 43.000000, "MAX_AREAMI": 43.000000, "MIN_PERKM": 109.000000, "MAX_PERKM": 109.000000, "MIN_PERMI": 67.000000, "MAX_PERMI": 67.000000, "MIN_BBXMIN": -61.533333, "MAX_BBXMIN": -61.533333, "MIN_BBXMAX": -61.250000, "MAX_BBXMAX": -61.250000, "MIN_BBYMIN": 10.583333, "MAX_BBYMIN": 10.583333, "MIN_BBYMAX": 10.666667, "MAX_BBYMAX": 10.666667, "MEAN_BBXC": -61.383365, "MEAN_BBYC": 10.638816, "COMPARE": 0, "GN_ASCII": "Port-of-Spain", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 49657.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "America\/Port_of_Spain", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6848044.553282, 1192665.255435 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Kigali", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kigali", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Rwanda", "SOV_A3": "RWA", "ADM0NAME": "Rwanda", "ADM0_A3": "RWA", "ADM1NAME": "Kigali City", "ISO_A2": "RW", "NOTE": null, "LATITUDE": -1.953590, "LONGITUDE": 30.060532, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 860000, "POP_MIN": 745261, "POP_OTHER": 1152904, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 202061.000000, "MEGANAME": "Kigali", "LS_NAME": "Kigali", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1046787.000000, "MAX_POP20": 2263899.000000, "MAX_POP50": 5065653.000000, "MAX_POP300": 7102391.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 601.000000, "MAX_AREAKM": 8753.000000, "MIN_AREAMI": 232.000000, "MAX_AREAMI": 3380.000000, "MIN_PERKM": 735.000000, "MAX_PERKM": 9184.000000, "MIN_PERMI": 457.000000, "MAX_PERMI": 5707.000000, "MIN_BBXMIN": 29.166667, "MAX_BBXMIN": 29.833333, "MIN_BBXMAX": 30.233333, "MAX_BBXMAX": 30.475000, "MIN_BBYMIN": -2.991667, "MAX_BBYMIN": -2.075000, "MIN_BBYMAX": -1.766630, "MAX_BBYMAX": -1.075000, "MEAN_BBXC": 29.913775, "MEAN_BBYC": -2.034427, "COMPARE": 0, "GN_ASCII": "Kigali", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 745261.000000, "ELEVATION": 0.000000, "GTOPO30": 1568.000000, "TIMEZONE": "Africa\/Kigali", "GEONAMESNO": "GeoNames match general.", "UN_FID": 439, "UN_ADM0": "Rwanda", "UN_LAT": -1.950000, "UN_LONG": 30.050000, "POP1950": 18.000000, "POP1955": 25.000000, "POP1960": 34.000000, "POP1965": 45.000000, "POP1970": 59.000000, "POP1975": 90.000000, "POP1980": 128.000000, "POP1985": 168.000000, "POP1990": 219.000000, "POP1995": 289.000000, "POP2000": 497.000000, "POP2005": 775.000000, "POP2010": 860.000000, "POP2015": 947.000000, "POP2020": 1152.000000, "POP2025": 1413.000000, "POP2050": 1715.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3346106.478476, -217298.064181 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Mbabane", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Mbabane", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Administrative", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Swaziland", "SOV_A3": "SWZ", "ADM0NAME": "Swaziland", "ADM0_A3": "SWZ", "ADM1NAME": "Hhohho", "ISO_A2": "SZ", "NOTE": null, "LATITUDE": -26.316651, "LONGITUDE": 31.133335, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 90138, "POP_MIN": 76218, "POP_OTHER": 89979, "RANK_MAX": 8, "RANK_MIN": 8, "GEONAMEID": 934985.000000, "MEGANAME": null, "LS_NAME": "Mbabane", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 90138.000000, "MAX_POP20": 90138.000000, "MAX_POP50": 90138.000000, "MAX_POP300": 90138.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 28.000000, "MAX_AREAKM": 28.000000, "MIN_AREAMI": 11.000000, "MAX_AREAMI": 11.000000, "MIN_PERKM": 37.000000, "MAX_PERKM": 37.000000, "MIN_PERMI": 23.000000, "MAX_PERMI": 23.000000, "MIN_BBXMIN": 31.100000, "MAX_BBXMIN": 31.100000, "MIN_BBXMAX": 31.158333, "MAX_BBXMAX": 31.158333, "MIN_BBYMIN": -26.350000, "MAX_BBYMIN": -26.350000, "MIN_BBYMAX": -26.283333, "MAX_BBYMAX": -26.283333, "MEAN_BBXC": 31.129842, "MEAN_BBYC": -26.315428, "COMPARE": 0, "GN_ASCII": "Mbabane", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 76218.000000, "ELEVATION": 0.000000, "GTOPO30": 1156.000000, "TIMEZONE": "Africa\/Mbabane", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3465746.944578, -3038352.650455 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Juba", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Juba", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "South Sudan", "SOV_A3": "SSD", "ADM0NAME": "South Sudan", "ADM0_A3": "SSD", "ADM1NAME": "Central Equatoria", "ISO_A2": "SS", "NOTE": null, "LATITUDE": 4.829975, "LONGITUDE": 31.580026, "CHANGED": 20.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed country.", "POP_MAX": 111975, "POP_MIN": 111975, "POP_OTHER": 111975, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 373303.000000, "MEGANAME": null, "LS_NAME": "Juba", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 111975.000000, "MAX_POP20": 111975.000000, "MAX_POP50": 111975.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 21.000000, "MAX_AREAKM": 21.000000, "MIN_AREAMI": 8.000000, "MAX_AREAMI": 8.000000, "MIN_PERKM": 30.000000, "MAX_PERKM": 30.000000, "MIN_PERMI": 18.000000, "MAX_PERMI": 18.000000, "MIN_BBXMIN": 31.575000, "MAX_BBXMIN": 31.575000, "MIN_BBXMAX": 31.625000, "MAX_BBXMAX": 31.625000, "MIN_BBYMIN": 4.816667, "MAX_BBYMIN": 4.816667, "MIN_BBYMAX": 4.883333, "MAX_BBYMAX": 4.883333, "MEAN_BBXC": 31.601500, "MEAN_BBYC": 4.845167, "COMPARE": 0, "GN_ASCII": "Juba", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 44.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 551.000000, "TIMEZONE": "Africa\/Khartoum", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3515472.368227, 538308.322600 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital alt", "NAME": "The Hague", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "The Hague", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Official, legis", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Kingdom of the Netherlands", "SOV_A3": "NLD", "ADM0NAME": "Netherlands", "ADM0_A3": "NLD", "ADM1NAME": "Zuid-Holland", "ISO_A2": "NL", "NOTE": null, "LATITUDE": 52.080037, "LONGITUDE": 4.269961, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1406000, "POP_MIN": 501725, "POP_OTHER": 688599, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2747373.000000, "MEGANAME": null, "LS_NAME": "The Hague", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 708489.000000, "MAX_POP20": 708489.000000, "MAX_POP50": 2312867.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 195.000000, "MAX_AREAKM": 710.000000, "MIN_AREAMI": 75.000000, "MAX_AREAMI": 274.000000, "MIN_PERKM": 217.000000, "MAX_PERKM": 764.000000, "MIN_PERMI": 135.000000, "MAX_PERMI": 475.000000, "MIN_BBXMIN": 4.150000, "MAX_BBXMIN": 4.150000, "MIN_BBXMAX": 4.450000, "MAX_BBXMAX": 4.749141, "MIN_BBYMIN": 51.766667, "MAX_BBYMIN": 51.958333, "MIN_BBYMAX": 52.158333, "MAX_BBYMAX": 52.158333, "MEAN_BBXC": 4.355912, "MEAN_BBYC": 52.021475, "COMPARE": 0, "GN_ASCII": "Den Haag", "FEATURE_CL": "P", "FEATURE_CO": "PPLG", "ADMIN1_COD": 11.000000, "GN_POP": 474292.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Europe\/Amsterdam", "GEONAMESNO": "GeoNames rough area, rough name.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 475329.917880, 6814610.099835 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Ljubljana", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ljubljana", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Slovenia", "SOV_A3": "SVN", "ADM0NAME": "Slovenia", "ADM0_A3": "SVN", "ADM1NAME": "Osrednjeslovenska", "ISO_A2": "SI", "NOTE": null, "LATITUDE": 46.055288, "LONGITUDE": 14.514969, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 314807, "POP_MIN": 255115, "POP_OTHER": 256316, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3196359.000000, "MEGANAME": null, "LS_NAME": "Ljubljana", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 314807.000000, "MAX_POP20": 314807.000000, "MAX_POP50": 314807.000000, "MAX_POP300": 314807.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 145.000000, "MAX_AREAKM": 145.000000, "MIN_AREAMI": 56.000000, "MAX_AREAMI": 56.000000, "MIN_PERKM": 208.000000, "MAX_PERKM": 208.000000, "MIN_PERMI": 129.000000, "MAX_PERMI": 129.000000, "MIN_BBXMIN": 14.433333, "MAX_BBXMIN": 14.433333, "MIN_BBXMAX": 14.633333, "MAX_BBXMAX": 14.633333, "MIN_BBYMIN": 46.000000, "MAX_BBYMIN": 46.000000, "MIN_BBYMAX": 46.241667, "MAX_BBYMAX": 46.241667, "MEAN_BBXC": 14.541032, "MEAN_BBYC": 46.091958, "COMPARE": 0, "GN_ASCII": "Ljubljana", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 61.000000, "GN_POP": 255115.000000, "ELEVATION": 0.000000, "GTOPO30": 284.000000, "TIMEZONE": "Europe\/Ljubljana", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1615798.961686, 5789213.641489 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Bratislava", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bratislava", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Slovakia", "SOV_A3": "SVK", "ADM0NAME": "Slovakia", "ADM0_A3": "SVK", "ADM1NAME": "Bratislavský", "ISO_A2": "SK", "NOTE": null, "LATITUDE": 48.150018, "LONGITUDE": 17.116981, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 423737, "POP_MIN": 373687, "POP_OTHER": 361489, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3060972.000000, "MEGANAME": null, "LS_NAME": "Bratislava", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 373687.000000, "MAX_POP20": 373687.000000, "MAX_POP50": 373687.000000, "MAX_POP300": 373687.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 113.000000, "MAX_AREAKM": 113.000000, "MIN_AREAMI": 43.000000, "MAX_AREAMI": 43.000000, "MIN_PERKM": 121.000000, "MAX_PERKM": 121.000000, "MIN_PERMI": 75.000000, "MAX_PERMI": 75.000000, "MIN_BBXMIN": 17.016667, "MAX_BBXMIN": 17.016667, "MIN_BBXMAX": 17.233333, "MAX_BBXMAX": 17.233333, "MIN_BBYMIN": 48.091667, "MAX_BBYMIN": 48.091667, "MIN_BBYMAX": 48.225000, "MAX_BBYMAX": 48.225000, "MEAN_BBXC": 17.131335, "MEAN_BBYC": 48.159311, "COMPARE": 0, "GN_ASCII": "Bratislava", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 423737.000000, "ELEVATION": 0.000000, "GTOPO30": 132.000000, "TIMEZONE": "Europe\/Bratislava", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1905453.581257, 6131848.926394 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Doha", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Doha", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Qatar", "SOV_A3": "QAT", "ADM0NAME": "Qatar", "ADM0_A3": "QAT", "ADM1NAME": "Ad Dawhah", "ISO_A2": "QA", "NOTE": null, "LATITUDE": 25.286556, "LONGITUDE": 51.532968, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 1450000, "POP_MIN": 731310, "POP_OTHER": 0, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 290030.000000, "MEGANAME": null, "LS_NAME": "Doha", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 731310.000000, "MAX_POP20": 731310.000000, "MAX_POP50": 731310.000000, "MAX_POP300": 731310.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 270.000000, "MAX_AREAKM": 270.000000, "MIN_AREAMI": 104.000000, "MAX_AREAMI": 104.000000, "MIN_PERKM": 205.000000, "MAX_PERKM": 205.000000, "MIN_PERMI": 127.000000, "MAX_PERMI": 127.000000, "MIN_BBXMIN": 51.358333, "MAX_BBXMIN": 51.358333, "MIN_BBXMAX": 51.583333, "MAX_BBXMAX": 51.583333, "MIN_BBYMIN": 25.158333, "MAX_BBYMIN": 25.158333, "MIN_BBYMAX": 25.408333, "MAX_BBYMAX": 25.408333, "MEAN_BBXC": 51.468439, "MEAN_BBYC": 25.281154, "COMPARE": 0, "GN_ASCII": "Doha", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 344939.000000, "ELEVATION": 0.000000, "GTOPO30": 21.000000, "TIMEZONE": "Asia\/Qatar", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5736623.745059, 2910982.827040 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Podgorica", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Podgorica", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Montenegro", "SOV_A3": "MNE", "ADM0NAME": "Montenegro", "ADM0_A3": "MNE", "ADM1NAME": "Podgorica", "ISO_A2": "ME", "NOTE": null, "LATITUDE": 42.465973, "LONGITUDE": 19.266307, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 145850, "POP_MIN": 136473, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 3193044.000000, "MEGANAME": null, "LS_NAME": "Podgorica", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 145850.000000, "MAX_POP20": 145850.000000, "MAX_POP50": 145850.000000, "MAX_POP300": 145850.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 41.000000, "MAX_AREAKM": 41.000000, "MIN_AREAMI": 16.000000, "MAX_AREAMI": 16.000000, "MIN_PERKM": 44.000000, "MAX_PERKM": 44.000000, "MIN_PERMI": 27.000000, "MAX_PERMI": 27.000000, "MIN_BBXMIN": 19.208333, "MAX_BBXMIN": 19.208333, "MIN_BBXMAX": 19.316667, "MAX_BBXMAX": 19.316667, "MIN_BBYMIN": 42.408333, "MAX_BBYMIN": 42.408333, "MIN_BBYMAX": 42.475000, "MAX_BBYMAX": 42.475000, "MEAN_BBXC": 19.263397, "MEAN_BBYC": 42.442115, "COMPARE": 0, "GN_ASCII": "Podgorica", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 136473.000000, "ELEVATION": 0.000000, "GTOPO30": 58.000000, "TIMEZONE": "Europe\/Podgorica", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2144715.476259, 5231037.463774 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital alt", "NAME": "Sri Jawewardenepura Kotte", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sri Jawewardenepura Kotte", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Legislative cap", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Sri Lanka", "SOV_A3": "LKA", "ADM0NAME": "Sri Lanka", "ADM0_A3": "LKA", "ADM1NAME": "Colombo", "ISO_A2": "LK", "NOTE": null, "LATITUDE": 6.900004, "LONGITUDE": 79.949993, "CHANGED": 4.000000, "NAMEDIFF": 1, "DIFFNOTE": "Name changed.", "POP_MAX": 115826, "POP_MIN": 115826, "POP_OTHER": 2456292, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 1238992.000000, "MEGANAME": null, "LS_NAME": "Kotte", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2189383.000000, "MAX_POP20": 3439184.000000, "MAX_POP50": 4689795.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 1265.000000, "MAX_AREAKM": 2843.000000, "MIN_AREAMI": 488.000000, "MAX_AREAMI": 1098.000000, "MIN_PERKM": 1148.000000, "MAX_PERKM": 2388.000000, "MIN_PERMI": 713.000000, "MAX_PERMI": 1484.000000, "MIN_BBXMIN": 79.866667, "MAX_BBXMIN": 79.883827, "MIN_BBXMAX": 80.366283, "MAX_BBXMAX": 80.733333, "MIN_BBYMIN": 5.916667, "MAX_BBYMIN": 6.708333, "MIN_BBYMAX": 7.345790, "MAX_BBYMAX": 7.345790, "MEAN_BBXC": 80.097600, "MEAN_BBYC": 6.842005, "COMPARE": 1, "GN_ASCII": "Sri Jayewardenepura Kotte", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 36.000000, "GN_POP": 115826.000000, "ELEVATION": 0.000000, "GTOPO30": 35.000000, "TIMEZONE": "Asia\/Colombo", "GEONAMESNO": "GeoNames rough area, rough name.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8899992.514238, 769968.297603 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital alt", "NAME": "Baguio City", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Baguio City", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Philippines", "SOV_A3": "PHL", "ADM0NAME": "Philippines", "ADM0_A3": "PHL", "ADM1NAME": "Benguet", "ISO_A2": "PH", "NOTE": null, "LATITUDE": 16.429991, "LONGITUDE": 120.569943, "CHANGED": 40.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 447824, "POP_MIN": 272714, "POP_OTHER": 164877, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 1728930.000000, "MEGANAME": null, "LS_NAME": "Baguio City", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 447824.000000, "MAX_POP20": 447824.000000, "MAX_POP50": 447824.000000, "MAX_POP300": 447824.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 89.000000, "MAX_AREAKM": 89.000000, "MIN_AREAMI": 34.000000, "MAX_AREAMI": 34.000000, "MIN_PERKM": 78.000000, "MAX_PERKM": 78.000000, "MIN_PERMI": 48.000000, "MAX_PERMI": 48.000000, "MIN_BBXMIN": 120.541667, "MAX_BBXMIN": 120.541667, "MIN_BBXMAX": 120.650000, "MAX_BBXMAX": 120.650000, "MIN_BBYMIN": 16.358333, "MAX_BBYMIN": 16.358333, "MIN_BBYMAX": 16.483333, "MAX_BBYMAX": 16.483333, "MEAN_BBXC": 120.598765, "MEAN_BBYC": 16.421065, "COMPARE": 0, "GN_ASCII": "Baguio", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 272714.000000, "ELEVATION": 0.000000, "GTOPO30": 1448.000000, "TIMEZONE": "Asia\/Manila", "GEONAMESNO": "GeoNames spatial join with similar names only.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13421784.613573, 1854572.21848 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital alt", "NAME": "Dodoma", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dodoma", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Offical capital", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "United Republic of Tanzania", "SOV_A3": "TZA", "ADM0NAME": "Tanzania", "ADM0_A3": "TZA", "ADM1NAME": "Dodoma", "ISO_A2": "TZ", "NOTE": null, "LATITUDE": -6.183306, "LONGITUDE": 35.750004, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 218269, "POP_MIN": 180541, "POP_OTHER": 0, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 160196.000000, "MEGANAME": null, "LS_NAME": "Dodoma", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 218269.000000, "MAX_POP20": 218269.000000, "MAX_POP50": 218269.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 55.000000, "MAX_AREAKM": 55.000000, "MIN_AREAMI": 21.000000, "MAX_AREAMI": 21.000000, "MIN_PERKM": 61.000000, "MAX_PERKM": 61.000000, "MIN_PERMI": 38.000000, "MAX_PERMI": 38.000000, "MIN_BBXMIN": 35.691667, "MAX_BBXMIN": 35.691667, "MIN_BBXMAX": 35.808333, "MAX_BBXMAX": 35.808333, "MIN_BBYMIN": -6.208333, "MAX_BBYMIN": -6.208333, "MIN_BBYMAX": -6.116667, "MAX_BBYMAX": -6.116667, "MEAN_BBXC": 35.747500, "MEAN_BBYC": -6.162244, "COMPARE": 0, "GN_ASCII": "Dodoma", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 180541.000000, "ELEVATION": 0.000000, "GTOPO30": 1129.000000, "TIMEZONE": "Africa\/Dar_es_Salaam", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3979672.198852, -689662.478249 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Bern", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bern", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Switzerland", "SOV_A3": "CHE", "ADM0NAME": "Switzerland", "ADM0_A3": "CHE", "ADM1NAME": "Bern", "ISO_A2": "CH", "NOTE": null, "LATITUDE": 46.916683, "LONGITUDE": 7.466975, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 275329, "POP_MIN": 121631, "POP_OTHER": 267814, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 2661552.000000, "MEGANAME": null, "LS_NAME": "Bern", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 275329.000000, "MAX_POP20": 275329.000000, "MAX_POP50": 275329.000000, "MAX_POP300": 275329.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 78.000000, "MAX_AREAKM": 78.000000, "MIN_AREAMI": 30.000000, "MAX_AREAMI": 30.000000, "MIN_PERKM": 85.000000, "MAX_PERKM": 85.000000, "MIN_PERMI": 53.000000, "MAX_PERMI": 53.000000, "MIN_BBXMIN": 7.375000, "MAX_BBXMIN": 7.375000, "MIN_BBXMAX": 7.533333, "MAX_BBXMAX": 7.533333, "MIN_BBYMIN": 46.900000, "MAX_BBYMIN": 46.900000, "MIN_BBYMAX": 47.041667, "MAX_BBYMAX": 47.041667, "MEAN_BBXC": 7.453227, "MEAN_BBYC": 46.958239, "COMPARE": 0, "GN_ASCII": "Bern", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 121631.000000, "ELEVATION": 0.000000, "GTOPO30": 527.000000, "TIMEZONE": "Europe\/Zurich", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 831219.906249, 5928485.165733 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital alt", "NAME": "Laayoune", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Laayoune", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Claimed as capi", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Morocco", "SOV_A3": "MAR", "ADM0NAME": "Morocco", "ADM0_A3": "MAR", "ADM1NAME": "Laâyoune - Boujdour - Sakia El Hamra", "ISO_A2": "MA", "NOTE": null, "LATITUDE": 27.149982, "LONGITUDE": -13.200006, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 188084, "POP_MIN": 176365, "POP_OTHER": 176365, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 2462881.000000, "MEGANAME": null, "LS_NAME": "Laayoune", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 176365.000000, "MAX_POP20": 176365.000000, "MAX_POP50": 176365.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 21.000000, "MAX_AREAKM": 21.000000, "MIN_AREAMI": 8.000000, "MAX_AREAMI": 8.000000, "MIN_PERKM": 26.000000, "MAX_PERKM": 26.000000, "MIN_PERMI": 16.000000, "MAX_PERMI": 16.000000, "MIN_BBXMIN": -13.225000, "MAX_BBXMIN": -13.225000, "MIN_BBXMAX": -13.158333, "MAX_BBXMAX": -13.158333, "MIN_BBYMIN": 27.125000, "MAX_BBYMIN": 27.125000, "MIN_BBYMAX": 27.175000, "MAX_BBYMAX": 27.175000, "MEAN_BBXC": -13.194643, "MEAN_BBYC": 27.146131, "COMPARE": 0, "GN_ASCII": "Ejbei Uad el Aabd", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 188084.000000, "ELEVATION": 0.000000, "GTOPO30": 72.000000, "TIMEZONE": "Africa\/El_Aaiun", "GEONAMESNO": "GeoNames rough area, rough name.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1469417.939956, 3142222.586829 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Pristina", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Pristina", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Kosovo", "SOV_A3": "KOS", "ADM0NAME": "Kosovo", "ADM0_A3": "KOS", "ADM1NAME": "Pristina", "ISO_A2": "-99", "NOTE": null, "LATITUDE": 42.666710, "LONGITUDE": 21.165984, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 465186, "POP_MIN": 198214, "POP_OTHER": 261783, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 786714.000000, "MEGANAME": null, "LS_NAME": "Pristina", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 265361.000000, "MAX_POP20": 265361.000000, "MAX_POP50": 265361.000000, "MAX_POP300": 265361.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 41.000000, "MAX_AREAKM": 41.000000, "MIN_AREAMI": 16.000000, "MAX_AREAMI": 16.000000, "MIN_PERKM": 69.000000, "MAX_PERKM": 69.000000, "MIN_PERMI": 43.000000, "MAX_PERMI": 43.000000, "MIN_BBXMIN": 21.066667, "MAX_BBXMIN": 21.066667, "MIN_BBXMAX": 21.208333, "MAX_BBXMAX": 21.208333, "MIN_BBYMIN": 42.625000, "MAX_BBYMIN": 42.625000, "MIN_BBYMAX": 42.733333, "MAX_BBYMAX": 42.733333, "MEAN_BBXC": 21.146346, "MEAN_BBYC": 42.666218, "COMPARE": 0, "GN_ASCII": "Pristina", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 1.000000, "GN_POP": 550000.000000, "ELEVATION": 0.000000, "GTOPO30": 668.000000, "TIMEZONE": "Europe\/Belgrade", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2356186.589026, 5261378.463817 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Roseau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Roseau", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Dominica", "SOV_A3": "DMA", "ADM0NAME": "Dominica", "ADM0_A3": "DMA", "ADM1NAME": "Saint George", "ISO_A2": "DM", "NOTE": null, "LATITUDE": 15.301016, "LONGITUDE": -61.387013, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 23336, "POP_MIN": 16571, "POP_OTHER": 23336, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 3575635.000000, "MEGANAME": null, "LS_NAME": "Roseau", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 23336.000000, "MAX_POP20": 23336.000000, "MAX_POP50": 23336.000000, "MAX_POP300": 23336.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 12.000000, "MAX_AREAKM": 12.000000, "MIN_AREAMI": 5.000000, "MAX_AREAMI": 5.000000, "MIN_PERKM": 25.000000, "MAX_PERKM": 25.000000, "MIN_PERMI": 16.000000, "MAX_PERMI": 16.000000, "MIN_BBXMIN": -61.400000, "MAX_BBXMIN": -61.400000, "MIN_BBXMAX": -61.350000, "MAX_BBXMAX": -61.350000, "MIN_BBYMIN": 15.266667, "MAX_BBYMIN": 15.266667, "MIN_BBYMAX": 15.325000, "MAX_BBYMAX": 15.325000, "MEAN_BBXC": -61.377500, "MEAN_BBYC": 15.298056, "COMPARE": 0, "GN_ASCII": "Roseau", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 16571.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "America\/Dominica", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6833571.026454, 1723915.714688 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Djibouti", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Djibouti", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Djibouti", "SOV_A3": "DJI", "ADM0NAME": "Djibouti", "ADM0_A3": "DJI", "ADM1NAME": "Djibouti", "ISO_A2": "DJ", "NOTE": null, "LATITUDE": 11.595014, "LONGITUDE": 43.148002, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 923000, "POP_MIN": 604013, "POP_OTHER": 335001, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 223817.000000, "MEGANAME": null, "LS_NAME": "Djibouti", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 335001.000000, "MAX_POP20": 335001.000000, "MAX_POP50": 335001.000000, "MAX_POP300": 335001.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 42.000000, "MAX_AREAKM": 42.000000, "MIN_AREAMI": 16.000000, "MAX_AREAMI": 16.000000, "MIN_PERKM": 44.000000, "MAX_PERKM": 44.000000, "MIN_PERMI": 27.000000, "MAX_PERMI": 27.000000, "MIN_BBXMIN": 43.066667, "MAX_BBXMIN": 43.066667, "MIN_BBXMAX": 43.166667, "MAX_BBXMAX": 43.166667, "MIN_BBYMIN": 11.533333, "MAX_BBYMIN": 11.533333, "MIN_BBYMAX": 11.625000, "MAX_BBYMAX": 11.625000, "MEAN_BBXC": 43.129167, "MEAN_BBYC": 11.571500, "COMPARE": 0, "GN_ASCII": "Djibouti", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 623891.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Africa\/Djibouti", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4803213.574323, 1299652.654118 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital alt", "NAME": "Putrajaya", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Putrajaya", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Administrative", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Malaysia", "SOV_A3": "MYS", "ADM0NAME": "Malaysia", "ADM0_A3": "MYS", "ADM1NAME": "Selangor", "ISO_A2": "MY", "NOTE": null, "LATITUDE": 2.914020, "LONGITUDE": 101.701947, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 67964, "POP_MIN": 50000, "POP_OTHER": 956431, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 6697380.000000, "MEGANAME": null, "LS_NAME": "Putrajaya", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 955607.000000, "MAX_POP20": 964830.000000, "MAX_POP50": 1651113.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 486.000000, "MAX_AREAKM": 805.000000, "MIN_AREAMI": 188.000000, "MAX_AREAMI": 311.000000, "MIN_PERKM": 467.000000, "MAX_PERKM": 737.000000, "MIN_PERMI": 290.000000, "MAX_PERMI": 458.000000, "MIN_BBXMIN": 101.358333, "MAX_BBXMIN": 101.575000, "MIN_BBXMAX": 101.891667, "MAX_BBXMAX": 101.891667, "MIN_BBYMIN": 2.700000, "MAX_BBYMIN": 2.708333, "MIN_BBYMAX": 3.041194, "MAX_BBYMAX": 3.041194, "MEAN_BBXC": 101.716617, "MEAN_BBYC": 2.915909, "COMPARE": 0, "GN_ASCII": "Putrajaya", "FEATURE_CL": "P", "FEATURE_CO": "PPLG", "ADMIN1_COD": 17.000000, "GN_POP": 50000.000000, "ELEVATION": 0.000000, "GTOPO30": 30.000000, "TIMEZONE": "Asia\/Kuala_Lumpur", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11321408.950474, 324527.136890 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital alt", "NAME": "Kyoto", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kyoto", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Official capita", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Japan", "SOV_A3": "JPN", "ADM0NAME": "Japan", "ADM0_A3": "JPN", "ADM1NAME": "Kyoto", "ISO_A2": "JP", "NOTE": null, "LATITUDE": 35.029992, "LONGITUDE": 135.749998, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1805000, "POP_MIN": 1459640, "POP_OTHER": 1827367, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1857910.000000, "MEGANAME": "Kyoto", "LS_NAME": "Kyoto", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1946052.000000, "MAX_POP20": 2520813.000000, "MAX_POP50": 2520813.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 340.000000, "MAX_AREAKM": 486.000000, "MIN_AREAMI": 131.000000, "MAX_AREAMI": 188.000000, "MIN_PERKM": 130.000000, "MAX_PERKM": 218.000000, "MIN_PERMI": 81.000000, "MAX_PERMI": 135.000000, "MIN_BBXMIN": 135.611529, "MAX_BBXMIN": 135.611529, "MIN_BBXMAX": 135.808333, "MAX_BBXMAX": 135.858333, "MIN_BBYMIN": 34.645060, "MAX_BBYMIN": 34.783333, "MIN_BBYMAX": 35.100000, "MAX_BBYMAX": 35.100000, "MEAN_BBXC": 135.743212, "MEAN_BBYC": 34.913171, "COMPARE": 0, "GN_ASCII": "Kyoto", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 22.000000, "GN_POP": 1459640.000000, "ELEVATION": 0.000000, "GTOPO30": 86.000000, "TIMEZONE": "Asia\/Tokyo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 313, "UN_ADM0": "Japan", "UN_LAT": 35.000000, "UN_LONG": 135.750000, "POP1950": 1002.000000, "POP1955": 1091.000000, "POP1960": 1165.000000, "POP1965": 1229.000000, "POP1970": 1298.000000, "POP1975": 1622.000000, "POP1980": 1701.000000, "POP1985": 1714.000000, "POP1990": 1760.000000, "POP1995": 1804.000000, "POP2000": 1806.000000, "POP2005": 1805.000000, "POP2010": 1805.000000, "POP2015": 1804.000000, "POP2020": 1804.000000, "POP2025": 1804.000000, "POP2050": 1804.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 15111404.032090, 4168222.258126 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Banjul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Banjul", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Gambia, The", "SOV_A3": "GMB", "ADM0NAME": "The Gambia", "ADM0_A3": "GMB", "ADM1NAME": "Banjul", "ISO_A2": "GM", "NOTE": null, "LATITUDE": 13.453876, "LONGITUDE": -16.591701, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 43094, "POP_MIN": 34589, "POP_OTHER": 581300, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2413876.000000, "MEGANAME": null, "LS_NAME": "Banjul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 43094.000000, "MAX_POP20": 43094.000000, "MAX_POP50": 43094.000000, "MAX_POP300": 43094.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 7.000000, "MAX_AREAKM": 7.000000, "MIN_AREAMI": 3.000000, "MAX_AREAMI": 3.000000, "MIN_PERKM": 13.000000, "MAX_PERKM": 13.000000, "MIN_PERMI": 8.000000, "MAX_PERMI": 8.000000, "MIN_BBXMIN": -16.600000, "MAX_BBXMIN": -16.600000, "MIN_BBXMAX": -16.566667, "MAX_BBXMAX": -16.566667, "MIN_BBYMIN": 13.441667, "MAX_BBYMIN": 13.441667, "MIN_BBYMAX": 13.466667, "MAX_BBYMAX": 13.466667, "MEAN_BBXC": -16.581250, "MEAN_BBYC": 13.455208, "COMPARE": 0, "GN_ASCII": "Banjul", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 34589.000000, "ELEVATION": 0.000000, "GTOPO30": 5.000000, "TIMEZONE": "Africa\/Banjul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1846979.761173, 1511634.609642 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Skopje", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Skopje", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Macedonia", "SOV_A3": "MKD", "ADM0NAME": "Macedonia", "ADM0_A3": "MKD", "ADM1NAME": "Centar", "ISO_A2": "MK", "NOTE": null, "LATITUDE": 42.000006, "LONGITUDE": 21.433461, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 494087, "POP_MIN": 474889, "POP_OTHER": 491890, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 785842.000000, "MEGANAME": null, "LS_NAME": "Skopje", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 494087.000000, "MAX_POP20": 494087.000000, "MAX_POP50": 494087.000000, "MAX_POP300": 494087.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 114.000000, "MAX_AREAKM": 114.000000, "MIN_AREAMI": 44.000000, "MAX_AREAMI": 44.000000, "MIN_PERKM": 98.000000, "MAX_PERKM": 98.000000, "MIN_PERMI": 61.000000, "MAX_PERMI": 61.000000, "MIN_BBXMIN": 21.300000, "MAX_BBXMIN": 21.300000, "MIN_BBXMAX": 21.533333, "MAX_BBXMAX": 21.533333, "MIN_BBYMIN": 41.950000, "MAX_BBYMIN": 41.950000, "MIN_BBYMAX": 42.066667, "MAX_BBYMAX": 42.066667, "MEAN_BBXC": 21.430243, "MEAN_BBYC": 42.007257, "COMPARE": 0, "GN_ASCII": "Skopje", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 474889.000000, "ELEVATION": 0.000000, "GTOPO30": 246.000000, "TIMEZONE": "Europe\/Skopje", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2385962.016236, 5160980.361231 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bridgetown", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bridgetown", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Barbados", "SOV_A3": "BRB", "ADM0NAME": "Barbados", "ADM0_A3": "BRB", "ADM1NAME": "Saint Michael", "ISO_A2": "BB", "NOTE": null, "LATITUDE": 13.102003, "LONGITUDE": -59.616527, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 191152, "POP_MIN": 96578, "POP_OTHER": 191814, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 2075807.000000, "MEGANAME": null, "LS_NAME": "Bridgetown", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 191152.000000, "MAX_POP20": 191152.000000, "MAX_POP50": 191152.000000, "MAX_POP300": 191152.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 106.000000, "MAX_AREAKM": 106.000000, "MIN_AREAMI": 41.000000, "MAX_AREAMI": 41.000000, "MIN_PERKM": 131.000000, "MAX_PERKM": 131.000000, "MIN_PERMI": 82.000000, "MAX_PERMI": 82.000000, "MIN_BBXMIN": -59.641667, "MAX_BBXMIN": -59.641667, "MIN_BBXMAX": -59.500000, "MAX_BBXMAX": -59.500000, "MIN_BBYMIN": 13.050000, "MAX_BBYMIN": 13.050000, "MIN_BBYMAX": 13.266667, "MAX_BBYMAX": 13.266667, "MEAN_BBXC": -59.589731, "MEAN_BBYC": 13.128773, "COMPARE": 0, "GN_ASCII": "Bridgetown", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 8.000000, "GN_POP": 2971.000000, "ELEVATION": 0.000000, "GTOPO30": 152.000000, "TIMEZONE": "Australia\/Perth", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6636481.399009, 1471388.229003 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital alt", "NAME": "Porto-Novo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Porto-Novo", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Official capita", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Benin", "SOV_A3": "BEN", "ADM0NAME": "Benin", "ADM0_A3": "BEN", "ADM1NAME": "Ouémé", "ISO_A2": "BJ", "NOTE": null, "LATITUDE": 6.483311, "LONGITUDE": 2.616626, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 300000, "POP_MIN": 234168, "POP_OTHER": 806945, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2392087.000000, "MEGANAME": null, "LS_NAME": "Porto-Novo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 517453.000000, "MAX_POP20": 457770.000000, "MAX_POP50": 457770.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 278.000000, "MAX_AREAKM": 319.000000, "MIN_AREAMI": 107.000000, "MAX_AREAMI": 123.000000, "MIN_PERKM": 251.000000, "MAX_PERKM": 312.000000, "MIN_PERMI": 156.000000, "MAX_PERMI": 194.000000, "MIN_BBXMIN": 2.558333, "MAX_BBXMIN": 2.558333, "MIN_BBXMAX": 2.883333, "MAX_BBXMAX": 2.883333, "MIN_BBYMIN": 6.450000, "MAX_BBYMIN": 6.450000, "MIN_BBYMAX": 6.650000, "MAX_BBYMAX": 6.733333, "MEAN_BBXC": 2.708025, "MEAN_BBYC": 6.520662, "COMPARE": 0, "GN_ASCII": "Porto-Novo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 16.000000, "GN_POP": 234168.000000, "ELEVATION": 0.000000, "GTOPO30": 39.000000, "TIMEZONE": "Africa\/Porto-Novo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 291281.421325, 723263.982585 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bujumbura", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bujumbura", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Burundi", "SOV_A3": "BDI", "ADM0NAME": "Burundi", "ADM0_A3": "BDI", "ADM1NAME": "Bujumbura Mairie", "ISO_A2": "BI", "NOTE": null, "LATITUDE": -3.376087, "LONGITUDE": 29.360006, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 331700, "POP_MIN": 331700, "POP_OTHER": 1208361, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 425378.000000, "MEGANAME": null, "LS_NAME": "Bujumbura", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1123733.000000, "MAX_POP20": 2140496.000000, "MAX_POP50": 3536914.000000, "MAX_POP300": 3539151.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1093.000000, "MAX_AREAKM": 5563.000000, "MIN_AREAMI": 422.000000, "MAX_AREAMI": 2148.000000, "MIN_PERKM": 1180.000000, "MAX_PERKM": 5081.000000, "MIN_PERMI": 733.000000, "MAX_PERMI": 3157.000000, "MIN_BBXMIN": 29.254336, "MAX_BBXMIN": 29.258333, "MIN_BBXMAX": 29.640630, "MAX_BBXMAX": 30.272423, "MIN_BBYMIN": -3.841667, "MAX_BBYMIN": -3.675000, "MIN_BBYMAX": -2.950000, "MAX_BBYMAX": -2.544862, "MEAN_BBXC": 29.649864, "MEAN_BBYC": -3.227847, "COMPARE": 0, "GN_ASCII": "Bujumbura", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 331700.000000, "ELEVATION": 0.000000, "GTOPO30": 795.000000, "TIMEZONE": "Africa\/Bujumbura", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3268340.924456, -376041.977378 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Kingstown", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kingstown", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Saint Vincent and the Grenadines", "SOV_A3": "VCT", "ADM0NAME": "Saint Vincent and the Grenadines", "ADM0_A3": "VCT", "ADM1NAME": null, "ISO_A2": "VC", "NOTE": null, "LATITUDE": 13.148279, "LONGITUDE": -61.212062, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 49485, "POP_MIN": 24518, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 4359981.000000, "MEGANAME": null, "LS_NAME": "Kingstown", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 49485.000000, "MAX_POP20": 49485.000000, "MAX_POP50": 49485.000000, "MAX_POP300": 49485.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 17.000000, "MAX_AREAKM": 17.000000, "MIN_AREAMI": 7.000000, "MAX_AREAMI": 7.000000, "MIN_PERKM": 31.000000, "MAX_PERKM": 31.000000, "MIN_PERMI": 19.000000, "MAX_PERMI": 19.000000, "MIN_BBXMIN": -61.241667, "MAX_BBXMIN": -61.241667, "MIN_BBXMAX": -61.158333, "MAX_BBXMAX": -61.158333, "MIN_BBYMIN": 13.125000, "MAX_BBYMIN": 13.125000, "MIN_BBYMAX": 13.175000, "MAX_BBYMAX": 13.175000, "MEAN_BBXC": -61.202183, "MEAN_BBYC": 13.145833, "COMPARE": 0, "GN_ASCII": "Kingstown", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 1662.000000, "ELEVATION": 5.000000, "GTOPO30": 1.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6814095.619031, 1476677.861325 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Castries", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Castries", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Saint Lucia", "SOV_A3": "LCA", "ADM0NAME": "Saint Lucia", "ADM0_A3": "LCA", "ADM1NAME": null, "ISO_A2": "LC", "NOTE": null, "LATITUDE": 14.001973, "LONGITUDE": -61.000008, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 37963, "POP_MIN": 10634, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 3028258.000000, "MEGANAME": null, "LS_NAME": "Castries", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 64343.000000, "MAX_POP20": 64343.000000, "MAX_POP50": 64343.000000, "MAX_POP300": 64343.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 16.000000, "MAX_AREAKM": 16.000000, "MIN_AREAMI": 6.000000, "MAX_AREAMI": 6.000000, "MIN_PERKM": 22.000000, "MAX_PERKM": 22.000000, "MIN_PERMI": 14.000000, "MAX_PERMI": 14.000000, "MIN_BBXMIN": -61.008333, "MAX_BBXMIN": -61.008333, "MIN_BBXMAX": -60.966667, "MAX_BBXMAX": -60.966667, "MIN_BBYMIN": 13.975000, "MAX_BBYMIN": 13.975000, "MIN_BBYMAX": 14.025000, "MAX_BBYMAX": 14.025000, "MEAN_BBXC": -60.988377, "MEAN_BBYC": 14.005921, "COMPARE": 0, "GN_ASCII": "Castries", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 5790.000000, "ELEVATION": 0.000000, "GTOPO30": 47.000000, "TIMEZONE": "Europe\/Paris", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6790489.849024, 1574442.962402 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Basseterre", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Basseterre", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Saint Kitts and Nevis", "SOV_A3": "KNA", "ADM0NAME": "Saint Kitts and Nevis", "ADM0_A3": "KNA", "ADM1NAME": null, "ISO_A2": "KN", "NOTE": null, "LATITUDE": 17.302030, "LONGITUDE": -62.717009, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 21887, "POP_MIN": 15500, "POP_OTHER": 21887, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 3575551.000000, "MEGANAME": null, "LS_NAME": "Basseterre", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 21887.000000, "MAX_POP20": 21887.000000, "MAX_POP50": 21887.000000, "MAX_POP300": 21887.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 7.000000, "MAX_AREAKM": 7.000000, "MIN_AREAMI": 3.000000, "MAX_AREAMI": 3.000000, "MIN_PERKM": 16.000000, "MAX_PERKM": 16.000000, "MIN_PERMI": 10.000000, "MAX_PERMI": 10.000000, "MIN_BBXMIN": -62.741667, "MAX_BBXMIN": -62.741667, "MIN_BBXMAX": -62.708333, "MAX_BBXMAX": -62.708333, "MIN_BBYMIN": 17.291667, "MAX_BBYMIN": 17.291667, "MIN_BBYMAX": 17.333333, "MAX_BBYMAX": 17.333333, "MEAN_BBXC": -62.726389, "MEAN_BBYC": 17.306019, "COMPARE": 0, "GN_ASCII": "Basseterre", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 12920.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "America\/St_Kitts", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6981625.541545, 1956011.684171 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Port Louis", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port Louis", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Mauritius", "SOV_A3": "MUS", "ADM0NAME": "Mauritius", "ADM0_A3": "MUS", "ADM1NAME": null, "ISO_A2": "MU", "NOTE": null, "LATITUDE": -20.166639, "LONGITUDE": 57.499994, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 595491, "POP_MIN": 148416, "POP_OTHER": 304613, "RANK_MAX": 11, "RANK_MIN": 9, "GEONAMEID": 934154.000000, "MEGANAME": null, "LS_NAME": "Port Louis", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 291837.000000, "MAX_POP20": 595491.000000, "MAX_POP50": 595491.000000, "MAX_POP300": 595491.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 70.000000, "MAX_AREAKM": 152.000000, "MIN_AREAMI": 27.000000, "MAX_AREAMI": 59.000000, "MIN_PERKM": 85.000000, "MAX_PERKM": 154.000000, "MIN_PERMI": 53.000000, "MAX_PERMI": 96.000000, "MIN_BBXMIN": 57.425000, "MAX_BBXMIN": 57.425000, "MIN_BBXMAX": 57.541667, "MAX_BBXMAX": 57.575000, "MIN_BBYMIN": -20.333333, "MAX_BBYMIN": -20.248073, "MIN_BBYMAX": -20.108333, "MAX_BBYMAX": -20.108333, "MEAN_BBXC": 57.491611, "MEAN_BBYC": -20.221833, "COMPARE": 0, "GN_ASCII": "Port Louis", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 18.000000, "GN_POP": 155226.000000, "ELEVATION": 0.000000, "GTOPO30": 133.000000, "TIMEZONE": "Indian\/Mauritius", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6400870.036511, -2292782.036980 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Saint George's", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Saint George's", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Grenada", "SOV_A3": "GRD", "ADM0NAME": "Grenada", "ADM0_A3": "GRD", "ADM1NAME": null, "ISO_A2": "GD", "NOTE": null, "LATITUDE": 12.052633, "LONGITUDE": -61.741643, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 33734, "POP_MIN": 27343, "POP_OTHER": 27343, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 3579925.000000, "MEGANAME": null, "LS_NAME": "Saint George‰?s", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 27343.000000, "MAX_POP20": 27343.000000, "MAX_POP50": 27343.000000, "MAX_POP300": 27343.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 10.000000, "MAX_AREAKM": 10.000000, "MIN_AREAMI": 4.000000, "MAX_AREAMI": 4.000000, "MIN_PERKM": 18.000000, "MAX_PERKM": 18.000000, "MIN_PERMI": 11.000000, "MAX_PERMI": 11.000000, "MIN_BBXMIN": -61.758333, "MAX_BBXMIN": -61.758333, "MIN_BBXMAX": -61.725000, "MAX_BBXMAX": -61.725000, "MIN_BBYMIN": 12.025000, "MAX_BBYMIN": 12.025000, "MIN_BBYMAX": 12.066667, "MAX_BBYMAX": 12.066667, "MEAN_BBXC": -61.745833, "MEAN_BBYC": 12.046528, "COMPARE": 0, "GN_ASCII": "Saint George's", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 7500.000000, "ELEVATION": 0.000000, "GTOPO30": 26.000000, "TIMEZONE": "America\/Grenada", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6873048.284666, 1351699.013915 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Manama", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Manama", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bahrain", "SOV_A3": "BHR", "ADM0NAME": "Bahrain", "ADM0_A3": "BHR", "ADM1NAME": null, "ISO_A2": "BH", "NOTE": null, "LATITUDE": 26.236136, "LONGITUDE": 50.583052, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 563920, "POP_MIN": 157474, "POP_OTHER": 563666, "RANK_MAX": 11, "RANK_MIN": 9, "GEONAMEID": 290340.000000, "MEGANAME": null, "LS_NAME": "Manama", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 563920.000000, "MAX_POP20": 563920.000000, "MAX_POP50": 563920.000000, "MAX_POP300": 563920.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 178.000000, "MAX_AREAKM": 178.000000, "MIN_AREAMI": 69.000000, "MAX_AREAMI": 69.000000, "MIN_PERKM": 184.000000, "MAX_PERKM": 184.000000, "MIN_PERMI": 115.000000, "MAX_PERMI": 115.000000, "MIN_BBXMIN": 50.441667, "MAX_BBXMIN": 50.441667, "MIN_BBXMAX": 50.633333, "MAX_BBXMAX": 50.633333, "MIN_BBYMIN": 26.050000, "MAX_BBYMIN": 26.050000, "MIN_BBYMAX": 26.250000, "MAX_BBYMAX": 26.250000, "MEAN_BBXC": 50.542529, "MEAN_BBYC": 26.164763, "COMPARE": 0, "GN_ASCII": "Manama", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 147074.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Asia\/Bahrain", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5630879.559784, 3028356.950982 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Saint John's", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Saint John's", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Antigua and Barbuda", "SOV_A3": "ATG", "ADM0NAME": "Antigua and Barbuda", "ADM0_A3": "ATG", "ADM1NAME": null, "ISO_A2": "AG", "NOTE": null, "LATITUDE": 17.118037, "LONGITUDE": -61.850034, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 35499, "POP_MIN": 24226, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 3576022.000000, "MEGANAME": null, "LS_NAME": "Saint John's", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 35499.000000, "MAX_POP20": 35499.000000, "MAX_POP50": 35499.000000, "MAX_POP300": 35499.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 25.000000, "MAX_AREAKM": 25.000000, "MIN_AREAMI": 10.000000, "MAX_AREAMI": 10.000000, "MIN_PERKM": 38.000000, "MAX_PERKM": 38.000000, "MIN_PERMI": 24.000000, "MAX_PERMI": 24.000000, "MIN_BBXMIN": -61.858333, "MAX_BBXMIN": -61.858333, "MIN_BBXMAX": -61.783333, "MAX_BBXMAX": -61.783333, "MIN_BBYMIN": 17.091667, "MAX_BBYMIN": 17.091667, "MIN_BBYMAX": 17.141667, "MAX_BBYMAX": 17.141667, "MEAN_BBXC": -61.824059, "MEAN_BBYC": 17.120565, "COMPARE": 0, "GN_ASCII": "Saint John's", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 24226.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "America\/Antigua", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6885114.269847, 1934569.523055 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Montevideo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Montevideo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Uruguay", "SOV_A3": "URY", "ADM0NAME": "Uruguay", "ADM0_A3": "URY", "ADM1NAME": "Montevideo", "ISO_A2": "UY", "NOTE": null, "LATITUDE": -34.858042, "LONGITUDE": -56.171052, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1513000, "POP_MIN": 5324, "POP_OTHER": 1276128, "RANK_MAX": 12, "RANK_MIN": 5, "GEONAMEID": 5038018.000000, "MEGANAME": "Montevideo", "LS_NAME": "Montevideo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1381747.000000, "MAX_POP20": 1381747.000000, "MAX_POP50": 1381747.000000, "MAX_POP300": 1381747.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 347.000000, "MAX_AREAKM": 347.000000, "MIN_AREAMI": 134.000000, "MAX_AREAMI": 134.000000, "MIN_PERKM": 266.000000, "MAX_PERKM": 266.000000, "MIN_PERMI": 165.000000, "MAX_PERMI": 165.000000, "MIN_BBXMIN": -56.291667, "MAX_BBXMIN": -56.291667, "MIN_BBXMAX": -55.800000, "MAX_BBXMAX": -55.800000, "MIN_BBYMIN": -34.933333, "MAX_BBYMIN": -34.933333, "MIN_BBYMAX": -34.650000, "MAX_BBYMAX": -34.650000, "MEAN_BBXC": -56.122730, "MEAN_BBYC": -34.828337, "COMPARE": 0, "GN_ASCII": "Montevideo", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 5324.000000, "ELEVATION": 284.000000, "GTOPO30": 305.000000, "TIMEZONE": "America\/Chicago", "GEONAMESNO": "GeoNames match general.", "UN_FID": 579, "UN_ADM0": "Uruguay", "UN_LAT": -34.920000, "UN_LONG": -56.160000, "POP1950": 1212.000000, "POP1955": 1248.000000, "POP1960": 1285.000000, "POP1965": 1323.000000, "POP1970": 1362.000000, "POP1975": 1403.000000, "POP1980": 1454.000000, "POP1985": 1508.000000, "POP1990": 1546.000000, "POP1995": 1584.000000, "POP2000": 1561.000000, "POP2005": 1525.000000, "POP2010": 1513.000000, "POP2015": 1504.000000, "POP2020": 1506.000000, "POP2025": 1515.000000, "POP2050": 1520.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6253149.550059, -4144342.280923 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Lome", "NAMEPAR": null, "NAMEALT": "Lomé", "DIFFASCII": 0, "NAMEASCII": "Lome", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Togo", "SOV_A3": "TGO", "ADM0NAME": "Togo", "ADM0_A3": "TGO", "ADM1NAME": "Maritime", "ISO_A2": "TG", "NOTE": null, "LATITUDE": 6.131937, "LONGITUDE": 1.222757, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1452000, "POP_MIN": 749700, "POP_OTHER": 1256715, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2365267.000000, "MEGANAME": "Lomé", "LS_NAME": "Lome", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 954448.000000, "MAX_POP20": 953569.000000, "MAX_POP50": 954013.000000, "MAX_POP300": 953569.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 343.000000, "MAX_AREAKM": 364.000000, "MIN_AREAMI": 133.000000, "MAX_AREAMI": 140.000000, "MIN_PERKM": 353.000000, "MAX_PERKM": 360.000000, "MIN_PERMI": 219.000000, "MAX_PERMI": 224.000000, "MIN_BBXMIN": 0.950000, "MAX_BBXMIN": 0.950000, "MIN_BBXMAX": 1.483333, "MAX_BBXMAX": 1.483333, "MIN_BBYMIN": 6.025000, "MAX_BBYMIN": 6.025000, "MIN_BBYMAX": 6.283333, "MAX_BBYMAX": 6.283333, "MEAN_BBXC": 1.190359, "MEAN_BBYC": 6.153924, "COMPARE": 0, "GN_ASCII": "Lome", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 24.000000, "GN_POP": 749700.000000, "ELEVATION": 0.000000, "GTOPO30": 64.000000, "TIMEZONE": "Africa\/Lome", "GEONAMESNO": "GeoNames match general.", "UN_FID": 497, "UN_ADM0": "Togo", "UN_LAT": 6.100000, "UN_LONG": 1.200000, "POP1950": 33.000000, "POP1955": 56.000000, "POP1960": 95.000000, "POP1965": 138.000000, "POP1970": 192.000000, "POP1975": 257.000000, "POP1980": 344.000000, "POP1985": 466.000000, "POP1990": 619.000000, "POP1995": 796.000000, "POP2000": 1023.000000, "POP2005": 1315.000000, "POP2010": 1452.000000, "POP2015": 1669.000000, "POP2020": 2038.000000, "POP2025": 2410.000000, "POP2050": 2791.000000, "CITYALT": "Lome" }, "geometry": { "type": "Point", "coordinates": [ 135900.087900, 684128.785037 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Tunis", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tunis", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Tunisia", "SOV_A3": "TUN", "ADM0NAME": "Tunisia", "ADM0_A3": "TUN", "ADM1NAME": "Tunis", "ISO_A2": "TN", "NOTE": null, "LATITUDE": 36.802778, "LONGITUDE": 10.179678, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 2412500, "POP_MIN": 728453, "POP_OTHER": 1675117, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2464470.000000, "MEGANAME": null, "LS_NAME": "Tunis", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1831176.000000, "MAX_POP20": 1831176.000000, "MAX_POP50": 1838972.000000, "MAX_POP300": 1838972.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 480.000000, "MAX_AREAKM": 502.000000, "MIN_AREAMI": 185.000000, "MAX_AREAMI": 194.000000, "MIN_PERKM": 485.000000, "MAX_PERKM": 524.000000, "MIN_PERMI": 302.000000, "MAX_PERMI": 326.000000, "MIN_BBXMIN": 9.950000, "MAX_BBXMIN": 9.950000, "MIN_BBXMAX": 10.497585, "MAX_BBXMAX": 10.575000, "MIN_BBYMIN": 36.633333, "MAX_BBYMIN": 36.633333, "MIN_BBYMAX": 36.966667, "MAX_BBYMAX": 36.966667, "MEAN_BBXC": 10.202041, "MEAN_BBYC": 36.802974, "COMPARE": 0, "GN_ASCII": "Tunis", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 38.000000, "GN_POP": 693210.000000, "ELEVATION": 0.000000, "GTOPO30": 13.000000, "TIMEZONE": "Africa\/Tunis", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1133196.582443, 4411652.140065 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Abu Dhabi", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Abu Dhabi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "United Arab Emirates", "SOV_A3": "ARE", "ADM0NAME": "United Arab Emirates", "ADM0_A3": "ARE", "ADM1NAME": "Abu Dhabi", "ISO_A2": "AE", "NOTE": null, "LATITUDE": 24.466684, "LONGITUDE": 54.366593, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 603492, "POP_MIN": 560230, "POP_OTHER": 560230, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 292968.000000, "MEGANAME": null, "LS_NAME": "Abu Dhabi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 560230.000000, "MAX_POP20": 560230.000000, "MAX_POP50": 560230.000000, "MAX_POP300": 560230.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 96.000000, "MAX_AREAKM": 96.000000, "MIN_AREAMI": 37.000000, "MAX_AREAMI": 37.000000, "MIN_PERKM": 87.000000, "MAX_PERKM": 87.000000, "MIN_PERMI": 54.000000, "MAX_PERMI": 54.000000, "MIN_BBXMIN": 54.316667, "MAX_BBXMIN": 54.316667, "MIN_BBXMAX": 54.525000, "MAX_BBXMAX": 54.525000, "MIN_BBYMIN": 24.391667, "MAX_BBYMIN": 24.391667, "MIN_BBYMAX": 24.525000, "MAX_BBYMAX": 24.525000, "MEAN_BBXC": 54.410671, "MEAN_BBYC": 24.444343, "COMPARE": 0, "GN_ASCII": "Abu Dhabi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 603492.000000, "ELEVATION": 0.000000, "GTOPO30": 14.000000, "TIMEZONE": "Asia\/Dubai", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6052061.491515, 2810379.529587 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Ashgabat", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ashgabat", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Turkmenistan", "SOV_A3": "TKM", "ADM0NAME": "Turkmenistan", "ADM0_A3": "TKM", "ADM1NAME": "Ahal", "ISO_A2": "TM", "NOTE": null, "LATITUDE": 37.949995, "LONGITUDE": 58.383299, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 727700, "POP_MIN": 577982, "POP_OTHER": 556048, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 162183.000000, "MEGANAME": null, "LS_NAME": "Ashgabat", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 577982.000000, "MAX_POP20": 589324.000000, "MAX_POP50": 589324.000000, "MAX_POP300": 589324.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 108.000000, "MAX_AREAKM": 128.000000, "MIN_AREAMI": 42.000000, "MAX_AREAMI": 49.000000, "MIN_PERKM": 109.000000, "MAX_PERKM": 144.000000, "MIN_PERMI": 68.000000, "MAX_PERMI": 90.000000, "MIN_BBXMIN": 58.200000, "MAX_BBXMIN": 58.286370, "MIN_BBXMAX": 58.483333, "MAX_BBXMAX": 58.483333, "MIN_BBYMIN": 37.866667, "MAX_BBYMIN": 37.866667, "MIN_BBYMAX": 38.016667, "MAX_BBYMAX": 38.016667, "MEAN_BBXC": 58.371343, "MEAN_BBYC": 37.946190, "COMPARE": 0, "GN_ASCII": "Ashgabat", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 727700.000000, "ELEVATION": 0.000000, "GTOPO30": 219.000000, "TIMEZONE": "Asia\/Ashgabat", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6499199.127954, 4572364.180398 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Lusaka", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lusaka", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Zambia", "SOV_A3": "ZMB", "ADM0NAME": "Zambia", "ADM0_A3": "ZMB", "ADM1NAME": "Lusaka", "ISO_A2": "ZM", "NOTE": null, "LATITUDE": -15.416644, "LONGITUDE": 28.283328, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1328000, "POP_MIN": 1267440, "POP_OTHER": 1240558, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 909137.000000, "MEGANAME": "Lusaka", "LS_NAME": "Lusaka", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1289566.000000, "MAX_POP20": 1289566.000000, "MAX_POP50": 1289566.000000, "MAX_POP300": 1289566.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 183.000000, "MAX_AREAKM": 183.000000, "MIN_AREAMI": 71.000000, "MAX_AREAMI": 71.000000, "MIN_PERKM": 122.000000, "MAX_PERKM": 122.000000, "MIN_PERMI": 76.000000, "MAX_PERMI": 76.000000, "MIN_BBXMIN": 28.225000, "MAX_BBXMIN": 28.225000, "MIN_BBXMAX": 28.416667, "MAX_BBXMAX": 28.416667, "MIN_BBYMIN": -15.483333, "MAX_BBYMIN": -15.483333, "MIN_BBYMAX": -15.333333, "MAX_BBYMAX": -15.333333, "MEAN_BBXC": 28.308596, "MEAN_BBYC": -15.403941, "COMPARE": 0, "GN_ASCII": "Lusaka", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 1267440.000000, "ELEVATION": 0.000000, "GTOPO30": 1277.000000, "TIMEZONE": "Africa\/Lusaka", "GEONAMESNO": "GeoNames match general.", "UN_FID": 589, "UN_ADM0": "Zambia", "UN_LAT": -15.420000, "UN_LONG": 28.170000, "POP1950": 31.000000, "POP1955": 53.000000, "POP1960": 91.000000, "POP1965": 160.000000, "POP1970": 278.000000, "POP1975": 385.000000, "POP1980": 533.000000, "POP1985": 636.000000, "POP1990": 757.000000, "POP1995": 902.000000, "POP2000": 1073.000000, "POP2005": 1261.000000, "POP2010": 1328.000000, "POP2015": 1421.000000, "POP2020": 1587.000000, "POP2025": 1797.000000, "POP2050": 2047.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3148269.013794, -1737039.467660 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Harare", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Harare", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Zimbabwe", "SOV_A3": "ZWE", "ADM0NAME": "Zimbabwe", "ADM0_A3": "ZWE", "ADM1NAME": "Harare", "ISO_A2": "ZW", "NOTE": null, "LATITUDE": -17.817790, "LONGITUDE": 31.044709, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1572000, "POP_MIN": 1542813, "POP_OTHER": 1831877, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 890299.000000, "MEGANAME": "Harare", "LS_NAME": "Harare", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1833439.000000, "MAX_POP20": 1833439.000000, "MAX_POP50": 1833439.000000, "MAX_POP300": 1839463.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 310.000000, "MAX_AREAKM": 326.000000, "MIN_AREAMI": 120.000000, "MAX_AREAMI": 126.000000, "MIN_PERKM": 186.000000, "MAX_PERKM": 210.000000, "MIN_PERMI": 115.000000, "MAX_PERMI": 130.000000, "MIN_BBXMIN": 30.908333, "MAX_BBXMIN": 30.908333, "MIN_BBXMAX": 31.175000, "MAX_BBXMAX": 31.191667, "MIN_BBYMIN": -17.925000, "MAX_BBYMIN": -17.925000, "MIN_BBYMAX": -17.725000, "MAX_BBYMAX": -17.725000, "MEAN_BBXC": 31.045288, "MEAN_BBYC": -17.832399, "COMPARE": 0, "GN_ASCII": "Harare", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 1542813.000000, "ELEVATION": 0.000000, "GTOPO30": 1481.000000, "TIMEZONE": "Africa\/Harare", "GEONAMESNO": "GeoNames match general.", "UN_FID": 462, "UN_ADM0": "Zimbabwe", "UN_LAT": -17.820000, "UN_LONG": 31.020000, "POP1950": 143.000000, "POP1955": 192.000000, "POP1960": 248.000000, "POP1965": 319.000000, "POP1970": 417.000000, "POP1975": 532.000000, "POP1980": 616.000000, "POP1985": 778.000000, "POP1990": 1047.000000, "POP1995": 1255.000000, "POP2000": 1379.000000, "POP2005": 1515.000000, "POP2010": 1572.000000, "POP2015": 1663.000000, "POP2020": 1839.000000, "POP2025": 2037.000000, "POP2050": 2247.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3455664.633658, -2016004.600457 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Dili", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dili", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "East Timor", "SOV_A3": "TLS", "ADM0NAME": "East Timor", "ADM0_A3": "TLS", "ADM1NAME": "Dili", "ISO_A2": "TL", "NOTE": null, "LATITUDE": -8.559388, "LONGITUDE": 125.579456, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 234331, "POP_MIN": 193563, "POP_OTHER": 55154, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 1645457.000000, "MEGANAME": null, "LS_NAME": "Dili", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 55154.000000, "MAX_POP20": 55154.000000, "MAX_POP50": 55154.000000, "MAX_POP300": 55154.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 27.000000, "MAX_AREAKM": 27.000000, "MIN_AREAMI": 10.000000, "MAX_AREAMI": 10.000000, "MIN_PERKM": 31.000000, "MAX_PERKM": 31.000000, "MIN_PERMI": 19.000000, "MAX_PERMI": 19.000000, "MIN_BBXMIN": 125.516667, "MAX_BBXMIN": 125.516667, "MIN_BBXMAX": 125.608333, "MAX_BBXMAX": 125.608333, "MIN_BBYMIN": -8.583333, "MAX_BBYMIN": -8.583333, "MIN_BBYMAX": -8.541667, "MAX_BBYMAX": -8.541667, "MEAN_BBXC": 125.565104, "MEAN_BBYC": -8.559115, "COMPARE": 0, "GN_ASCII": "Dili", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 150000.000000, "ELEVATION": 0.000000, "GTOPO30": 9.000000, "TIMEZONE": "Asia\/Dili", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13979441.088413, -956390.736671 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port Vila", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port-Vila", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Vanuatu", "SOV_A3": "VUT", "ADM0NAME": "Vanuatu", "ADM0_A3": "VUT", "ADM1NAME": "Shefa", "ISO_A2": "VU", "NOTE": null, "LATITUDE": -17.733350, "LONGITUDE": 168.316641, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 44040, "POP_MIN": 35901, "POP_OTHER": 7702, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2135171.000000, "MEGANAME": null, "LS_NAME": "Port-Vila", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 7702.000000, "MAX_POP20": 7702.000000, "MAX_POP50": 7702.000000, "MAX_POP300": 7702.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 7.000000, "MAX_AREAKM": 7.000000, "MIN_AREAMI": 3.000000, "MAX_AREAMI": 3.000000, "MIN_PERKM": 16.000000, "MAX_PERKM": 16.000000, "MIN_PERMI": 10.000000, "MAX_PERMI": 10.000000, "MIN_BBXMIN": 168.300000, "MAX_BBXMIN": 168.300000, "MIN_BBXMAX": 168.325000, "MAX_BBXMAX": 168.325000, "MIN_BBYMIN": -17.758333, "MAX_BBYMIN": -17.758333, "MIN_BBYMAX": -17.708333, "MAX_BBYMAX": -17.708333, "MEAN_BBXC": 168.312500, "MEAN_BBYC": -17.728125, "COMPARE": 0, "GN_ASCII": "Port-Vila", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 35901.000000, "ELEVATION": 0.000000, "GTOPO30": 7.000000, "TIMEZONE": "Pacific\/Efate", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 18736922.721797, -2006361.140518 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Tegucigalpa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tegucigalpa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Honduras", "SOV_A3": "HND", "ADM0NAME": "Honduras", "ADM0_A3": "HND", "ADM1NAME": "Francisco Morazán", "ISO_A2": "HN", "NOTE": null, "LATITUDE": 14.102045, "LONGITUDE": -87.217529, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 946000, "POP_MIN": 850848, "POP_OTHER": 1014546, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3600949.000000, "MEGANAME": "Tegucigalpa", "LS_NAME": "Tegucigalpa", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1014546.000000, "MAX_POP20": 1014546.000000, "MAX_POP50": 1014546.000000, "MAX_POP300": 1014546.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 97.000000, "MAX_AREAKM": 97.000000, "MIN_AREAMI": 37.000000, "MAX_AREAMI": 37.000000, "MIN_PERKM": 66.000000, "MAX_PERKM": 66.000000, "MIN_PERMI": 41.000000, "MAX_PERMI": 41.000000, "MIN_BBXMIN": -87.266667, "MAX_BBXMIN": -87.266667, "MIN_BBXMAX": -87.141667, "MAX_BBXMAX": -87.141667, "MIN_BBYMIN": 14.033333, "MAX_BBYMIN": 14.033333, "MIN_BBYMAX": 14.133333, "MAX_BBYMAX": 14.133333, "MEAN_BBXC": -87.199110, "MEAN_BBYC": 14.083298, "COMPARE": 0, "GN_ASCII": "Tegucigalpa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 850848.000000, "ELEVATION": 0.000000, "GTOPO30": 997.000000, "TIMEZONE": "America\/Tegucigalpa", "GEONAMESNO": "GeoNames match general.", "UN_FID": 209, "UN_ADM0": "Honduras", "UN_LAT": 14.090000, "UN_LONG": -87.200000, "POP1950": 73.000000, "POP1955": 96.000000, "POP1960": 128.000000, "POP1965": 169.000000, "POP1970": 223.000000, "POP1975": 292.000000, "POP1980": 371.000000, "POP1985": 471.000000, "POP1990": 578.000000, "POP1995": 677.000000, "POP2000": 793.000000, "POP2005": 901.000000, "POP2010": 946.000000, "POP2015": 1022.000000, "POP2020": 1165.000000, "POP2025": 1317.000000, "POP2050": 1472.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9709227.566291, 1586149.842771 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Georgetown", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Georgetown", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Guyana", "SOV_A3": "GUY", "ADM0NAME": "Guyana", "ADM0_A3": "GUY", "ADM1NAME": "East Berbice-Corentyne", "ISO_A2": "GY", "NOTE": null, "LATITUDE": 6.801974, "LONGITUDE": -58.167029, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 264350, "POP_MIN": 235017, "POP_OTHER": 264350, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3378644.000000, "MEGANAME": null, "LS_NAME": "Georgetown1", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 264350.000000, "MAX_POP20": 264350.000000, "MAX_POP50": 264350.000000, "MAX_POP300": 264350.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 37.000000, "MAX_AREAKM": 37.000000, "MIN_AREAMI": 14.000000, "MAX_AREAMI": 14.000000, "MIN_PERKM": 44.000000, "MAX_PERKM": 44.000000, "MIN_PERMI": 27.000000, "MAX_PERMI": 27.000000, "MIN_BBXMIN": -58.200000, "MAX_BBXMIN": -58.200000, "MIN_BBXMAX": -58.116667, "MAX_BBXMAX": -58.116667, "MIN_BBYMIN": 6.750000, "MAX_BBYMIN": 6.750000, "MIN_BBYMAX": 6.833333, "MAX_BBYMAX": 6.833333, "MEAN_BBXC": -58.153788, "MEAN_BBYC": 6.797348, "COMPARE": 0, "GN_ASCII": "Georgetown", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 235017.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "America\/Guyana", "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6475124.009995, 758977.145538 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Reykjavík", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 1, "NAMEASCII": "Reykjavik", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Iceland", "SOV_A3": "ISL", "ADM0NAME": "Iceland", "ADM0_A3": "ISL", "ADM1NAME": "Suðurnes", "ISO_A2": "IS", "NOTE": null, "LATITUDE": 64.150024, "LONGITUDE": -21.950014, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 166212, "POP_MIN": 113906, "POP_OTHER": 160116, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 3413829.000000, "MEGANAME": null, "LS_NAME": "Reykjavik", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 166212.000000, "MAX_POP20": 166212.000000, "MAX_POP50": 166212.000000, "MAX_POP300": 166212.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 75.000000, "MAX_AREAKM": 75.000000, "MIN_AREAMI": 29.000000, "MAX_AREAMI": 29.000000, "MIN_PERKM": 119.000000, "MAX_PERKM": 119.000000, "MIN_PERMI": 74.000000, "MAX_PERMI": 74.000000, "MIN_BBXMIN": -22.008333, "MAX_BBXMIN": -22.008333, "MIN_BBXMAX": -21.750000, "MAX_BBXMAX": -21.750000, "MIN_BBYMIN": 64.050000, "MAX_BBYMIN": 64.050000, "MIN_BBYMAX": 64.166667, "MAX_BBYMAX": 64.166667, "MEAN_BBXC": -21.882500, "MEAN_BBYC": 64.116125, "COMPARE": 0, "GN_ASCII": "Reykjavik", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 39.000000, "GN_POP": 113906.000000, "ELEVATION": 0.000000, "GTOPO30": 16.000000, "TIMEZONE": "Atlantic\/Reykjavik", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -2443464.435617, 9387963.681748 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port-au-Prince", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port-au-Prince", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Haiti", "SOV_A3": "HTI", "ADM0NAME": "Haiti", "ADM0_A3": "HTI", "ADM1NAME": "Ouest", "ISO_A2": "HT", "NOTE": null, "LATITUDE": 18.541025, "LONGITUDE": -72.336035, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1998000, "POP_MIN": 1234742, "POP_OTHER": 2385397, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3718426.000000, "MEGANAME": "Port-au-Prince", "LS_NAME": "Port-au-Prince", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2445384.000000, "MAX_POP20": 2445384.000000, "MAX_POP50": 2445384.000000, "MAX_POP300": 2445384.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 374.000000, "MAX_AREAKM": 374.000000, "MIN_AREAMI": 144.000000, "MAX_AREAMI": 144.000000, "MIN_PERKM": 287.000000, "MAX_PERKM": 287.000000, "MIN_PERMI": 179.000000, "MAX_PERMI": 179.000000, "MIN_BBXMIN": -72.441667, "MAX_BBXMIN": -72.441667, "MIN_BBXMAX": -72.033333, "MAX_BBXMAX": -72.033333, "MIN_BBYMIN": 18.491667, "MAX_BBYMIN": 18.491667, "MIN_BBYMAX": 18.666667, "MAX_BBYMAX": 18.666667, "MEAN_BBXC": -72.222424, "MEAN_BBYC": 18.569460, "COMPARE": 0, "GN_ASCII": "Port-au-Prince", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1234742.000000, "ELEVATION": 0.000000, "GTOPO30": 65.000000, "TIMEZONE": "America\/Port-au-Prince", "GEONAMESNO": "GeoNames match general.", "UN_FID": 208, "UN_ADM0": "Haiti", "UN_LAT": 18.520000, "UN_LONG": -72.340000, "POP1950": 133.000000, "POP1955": 182.000000, "POP1960": 247.000000, "POP1965": 337.000000, "POP1970": 460.000000, "POP1975": 575.000000, "POP1980": 701.000000, "POP1985": 881.000000, "POP1990": 1134.000000, "POP1995": 1427.000000, "POP2000": 1653.000000, "POP2005": 1885.000000, "POP2010": 1998.000000, "POP2015": 2209.000000, "POP2020": 2621.000000, "POP2025": 3012.000000, "POP2050": 3346.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8052627.148363, 2101201.282250 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Kampala", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kampala", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Uganda", "SOV_A3": "UGA", "ADM0NAME": "Uganda", "ADM0_A3": "UGA", "ADM1NAME": "Kampala", "ISO_A2": "UG", "NOTE": null, "LATITUDE": 0.316659, "LONGITUDE": 32.583324, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1420000, "POP_MIN": 1353189, "POP_OTHER": 2153702, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 232422.000000, "MEGANAME": "Kampala", "LS_NAME": "Kampala", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2155592.000000, "MAX_POP20": 2153391.000000, "MAX_POP50": 2322955.000000, "MAX_POP300": 2322955.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 405.000000, "MAX_AREAKM": 465.000000, "MIN_AREAMI": 156.000000, "MAX_AREAMI": 180.000000, "MIN_PERKM": 391.000000, "MAX_PERKM": 470.000000, "MIN_PERMI": 243.000000, "MAX_PERMI": 292.000000, "MIN_BBXMIN": 32.450000, "MAX_BBXMIN": 32.500000, "MIN_BBXMAX": 32.800000, "MAX_BBXMAX": 32.800000, "MIN_BBYMIN": 0.033333, "MAX_BBYMIN": 0.166719, "MIN_BBYMAX": 0.475000, "MAX_BBYMAX": 0.475000, "MEAN_BBXC": 32.614686, "MEAN_BBYC": 0.323809, "COMPARE": 0, "GN_ASCII": "Kampala", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 18.000000, "GN_POP": 1353189.000000, "ELEVATION": 0.000000, "GTOPO30": 1206.000000, "TIMEZONE": "Africa\/Kampala", "GEONAMESNO": "GeoNames match general.", "UN_FID": 507, "UN_ADM0": "Uganda", "UN_LAT": 0.320000, "UN_LONG": 32.570000, "POP1950": 95.000000, "POP1955": 110.000000, "POP1960": 137.000000, "POP1965": 222.000000, "POP1970": 340.000000, "POP1975": 398.000000, "POP1980": 469.000000, "POP1985": 595.000000, "POP1990": 755.000000, "POP1995": 912.000000, "POP2000": 1097.000000, "POP2005": 1318.000000, "POP2010": 1420.000000, "POP2015": 1597.000000, "POP2020": 1979.000000, "POP2025": 2506.000000, "POP2050": 3198.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3626942.371247, 35467.108372 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Paramaribo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Paramaribo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Suriname", "SOV_A3": "SUR", "ADM0NAME": "Suriname", "ADM0_A3": "SUR", "ADM1NAME": "Paramaribo", "ISO_A2": "SR", "NOTE": null, "LATITUDE": 5.835030, "LONGITUDE": -55.167031, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 254169, "POP_MIN": 223757, "POP_OTHER": 248161, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3383330.000000, "MEGANAME": null, "LS_NAME": "Paramaribo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 254169.000000, "MAX_POP20": 254169.000000, "MAX_POP50": 254169.000000, "MAX_POP300": 254169.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 104.000000, "MAX_AREAKM": 105.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 83.000000, "MAX_PERKM": 85.000000, "MIN_PERMI": 51.000000, "MAX_PERMI": 53.000000, "MIN_BBXMIN": -55.283333, "MAX_BBXMIN": -55.283333, "MIN_BBXMAX": -55.107566, "MAX_BBXMAX": -55.100000, "MIN_BBYMIN": 5.766667, "MAX_BBYMIN": 5.766667, "MIN_BBYMAX": 5.866667, "MAX_BBYMAX": 5.866667, "MEAN_BBXC": -55.188737, "MEAN_BBYC": 5.826428, "COMPARE": 0, "GN_ASCII": "Paramaribo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 16.000000, "GN_POP": 223757.000000, "ELEVATION": 0.000000, "GTOPO30": 3.000000, "TIMEZONE": "America\/Paramaribo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6141165.786742, 650678.307050 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Niamey", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Niamey", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Niger", "SOV_A3": "NER", "ADM0NAME": "Niger", "ADM0_A3": "NER", "ADM1NAME": "Niamey", "ISO_A2": "NE", "NOTE": null, "LATITUDE": 13.516706, "LONGITUDE": 2.116656, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 915000, "POP_MIN": 742791, "POP_OTHER": 715325, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2440485.000000, "MEGANAME": "Niamey", "LS_NAME": "Niamey", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 742791.000000, "MAX_POP20": 742791.000000, "MAX_POP50": 742791.000000, "MAX_POP300": 742791.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 122.000000, "MAX_AREAKM": 122.000000, "MIN_AREAMI": 47.000000, "MAX_AREAMI": 47.000000, "MIN_PERKM": 102.000000, "MAX_PERKM": 102.000000, "MIN_PERMI": 64.000000, "MAX_PERMI": 64.000000, "MIN_BBXMIN": 2.033333, "MAX_BBXMIN": 2.033333, "MIN_BBXMAX": 2.216667, "MAX_BBXMAX": 2.216667, "MIN_BBYMIN": 13.466667, "MAX_BBYMIN": 13.466667, "MIN_BBYMAX": 13.600000, "MAX_BBYMAX": 13.600000, "MEAN_BBXC": 2.125595, "MEAN_BBYC": 13.522591, "COMPARE": 0, "GN_ASCII": "Niamey", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 774235.000000, "ELEVATION": 0.000000, "GTOPO30": 203.000000, "TIMEZONE": "Africa\/Niamey", "GEONAMESNO": "GeoNames match general.", "UN_FID": 385, "UN_ADM0": "Niger", "UN_LAT": 13.510000, "UN_LONG": 2.120000, "POP1950": 24.000000, "POP1955": 37.000000, "POP1960": 58.000000, "POP1965": 85.000000, "POP1970": 129.000000, "POP1975": 198.000000, "POP1980": 274.000000, "POP1985": 344.000000, "POP1990": 432.000000, "POP1995": 542.000000, "POP2000": 680.000000, "POP2005": 846.000000, "POP2010": 915.000000, "POP2015": 1027.000000, "POP2020": 1258.000000, "POP2025": 1580.000000, "POP2050": 2028.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 235408.461139, 1519049.837621 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Dushanbe", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dushanbe", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Tajikistan", "SOV_A3": "TJK", "ADM0NAME": "Tajikistan", "ADM0_A3": "TJK", "ADM1NAME": "Tadzhikistan Territories", "ISO_A2": "TJ", "NOTE": null, "LATITUDE": 38.560035, "LONGITUDE": 68.773879, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1086244, "POP_MIN": 679400, "POP_OTHER": 1081361, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 1221874.000000, "MEGANAME": null, "LS_NAME": "Dushanbe", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1086244.000000, "MAX_POP20": 1086244.000000, "MAX_POP50": 1086244.000000, "MAX_POP300": 1086244.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 415.000000, "MAX_AREAKM": 415.000000, "MIN_AREAMI": 160.000000, "MAX_AREAMI": 160.000000, "MIN_PERKM": 411.000000, "MAX_PERKM": 411.000000, "MIN_PERMI": 255.000000, "MAX_PERMI": 255.000000, "MIN_BBXMIN": 68.641667, "MAX_BBXMIN": 68.641667, "MIN_BBXMAX": 69.150000, "MAX_BBXMAX": 69.150000, "MIN_BBYMIN": 38.416667, "MAX_BBYMIN": 38.416667, "MIN_BBYMAX": 38.675000, "MAX_BBYMAX": 38.675000, "MEAN_BBXC": 68.864837, "MEAN_BBYC": 38.542754, "COMPARE": 0, "GN_ASCII": "Dushanbe", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 543107.000000, "ELEVATION": 0.000000, "GTOPO30": 808.000000, "TIMEZONE": "Asia\/Dushanbe", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 7655873.229420, 4658844.908380 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Asuncion", "NAMEPAR": null, "NAMEALT": "Asunción", "DIFFASCII": 0, "NAMEASCII": "Asuncion", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Paraguay", "SOV_A3": "PRY", "ADM0NAME": "Paraguay", "ADM0_A3": "PRY", "ADM1NAME": "Asunción", "ISO_A2": "PY", "NOTE": null, "LATITUDE": -25.296403, "LONGITUDE": -57.641505, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1870000, "POP_MIN": 11693, "POP_OTHER": 636771, "RANK_MAX": 12, "RANK_MIN": 6, "GEONAMEID": 1730025.000000, "MEGANAME": "Asunción", "LS_NAME": "Asuncion", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 745924.000000, "MAX_POP20": 1829910.000000, "MAX_POP50": 2141255.000000, "MAX_POP300": 2141255.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 105.000000, "MAX_AREAKM": 651.000000, "MIN_AREAMI": 41.000000, "MAX_AREAMI": 251.000000, "MIN_PERKM": 63.000000, "MAX_PERKM": 331.000000, "MIN_PERMI": 39.000000, "MAX_PERMI": 206.000000, "MIN_BBXMIN": -57.675000, "MAX_BBXMIN": -57.675000, "MIN_BBXMAX": -57.543999, "MAX_BBXMAX": -57.316667, "MIN_BBYMIN": -25.491667, "MAX_BBYMIN": -25.391667, "MIN_BBYMAX": -25.208333, "MAX_BBYMAX": -25.100000, "MEAN_BBXC": -57.535385, "MEAN_BBYC": -25.307462, "COMPARE": 0, "GN_ASCII": "Asuncion", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 24.000000, "GN_POP": 11693.000000, "ELEVATION": 0.000000, "GTOPO30": 24.000000, "TIMEZONE": "Asia\/Manila", "GEONAMESNO": "GeoNames match general.", "UN_FID": 409, "UN_ADM0": "Paraguay", "UN_LAT": -25.300000, "UN_LONG": -57.620000, "POP1950": 258.000000, "POP1955": 314.000000, "POP1960": 382.000000, "POP1965": 461.000000, "POP1970": 552.000000, "POP1975": 654.000000, "POP1980": 770.000000, "POP1985": 914.000000, "POP1990": 1091.000000, "POP1995": 1287.000000, "POP2000": 1507.000000, "POP2005": 1762.000000, "POP2010": 1870.000000, "POP2015": 2030.000000, "POP2020": 2277.000000, "POP2025": 2506.000000, "POP2050": 2715.000000, "CITYALT": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -6416839.615992, -2911955.612619 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Managua", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Managua", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Nicaragua", "SOV_A3": "NIC", "ADM0NAME": "Nicaragua", "ADM0_A3": "NIC", "ADM1NAME": "Managua", "ISO_A2": "NI", "NOTE": null, "LATITUDE": 12.153017, "LONGITUDE": -86.268492, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 920000, "POP_MIN": 920000, "POP_OTHER": 1088194, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3617763.000000, "MEGANAME": "Managua", "LS_NAME": "Managua", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1105973.000000, "MAX_POP20": 1105973.000000, "MAX_POP50": 1105973.000000, "MAX_POP300": 1105973.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 131.000000, "MAX_AREAKM": 131.000000, "MIN_AREAMI": 51.000000, "MAX_AREAMI": 51.000000, "MIN_PERKM": 97.000000, "MAX_PERKM": 97.000000, "MIN_PERMI": 60.000000, "MAX_PERMI": 60.000000, "MIN_BBXMIN": -86.383333, "MAX_BBXMIN": -86.383333, "MIN_BBXMAX": -86.158333, "MAX_BBXMAX": -86.158333, "MIN_BBYMIN": 12.075000, "MAX_BBYMIN": 12.075000, "MIN_BBYMAX": 12.175000, "MAX_BBYMAX": 12.175000, "MEAN_BBXC": -86.263402, "MEAN_BBYC": 12.133360, "COMPARE": 0, "GN_ASCII": "Managua", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 973087.000000, "ELEVATION": 0.000000, "GTOPO30": 59.000000, "TIMEZONE": "America\/Managua", "GEONAMESNO": "GeoNames match general.", "UN_FID": 382, "UN_ADM0": "Nicaragua", "UN_LAT": 12.150000, "UN_LONG": -86.270000, "POP1950": 110.000000, "POP1955": 148.000000, "POP1960": 199.000000, "POP1965": 269.000000, "POP1970": 366.000000, "POP1975": 443.000000, "POP1980": 525.000000, "POP1985": 621.000000, "POP1990": 735.000000, "POP1995": 865.000000, "POP2000": 887.000000, "POP2005": 909.000000, "POP2010": 920.000000, "POP2015": 944.000000, "POP2020": 1015.000000, "POP2025": 1104.000000, "POP2050": 1193.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9603581.175117, 1363349.223720 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Freetown", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Freetown", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Sierra Leone", "SOV_A3": "SLE", "ADM0NAME": "Sierra Leone", "ADM0_A3": "SLE", "ADM1NAME": "Western", "ISO_A2": "SL", "NOTE": null, "LATITUDE": 8.470011, "LONGITUDE": -13.234216, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 827000, "POP_MIN": 13768, "POP_OTHER": 1074640, "RANK_MAX": 11, "RANK_MIN": 6, "GEONAMEID": 2408770.000000, "MEGANAME": "Freetown", "LS_NAME": "Freetown", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1074311.000000, "MAX_POP20": 1074311.000000, "MAX_POP50": 1074311.000000, "MAX_POP300": 1074311.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 77.000000, "MAX_AREAKM": 77.000000, "MIN_AREAMI": 30.000000, "MAX_AREAMI": 30.000000, "MIN_PERKM": 81.000000, "MAX_PERKM": 81.000000, "MIN_PERMI": 50.000000, "MAX_PERMI": 50.000000, "MIN_BBXMIN": -13.300000, "MAX_BBXMIN": -13.300000, "MIN_BBXMAX": -13.150000, "MAX_BBXMAX": -13.150000, "MIN_BBYMIN": 8.408333, "MAX_BBYMIN": 8.408333, "MIN_BBYMAX": 8.500000, "MAX_BBYMAX": 8.500000, "MEAN_BBXC": -13.230082, "MEAN_BBYC": 8.462592, "COMPARE": 0, "GN_ASCII": "Freetown", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 4.000000, "GN_POP": 13768.000000, "ELEVATION": 0.000000, "GTOPO30": 15.000000, "TIMEZONE": "Africa\/Freetown", "GEONAMESNO": "GeoNames match general.", "UN_FID": 449, "UN_ADM0": "Sierra Leone", "UN_LAT": 8.480000, "UN_LONG": -13.230000, "POP1950": 92.000000, "POP1955": 104.000000, "POP1960": 119.000000, "POP1965": 148.000000, "POP1970": 206.000000, "POP1975": 284.000000, "POP1980": 361.000000, "POP1985": 460.000000, "POP1990": 529.000000, "POP1995": 603.000000, "POP2000": 688.000000, "POP2005": 785.000000, "POP2010": 827.000000, "POP2015": 894.000000, "POP2020": 1029.000000, "POP2025": 1200.000000, "POP2050": 1406.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1473442.769259, 946549.449675 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Islamabad", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Islamabad", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Pakistan", "SOV_A3": "PAK", "ADM0NAME": "Pakistan", "ADM0_A3": "PAK", "ADM1NAME": "F.C.T.", "ISO_A2": "PK", "NOTE": null, "LATITUDE": 33.699996, "LONGITUDE": 73.166634, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 780000, "POP_MIN": 601600, "POP_OTHER": 893673, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 1176615.000000, "MEGANAME": "Islamabad", "LS_NAME": "Islamabad", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 742356.000000, "MAX_POP20": 742356.000000, "MAX_POP50": 7482035.000000, "MAX_POP300": 7482969.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 772.000000, "MAX_AREAKM": 5463.000000, "MIN_AREAMI": 298.000000, "MAX_AREAMI": 2109.000000, "MIN_PERKM": 545.000000, "MAX_PERKM": 4154.000000, "MIN_PERMI": 339.000000, "MAX_PERMI": 2581.000000, "MIN_BBXMIN": 72.286464, "MAX_BBXMIN": 73.033333, "MIN_BBXMAX": 73.516667, "MAX_BBXMAX": 73.816667, "MIN_BBYMIN": 32.700000, "MAX_BBYMIN": 33.258333, "MIN_BBYMAX": 33.766667, "MAX_BBYMAX": 34.533333, "MEAN_BBXC": 73.182617, "MEAN_BBYC": 33.557939, "COMPARE": 0, "GN_ASCII": "Islamabad", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 601600.000000, "ELEVATION": 0.000000, "GTOPO30": 497.000000, "TIMEZONE": "Asia\/Karachi", "GEONAMESNO": "GeoNames match general.", "UN_FID": 401, "UN_ADM0": "Pakistan", "UN_LAT": 33.710000, "UN_LONG": 73.060000, "POP1950": 36.000000, "POP1955": 41.000000, "POP1960": 45.000000, "POP1965": 56.000000, "POP1970": 70.000000, "POP1975": 107.000000, "POP1980": 189.000000, "POP1985": 260.000000, "POP1990": 343.000000, "POP1995": 452.000000, "POP2000": 594.000000, "POP2005": 732.000000, "POP2010": 780.000000, "POP2015": 851.000000, "POP2020": 988.000000, "POP2025": 1148.000000, "POP2050": 1320.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8144655.881344, 3988849.965398 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Kathmandu", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kathmandu", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Nepal", "SOV_A3": "NPL", "ADM0NAME": "Nepal", "ADM0_A3": "NPL", "ADM1NAME": "Bhaktapur", "ISO_A2": "NP", "NOTE": null, "LATITUDE": 27.716692, "LONGITUDE": 85.316642, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 895000, "POP_MIN": 895000, "POP_OTHER": 1099610, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 1283240.000000, "MEGANAME": "Kathmandu", "LS_NAME": "Kathmandu", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1154222.000000, "MAX_POP20": 2297630.000000, "MAX_POP50": 2297630.000000, "MAX_POP300": 2297630.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 233.000000, "MAX_AREAKM": 580.000000, "MIN_AREAMI": 90.000000, "MAX_AREAMI": 224.000000, "MIN_PERKM": 228.000000, "MAX_PERKM": 511.000000, "MIN_PERMI": 142.000000, "MAX_PERMI": 318.000000, "MIN_BBXMIN": 85.108333, "MAX_BBXMIN": 85.108333, "MIN_BBXMAX": 85.450066, "MAX_BBXMAX": 85.675000, "MIN_BBYMIN": 27.541667, "MAX_BBYMIN": 27.669456, "MIN_BBYMAX": 27.850000, "MAX_BBYMAX": 27.850000, "MEAN_BBXC": 85.356097, "MEAN_BBYC": 27.697735, "COMPARE": 0, "GN_ASCII": "Kathmandu", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1442271.000000, "ELEVATION": 1317.000000, "GTOPO30": 1304.000000, "TIMEZONE": "Asia\/Kathmandu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 378, "UN_ADM0": "Nepal", "UN_LAT": 27.710000, "UN_LONG": 85.310000, "POP1950": 104.000000, "POP1955": 110.000000, "POP1960": 119.000000, "POP1965": 132.000000, "POP1970": 147.000000, "POP1975": 180.000000, "POP1980": 225.000000, "POP1985": 297.000000, "POP1990": 398.000000, "POP1995": 509.000000, "POP2000": 644.000000, "POP2005": 815.000000, "POP2010": 895.000000, "POP2015": 1029.000000, "POP2020": 1284.000000, "POP2025": 1578.000000, "POP2050": 1907.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 9497188.555112, 3213546.538967 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Bloemfontein", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bloemfontein", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Judicial capita", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "South Africa", "SOV_A3": "ZAF", "ADM0NAME": "South Africa", "ADM0_A3": "ZAF", "ADM1NAME": "Orange Free State", "ISO_A2": "ZA", "NOTE": null, "LATITUDE": -29.119994, "LONGITUDE": 26.229913, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 463064, "POP_MIN": 456669, "POP_OTHER": 456513, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 1018725.000000, "MEGANAME": null, "LS_NAME": "Bloemfontein", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 456669.000000, "MAX_POP20": 456669.000000, "MAX_POP50": 456669.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 105.000000, "MAX_AREAKM": 105.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 78.000000, "MAX_PERKM": 78.000000, "MIN_PERMI": 48.000000, "MAX_PERMI": 48.000000, "MIN_BBXMIN": 26.166667, "MAX_BBXMIN": 26.166667, "MIN_BBXMAX": 26.300000, "MAX_BBXMAX": 26.300000, "MIN_BBYMIN": -29.200000, "MAX_BBYMIN": -29.200000, "MIN_BBYMAX": -29.058333, "MAX_BBYMAX": -29.058333, "MEAN_BBXC": 26.225714, "MEAN_BBYC": -29.128155, "COMPARE": 0, "GN_ASCII": "Bloemfontein", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 3.000000, "GN_POP": 463064.000000, "ELEVATION": 0.000000, "GTOPO30": 1398.000000, "TIMEZONE": "Africa\/Johannesburg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2919900.545484, -3390927.449620 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Pretoria", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Pretoria", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Administrative", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "South Africa", "SOV_A3": "ZAF", "ADM0NAME": "South Africa", "ADM0_A3": "ZAF", "ADM1NAME": "Gauteng", "ISO_A2": "ZA", "NOTE": null, "LATITUDE": -25.706921, "LONGITUDE": 28.229429, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1338000, "POP_MIN": 1338000, "POP_OTHER": 1443084, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 964137.000000, "MEGANAME": "Pretoria", "LS_NAME": "Pretoria", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1444949.000000, "MAX_POP20": 1444949.000000, "MAX_POP50": 1444949.000000, "MAX_POP300": 1444949.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 502.000000, "MAX_AREAKM": 502.000000, "MIN_AREAMI": 194.000000, "MAX_AREAMI": 194.000000, "MIN_PERKM": 256.000000, "MAX_PERKM": 256.000000, "MIN_PERMI": 159.000000, "MAX_PERMI": 159.000000, "MIN_BBXMIN": 28.041667, "MAX_BBXMIN": 28.041667, "MIN_BBXMAX": 28.400000, "MAX_BBXMAX": 28.400000, "MIN_BBYMIN": -25.891667, "MAX_BBYMIN": -25.891667, "MIN_BBYMAX": -25.641667, "MAX_BBYMAX": -25.641667, "MEAN_BBXC": 28.214676, "MEAN_BBYC": -25.755716, "COMPARE": 0, "GN_ASCII": "Pretoria", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 6.000000, "GN_POP": 1619438.000000, "ELEVATION": 0.000000, "GTOPO30": 1282.000000, "TIMEZONE": "Africa\/Johannesburg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 460, "UN_ADM0": "South Africa", "UN_LAT": -25.730000, "UN_LONG": 28.210000, "POP1950": 275.000000, "POP1955": 340.000000, "POP1960": 419.000000, "POP1965": 488.000000, "POP1970": 565.000000, "POP1975": 624.000000, "POP1980": 688.000000, "POP1985": 763.000000, "POP1990": 911.000000, "POP1995": 951.000000, "POP2000": 1084.000000, "POP2005": 1273.000000, "POP2010": 1338.000000, "POP2015": 1409.000000, "POP2020": 1482.000000, "POP2025": 1544.000000, "POP2050": 1604.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3142269.058118, -2962586.442413 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port Moresby", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port Moresby", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Central", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -9.464708, "LONGITUDE": 147.192504, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 283733, "POP_MIN": 251136, "POP_OTHER": 251304, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2088122.000000, "MEGANAME": null, "LS_NAME": "Port Moresby", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 251136.000000, "MAX_POP20": 251136.000000, "MAX_POP50": 251136.000000, "MAX_POP300": 251136.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 89.000000, "MAX_AREAKM": 89.000000, "MIN_AREAMI": 35.000000, "MAX_AREAMI": 35.000000, "MIN_PERKM": 92.000000, "MAX_PERKM": 92.000000, "MIN_PERMI": 57.000000, "MAX_PERMI": 57.000000, "MIN_BBXMIN": 147.141667, "MAX_BBXMIN": 147.141667, "MIN_BBXMAX": 147.241667, "MAX_BBXMAX": 147.241667, "MIN_BBYMIN": -9.508333, "MAX_BBYMIN": -9.508333, "MIN_BBYMAX": -9.358333, "MAX_BBYMAX": -9.358333, "MEAN_BBXC": 147.185377, "MEAN_BBYC": -9.433491, "COMPARE": 0, "GN_ASCII": "Port Moresby", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 20.000000, "GN_POP": 283733.000000, "ELEVATION": 0.000000, "GTOPO30": 50.000000, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 16385394.551631, -1058431.180387 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Honiara", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Honiara", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Solomon Islands", "SOV_A3": "SLB", "ADM0NAME": "Solomon Islands", "ADM0_A3": "SLB", "ADM1NAME": "Guadalcanal", "ISO_A2": "SB", "NOTE": null, "LATITUDE": -9.437994, "LONGITUDE": 159.949766, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 76328, "POP_MIN": 56298, "POP_OTHER": 76328, "RANK_MAX": 8, "RANK_MIN": 8, "GEONAMEID": 2108502.000000, "MEGANAME": null, "LS_NAME": "Honiara", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 76328.000000, "MAX_POP20": 76328.000000, "MAX_POP50": 76328.000000, "MAX_POP300": 76328.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 18.000000, "MAX_AREAKM": 18.000000, "MIN_AREAMI": 7.000000, "MAX_AREAMI": 7.000000, "MIN_PERKM": 33.000000, "MAX_PERKM": 33.000000, "MIN_PERMI": 21.000000, "MAX_PERMI": 21.000000, "MIN_BBXMIN": 159.916667, "MAX_BBXMIN": 159.916667, "MIN_BBXMAX": 160.016667, "MAX_BBXMAX": 160.016667, "MIN_BBYMIN": -9.441667, "MAX_BBYMIN": -9.441667, "MIN_BBYMAX": -9.408333, "MAX_BBYMAX": -9.408333, "MEAN_BBXC": 159.966865, "MEAN_BBYC": -9.429960, "COMPARE": 0, "GN_ASCII": "Honiara", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 56298.000000, "ELEVATION": 0.000000, "GTOPO30": 12.000000, "TIMEZONE": "Pacific\/Guadalcanal", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 17805526.473968, -1055416.520874 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Panama City", "NAMEPAR": null, "NAMEALT": "Ciudad de Panamá|Panama City|Panama", "DIFFASCII": 0, "NAMEASCII": "Panama City", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Panama", "SOV_A3": "PAN", "ADM0NAME": "Panama", "ADM0_A3": "PAN", "ADM1NAME": "Panama", "ISO_A2": "PA", "NOTE": null, "LATITUDE": 8.968017, "LONGITUDE": -79.533037, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1281000, "POP_MIN": 408168, "POP_OTHER": 939725, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": 3703443.000000, "MEGANAME": "Ciudad de Panamá (Panama City)", "LS_NAME": "Panama City1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 958016.000000, "MAX_POP20": 958016.000000, "MAX_POP50": 989053.000000, "MAX_POP300": 989053.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 141.000000, "MAX_AREAKM": 157.000000, "MIN_AREAMI": 54.000000, "MAX_AREAMI": 61.000000, "MIN_PERKM": 98.000000, "MAX_PERKM": 107.000000, "MIN_PERMI": 61.000000, "MAX_PERMI": 66.000000, "MIN_BBXMIN": -79.591667, "MAX_BBXMIN": -79.576315, "MIN_BBXMAX": -79.400000, "MAX_BBXMAX": -79.400000, "MIN_BBYMIN": 8.933333, "MAX_BBYMIN": 8.943752, "MIN_BBYMAX": 9.100000, "MAX_BBYMAX": 9.100000, "MEAN_BBXC": -79.494919, "MEAN_BBYC": 9.035936, "COMPARE": 0, "GN_ASCII": "Panama City", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 408168.000000, "ELEVATION": 0.000000, "GTOPO30": 2.000000, "TIMEZONE": "America\/Panama", "GEONAMESNO": "GeoNames match general.", "UN_FID": 408, "UN_ADM0": "Panama", "UN_LAT": 9.000000, "UN_LONG": -79.510000, "POP1950": 171.000000, "POP1955": 220.000000, "POP1960": 283.000000, "POP1965": 360.000000, "POP1970": 455.000000, "POP1975": 528.000000, "POP1980": 613.000000, "POP1985": 721.000000, "POP1990": 847.000000, "POP1995": 953.000000, "POP2000": 1072.000000, "POP2005": 1216.000000, "POP2010": 1281.000000, "POP2015": 1379.000000, "POP2020": 1527.000000, "POP2025": 1653.000000, "POP2050": 1759.000000, "CITYALT": "Panama" }, "geometry": { "type": "Point", "coordinates": [ -8853793.808970, 1002635.825442 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Rabat", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Rabat", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Morocco", "SOV_A3": "MAR", "ADM0NAME": "Morocco", "ADM0_A3": "MAR", "ADM1NAME": "Rabat - Salé - Zemmour - Zaer", "ISO_A2": "MA", "NOTE": null, "LATITUDE": 34.025299, "LONGITUDE": -6.836131, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1705000, "POP_MIN": 1655753, "POP_OTHER": 2029349, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2538475.000000, "MEGANAME": "Rabat", "LS_NAME": "Rabat", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2037124.000000, "MAX_POP20": 2037124.000000, "MAX_POP50": 2037124.000000, "MAX_POP300": 2037124.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 428.000000, "MAX_AREAKM": 428.000000, "MIN_AREAMI": 165.000000, "MAX_AREAMI": 165.000000, "MIN_PERKM": 475.000000, "MAX_PERKM": 475.000000, "MIN_PERMI": 295.000000, "MAX_PERMI": 295.000000, "MIN_BBXMIN": -7.116667, "MAX_BBXMIN": -7.116667, "MIN_BBXMAX": -6.725000, "MAX_BBXMAX": -6.725000, "MIN_BBYMIN": 33.741667, "MAX_BBYMIN": 33.741667, "MIN_BBYMAX": 34.125000, "MAX_BBYMAX": 34.125000, "MEAN_BBXC": -6.874910, "MEAN_BBYC": 33.912847, "COMPARE": 0, "GN_ASCII": "Rabat", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 49.000000, "GN_POP": 1655753.000000, "ELEVATION": 0.000000, "GTOPO30": 54.000000, "TIMEZONE": "Africa\/Casablanca", "GEONAMESNO": "GeoNames match general.", "UN_FID": 375, "UN_ADM0": "Morocco", "UN_LAT": 34.010000, "UN_LONG": -6.830000, "POP1950": 145.000000, "POP1955": 184.000000, "POP1960": 233.000000, "POP1965": 339.000000, "POP1970": 494.000000, "POP1975": 641.000000, "POP1980": 808.000000, "POP1985": 986.000000, "POP1990": 1174.000000, "POP1995": 1379.000000, "POP2000": 1507.000000, "POP2005": 1647.000000, "POP2010": 1705.000000, "POP2015": 1793.000000, "POP2020": 1938.000000, "POP2025": 2083.000000, "POP2050": 2222.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -761025.474794, 4032200.686111 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Chisinau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Chisinau", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Moldova", "SOV_A3": "MDA", "ADM0NAME": "Moldova", "ADM0_A3": "MDA", "ADM1NAME": "Chisinau", "ISO_A2": "MD", "NOTE": null, "LATITUDE": 47.005024, "LONGITUDE": 28.857711, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 688134, "POP_MIN": 635994, "POP_OTHER": 664472, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 618426.000000, "MEGANAME": null, "LS_NAME": "Chisinau", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 688134.000000, "MAX_POP20": 688134.000000, "MAX_POP50": 688134.000000, "MAX_POP300": 688134.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 109.000000, "MAX_AREAKM": 109.000000, "MIN_AREAMI": 42.000000, "MAX_AREAMI": 42.000000, "MIN_PERKM": 85.000000, "MAX_PERKM": 85.000000, "MIN_PERMI": 53.000000, "MAX_PERMI": 53.000000, "MIN_BBXMIN": 28.741667, "MAX_BBXMIN": 28.741667, "MIN_BBXMAX": 28.925000, "MAX_BBXMAX": 28.925000, "MIN_BBYMIN": 46.950000, "MAX_BBYMIN": 46.950000, "MIN_BBYMAX": 47.075000, "MAX_BBYMAX": 47.075000, "MEAN_BBXC": 28.840203, "MEAN_BBYC": 47.017185, "COMPARE": 0, "GN_ASCII": "Chisinau", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 57.000000, "GN_POP": 635994.000000, "ELEVATION": 0.000000, "GTOPO30": 52.000000, "TIMEZONE": "Europe\/Chisinau", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3212425.709525, 5942894.093576 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Maputo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Maputo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Mozambique", "SOV_A3": "MOZ", "ADM0NAME": "Mozambique", "ADM0_A3": "MOZ", "ADM1NAME": "Maputo", "ISO_A2": "MZ", "NOTE": null, "LATITUDE": -25.955277, "LONGITUDE": 32.589163, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1446000, "POP_MIN": 1191613, "POP_OTHER": 1365454, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1040652.000000, "MEGANAME": "Maputo", "LS_NAME": "Maputo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1369629.000000, "MAX_POP20": 1823845.000000, "MAX_POP50": 1822603.000000, "MAX_POP300": 1823845.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 187.000000, "MAX_AREAKM": 313.000000, "MIN_AREAMI": 72.000000, "MAX_AREAMI": 121.000000, "MIN_PERKM": 160.000000, "MAX_PERKM": 234.000000, "MIN_PERMI": 100.000000, "MAX_PERMI": 145.000000, "MIN_BBXMIN": 32.425000, "MAX_BBXMIN": 32.506986, "MIN_BBXMAX": 32.650000, "MAX_BBXMAX": 32.650000, "MIN_BBYMIN": -25.991667, "MAX_BBYMIN": -25.983333, "MIN_BBYMAX": -25.750000, "MAX_BBYMAX": -25.750000, "MEAN_BBXC": 32.543778, "MEAN_BBYC": -25.880831, "COMPARE": 0, "GN_ASCII": "Maputo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1191613.000000, "ELEVATION": 0.000000, "GTOPO30": 47.000000, "TIMEZONE": "Africa\/Maputo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 376, "UN_ADM0": "Mozambique", "UN_LAT": -25.960000, "UN_LONG": 32.570000, "POP1950": 92.000000, "POP1955": 129.000000, "POP1960": 181.000000, "POP1965": 259.000000, "POP1970": 371.000000, "POP1975": 456.000000, "POP1980": 550.000000, "POP1985": 653.000000, "POP1990": 776.000000, "POP1995": 921.000000, "POP2000": 1096.000000, "POP2005": 1334.000000, "POP2010": 1446.000000, "POP2015": 1621.000000, "POP2020": 1921.000000, "POP2025": 2235.000000, "POP2050": 2560.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3627592.414383, -2993302.013058 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Mogadishu", "NAMEPAR": null, "NAMEALT": "Muqdisho", "DIFFASCII": 0, "NAMEASCII": "Mogadishu", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Somalia", "SOV_A3": "SOM", "ADM0NAME": "Somalia", "ADM0_A3": "SOM", "ADM1NAME": "Banaadir", "ISO_A2": "SO", "NOTE": null, "LATITUDE": 2.066681, "LONGITUDE": 45.366678, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1100000, "POP_MIN": 875388, "POP_OTHER": 849392, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 53654.000000, "MEGANAME": "Muqdisho", "LS_NAME": "Mogadishu", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 875388.000000, "MAX_POP20": 875388.000000, "MAX_POP50": 875388.000000, "MAX_POP300": 875388.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 99.000000, "MAX_AREAKM": 99.000000, "MIN_AREAMI": 38.000000, "MAX_AREAMI": 38.000000, "MIN_PERKM": 68.000000, "MAX_PERKM": 68.000000, "MIN_PERMI": 43.000000, "MAX_PERMI": 43.000000, "MIN_BBXMIN": 45.250000, "MAX_BBXMIN": 45.250000, "MIN_BBXMAX": 45.416667, "MAX_BBXMAX": 45.416667, "MIN_BBYMIN": 2.000000, "MAX_BBYMIN": 2.000000, "MIN_BBYMAX": 2.116667, "MAX_BBYMAX": 2.116667, "MEAN_BBXC": 45.331178, "MEAN_BBYC": 2.054239, "COMPARE": 0, "GN_ASCII": "Mogadishu", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 2587183.000000, "ELEVATION": 0.000000, "GTOPO30": 39.000000, "TIMEZONE": "Africa\/Mogadishu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 454, "UN_ADM0": "Somalia", "UN_LAT": 2.040000, "UN_LONG": 45.340000, "POP1950": 69.000000, "POP1955": 73.000000, "POP1960": 94.000000, "POP1965": 146.000000, "POP1970": 272.000000, "POP1975": 445.000000, "POP1980": 551.000000, "POP1985": 747.000000, "POP1990": 1035.000000, "POP1995": 1147.000000, "POP2000": 1201.000000, "POP2005": 1415.000000, "POP2010": 1100.000000, "POP2015": 1500.000000, "POP2020": 1794.000000, "POP2025": 2142.000000, "POP2050": 2529.000000, "CITYALT": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 5049978.838657, 230328.571019 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Muscat", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Muscat", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Oman", "SOV_A3": "OMN", "ADM0NAME": "Oman", "ADM0_A3": "OMN", "ADM1NAME": "Muscat", "ISO_A2": "OM", "NOTE": null, "LATITUDE": 23.613325, "LONGITUDE": 58.593312, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 734697, "POP_MIN": 586861, "POP_OTHER": 586861, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 287286.000000, "MEGANAME": null, "LS_NAME": "Muscat", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 586861.000000, "MAX_POP20": 586861.000000, "MAX_POP50": 586861.000000, "MAX_POP300": 586861.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 104.000000, "MAX_AREAKM": 104.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 121.000000, "MAX_PERKM": 121.000000, "MIN_PERMI": 75.000000, "MAX_PERMI": 75.000000, "MIN_BBXMIN": 58.333333, "MAX_BBXMIN": 58.333333, "MIN_BBXMAX": 58.600000, "MAX_BBXMAX": 58.600000, "MIN_BBYMIN": 23.558333, "MAX_BBYMIN": 23.558333, "MIN_BBYMAX": 23.641667, "MAX_BBYMAX": 23.641667, "MEAN_BBXC": 58.474684, "MEAN_BBYC": 23.599306, "COMPARE": 0, "GN_ASCII": "Muscat", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 6.000000, "GN_POP": 797000.000000, "ELEVATION": 0.000000, "GTOPO30": 69.000000, "TIMEZONE": "Asia\/Muscat", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6522577.670493, 2706360.344861 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Colombo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Colombo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto, admin", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Sri Lanka", "SOV_A3": "LKA", "ADM0NAME": "Sri Lanka", "ADM0_A3": "LKA", "ADM1NAME": "Colombo", "ISO_A2": "LK", "NOTE": null, "LATITUDE": 6.931966, "LONGITUDE": 79.857751, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 217000, "POP_MIN": 217000, "POP_OTHER": 2490974, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3465927.000000, "MEGANAME": null, "LS_NAME": "Colombo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2664418.000000, "MAX_POP20": 2742979.000000, "MAX_POP50": 2742979.000000, "MAX_POP300": 9759831.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1054.000000, "MAX_AREAKM": 6238.000000, "MIN_AREAMI": 407.000000, "MAX_AREAMI": 2408.000000, "MIN_PERKM": 847.000000, "MAX_PERKM": 5343.000000, "MIN_PERMI": 526.000000, "MAX_PERMI": 3320.000000, "MIN_BBXMIN": 79.800000, "MAX_BBXMIN": 79.800000, "MIN_BBXMAX": 80.097553, "MAX_BBXMAX": 80.833333, "MIN_BBYMIN": 5.916667, "MAX_BBYMIN": 6.854447, "MIN_BBYMAX": 7.633333, "MAX_BBYMAX": 7.800000, "MEAN_BBXC": 79.996849, "MEAN_BBYC": 7.222799, "COMPARE": 0, "GN_ASCII": "Colombo", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 18.000000, "GN_POP": 217000.000000, "ELEVATION": 0.000000, "GTOPO30": 927.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8889724.133718, 773552.355489 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Ulaanbaatar", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ulaanbaatar", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Mongolia", "SOV_A3": "MNG", "ADM0NAME": "Mongolia", "ADM0_A3": "MNG", "ADM1NAME": "Ulaanbaatar", "ISO_A2": "MN", "NOTE": null, "LATITUDE": 47.916673, "LONGITUDE": 106.916616, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 885000, "POP_MIN": 769612, "POP_OTHER": 765359, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2028462.000000, "MEGANAME": "Ulaanbaatar", "LS_NAME": "Ulaanbaatar", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 769612.000000, "MAX_POP20": 769612.000000, "MAX_POP50": 769612.000000, "MAX_POP300": 769612.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 143.000000, "MAX_AREAKM": 143.000000, "MIN_AREAMI": 55.000000, "MAX_AREAMI": 55.000000, "MIN_PERKM": 144.000000, "MAX_PERKM": 144.000000, "MIN_PERMI": 89.000000, "MAX_PERMI": 89.000000, "MIN_BBXMIN": 106.725000, "MAX_BBXMIN": 106.725000, "MIN_BBXMAX": 107.041667, "MAX_BBXMAX": 107.041667, "MIN_BBYMIN": 47.883333, "MAX_BBYMIN": 47.883333, "MIN_BBYMAX": 48.016667, "MAX_BBYMAX": 48.016667, "MEAN_BBXC": 106.883013, "MEAN_BBYC": 47.932237, "COMPARE": 0, "GN_ASCII": "Ulaanbaatar", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 20.000000, "GN_POP": 844818.000000, "ELEVATION": 0.000000, "GTOPO30": 1299.000000, "TIMEZONE": "Asia\/Ulaanbaatar", "GEONAMESNO": "GeoNames match general.", "UN_FID": 367, "UN_ADM0": "Mongolia", "UN_LAT": 47.920000, "UN_LONG": 106.910000, "POP1950": 70.000000, "POP1955": 112.000000, "POP1960": 179.000000, "POP1965": 248.000000, "POP1970": 298.000000, "POP1975": 356.000000, "POP1980": 423.000000, "POP1985": 492.000000, "POP1990": 572.000000, "POP1995": 661.000000, "POP2000": 763.000000, "POP2005": 856.000000, "POP2010": 885.000000, "POP2015": 919.000000, "POP2020": 978.000000, "POP2025": 1044.000000, "POP2050": 1112.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11901686.612015, 6093326.642045 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Wellington", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Wellington", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "New Zealand", "SOV_A3": "NZL", "ADM0NAME": "New Zealand", "ADM0_A3": "NZL", "ADM1NAME": "Manawatu-Wanganui", "ISO_A2": "NZ", "NOTE": null, "LATITUDE": -41.299974, "LONGITUDE": 174.783274, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 393400, "POP_MIN": 199200, "POP_OTHER": 140594, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 2144168.000000, "MEGANAME": null, "LS_NAME": "Wellington", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 144164.000000, "MAX_POP20": 144164.000000, "MAX_POP50": 144164.000000, "MAX_POP300": 144164.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 77.000000, "MAX_AREAKM": 77.000000, "MIN_AREAMI": 30.000000, "MAX_AREAMI": 30.000000, "MIN_PERKM": 79.000000, "MAX_PERKM": 79.000000, "MIN_PERMI": 49.000000, "MAX_PERMI": 49.000000, "MIN_BBXMIN": 174.725000, "MAX_BBXMIN": 174.725000, "MIN_BBXMAX": 174.841667, "MAX_BBXMAX": 174.841667, "MIN_BBYMIN": -41.350000, "MAX_BBYMIN": -41.350000, "MIN_BBYMAX": -41.200000, "MAX_BBYMAX": -41.200000, "MEAN_BBXC": 174.787920, "MEAN_BBYC": -41.285539, "COMPARE": 0, "GN_ASCII": "Wellington", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 2.000000, "GN_POP": 5428.000000, "ELEVATION": 0.000000, "GTOPO30": 304.000000, "TIMEZONE": "Australia\/Sydney", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19456785.093286, -5056688.947184 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Windhoek", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Windhoek", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Namibia", "SOV_A3": "NAM", "ADM0NAME": "Namibia", "ADM0_A3": "NAM", "ADM1NAME": "Khomas", "ISO_A2": "NA", "NOTE": null, "LATITUDE": -22.570006, "LONGITUDE": 17.083546, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 268132, "POP_MIN": 262796, "POP_OTHER": 262796, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3352136.000000, "MEGANAME": null, "LS_NAME": "Windhoek", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 262796.000000, "MAX_POP20": 262796.000000, "MAX_POP50": 262796.000000, "MAX_POP300": 262796.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 89.000000, "MAX_AREAKM": 89.000000, "MIN_AREAMI": 35.000000, "MAX_AREAMI": 35.000000, "MIN_PERKM": 60.000000, "MAX_PERKM": 60.000000, "MIN_PERMI": 37.000000, "MAX_PERMI": 37.000000, "MIN_BBXMIN": 17.008333, "MAX_BBXMIN": 17.008333, "MIN_BBXMAX": 17.116667, "MAX_BBXMAX": 17.116667, "MIN_BBYMIN": -22.625000, "MAX_BBYMIN": -22.625000, "MIN_BBYMAX": -22.491667, "MAX_BBYMAX": -22.491667, "MEAN_BBXC": 17.064196, "MEAN_BBYC": -22.551143, "COMPARE": 0, "GN_ASCII": "Windhoek", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 21.000000, "GN_POP": 268132.000000, "ELEVATION": 0.000000, "GTOPO30": 1722.000000, "TIMEZONE": "Africa\/Windhoek", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1901731.652855, -2580100.312024 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Abuja", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Abuja", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official and ad", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Nigeria", "SOV_A3": "NGA", "ADM0NAME": "Nigeria", "ADM0_A3": "NGA", "ADM1NAME": "Federal Capital Territory", "ISO_A2": "NG", "NOTE": null, "LATITUDE": 9.083333, "LONGITUDE": 7.533328, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1576000, "POP_MIN": 162135, "POP_OTHER": 0, "RANK_MAX": 12, "RANK_MIN": 9, "GEONAMEID": 2322794.000000, "MEGANAME": "Abuja", "LS_NAME": "Abuja", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 655258.000000, "MAX_POP20": 655258.000000, "MAX_POP50": 655258.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 174.000000, "MAX_AREAKM": 174.000000, "MIN_AREAMI": 67.000000, "MAX_AREAMI": 67.000000, "MIN_PERKM": 162.000000, "MAX_PERKM": 162.000000, "MIN_PERMI": 101.000000, "MAX_PERMI": 101.000000, "MIN_BBXMIN": 7.375000, "MAX_BBXMIN": 7.375000, "MIN_BBXMAX": 7.591667, "MAX_BBXMAX": 7.591667, "MIN_BBYMIN": 8.983333, "MAX_BBYMIN": 8.983333, "MIN_BBYMAX": 9.166667, "MAX_BBYMAX": 9.166667, "MEAN_BBXC": 7.484385, "MEAN_BBYC": 9.063188, "COMPARE": 0, "GN_ASCII": "Abuja", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 162135.000000, "ELEVATION": 0.000000, "GTOPO30": 339.000000, "TIMEZONE": "Africa\/Lagos", "GEONAMESNO": "GeoNames match general.", "UN_FID": 386, "UN_ADM0": "Nigeria", "UN_LAT": 9.050000, "UN_LONG": 7.250000, "POP1950": 18.000000, "POP1955": 21.000000, "POP1960": 23.000000, "POP1965": 29.000000, "POP1970": 48.000000, "POP1975": 77.000000, "POP1980": 125.000000, "POP1985": 204.000000, "POP1990": 330.000000, "POP1995": 526.000000, "POP2000": 832.000000, "POP2005": 1315.000000, "POP2010": 1576.000000, "POP2015": 1994.000000, "POP2020": 2558.000000, "POP2025": 2971.000000, "POP2050": 3358.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 838389.625120, 1015633.749239 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bissau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bissau", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Guinea Bissau", "SOV_A3": "GNB", "ADM0NAME": "Guinea Bissau", "ADM0_A3": "GNB", "ADM1NAME": "Bissau", "ISO_A2": "GW", "NOTE": null, "LATITUDE": 11.865024, "LONGITUDE": -15.598361, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 403339, "POP_MIN": 388028, "POP_OTHER": 403339, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2374775.000000, "MEGANAME": null, "LS_NAME": "Bissau", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 403339.000000, "MAX_POP20": 403339.000000, "MAX_POP50": 403339.000000, "MAX_POP300": 403339.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 70.000000, "MAX_AREAKM": 70.000000, "MIN_AREAMI": 27.000000, "MAX_AREAMI": 27.000000, "MIN_PERKM": 66.000000, "MAX_PERKM": 66.000000, "MIN_PERMI": 41.000000, "MAX_PERMI": 41.000000, "MIN_BBXMIN": -15.658333, "MAX_BBXMIN": -15.658333, "MIN_BBXMAX": -15.558333, "MAX_BBXMAX": -15.558333, "MIN_BBYMIN": 11.808333, "MAX_BBYMIN": 11.808333, "MIN_BBYMAX": 11.933333, "MAX_BBYMAX": 11.933333, "MEAN_BBXC": -15.612698, "MEAN_BBYC": 11.871032, "COMPARE": 0, "GN_ASCII": "Bissau", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 388028.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Africa\/Bissau", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1736401.586065, 1330351.081429 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Amman", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Amman", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Jordan", "SOV_A3": "JOR", "ADM0NAME": "Jordan", "ADM0_A3": "JOR", "ADM1NAME": "Amman", "ISO_A2": "JO", "NOTE": null, "LATITUDE": 31.950025, "LONGITUDE": 35.933300, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1060000, "POP_MIN": 1060000, "POP_OTHER": 2633729, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 250441.000000, "MEGANAME": "Amman", "LS_NAME": "Amman", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2725138.000000, "MAX_POP20": 3684787.000000, "MAX_POP50": 3684787.000000, "MAX_POP300": 3684787.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 403.000000, "MAX_AREAKM": 545.000000, "MIN_AREAMI": 156.000000, "MAX_AREAMI": 210.000000, "MIN_PERKM": 258.000000, "MAX_PERKM": 361.000000, "MIN_PERMI": 160.000000, "MAX_PERMI": 224.000000, "MIN_BBXMIN": 35.775000, "MAX_BBXMIN": 35.775000, "MIN_BBXMAX": 36.041667, "MAX_BBXMAX": 36.158333, "MIN_BBYMIN": 31.783333, "MAX_BBYMIN": 31.783333, "MIN_BBYMAX": 32.083333, "MAX_BBYMAX": 32.166667, "MEAN_BBXC": 35.928711, "MEAN_BBYC": 31.948606, "COMPARE": 0, "GN_ASCII": "Amman", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1275857.000000, "ELEVATION": 0.000000, "GTOPO30": 765.000000, "TIMEZONE": "Asia\/Amman", "GEONAMESNO": "GeoNames match general.", "UN_FID": 322, "UN_ADM0": "Jordan", "UN_LAT": 31.940000, "UN_LONG": 35.930000, "POP1950": 90.000000, "POP1955": 140.000000, "POP1960": 218.000000, "POP1965": 299.000000, "POP1970": 388.000000, "POP1975": 500.000000, "POP1980": 636.000000, "POP1985": 736.000000, "POP1990": 851.000000, "POP1995": 973.000000, "POP2000": 1007.000000, "POP2005": 1042.000000, "POP2010": 1060.000000, "POP2015": 1106.000000, "POP2020": 1185.000000, "POP2025": 1268.000000, "POP2050": 1359.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3999860.038237, 3757007.738301 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Vilnius", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vilnius", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Lithuania", "SOV_A3": "LTU", "ADM0NAME": "Lithuania", "ADM0_A3": "LTU", "ADM1NAME": "Vilniaus", "ISO_A2": "LT", "NOTE": null, "LATITUDE": 54.683366, "LONGITUDE": 25.316635, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 542366, "POP_MIN": 507029, "POP_OTHER": 494356, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 593116.000000, "MEGANAME": null, "LS_NAME": "Vilnius", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 507029.000000, "MAX_POP20": 507029.000000, "MAX_POP50": 507029.000000, "MAX_POP300": 507029.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 126.000000, "MAX_AREAKM": 126.000000, "MIN_AREAMI": 49.000000, "MAX_AREAMI": 49.000000, "MIN_PERKM": 162.000000, "MAX_PERKM": 162.000000, "MIN_PERMI": 101.000000, "MAX_PERMI": 101.000000, "MIN_BBXMIN": 25.166667, "MAX_BBXMIN": 25.166667, "MIN_BBXMAX": 25.391667, "MAX_BBXMAX": 25.391667, "MIN_BBYMIN": 54.575000, "MAX_BBYMIN": 54.575000, "MIN_BBYMAX": 54.775000, "MAX_BBYMAX": 54.775000, "MEAN_BBXC": 25.259623, "MEAN_BBYC": 54.692063, "COMPARE": 0, "GN_ASCII": "Vilnius", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 65.000000, "GN_POP": 542366.000000, "ELEVATION": 0.000000, "GTOPO30": 125.000000, "TIMEZONE": "Europe\/Vilnius", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2818234.949447, 7300654.893979 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Riga", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Riga", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Latvia", "SOV_A3": "LVA", "ADM0NAME": "Latvia", "ADM0_A3": "LVA", "ADM1NAME": "Riga", "ISO_A2": "LV", "NOTE": null, "LATITUDE": 56.950024, "LONGITUDE": 24.099965, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 742572, "POP_MIN": 705033, "POP_OTHER": 0, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 456172.000000, "MEGANAME": null, "LS_NAME": "Riga", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 705033.000000, "MAX_POP20": 705033.000000, "MAX_POP50": 705033.000000, "MAX_POP300": 705033.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 171.000000, "MAX_AREAKM": 171.000000, "MIN_AREAMI": 66.000000, "MAX_AREAMI": 66.000000, "MIN_PERKM": 173.000000, "MAX_PERKM": 173.000000, "MIN_PERMI": 108.000000, "MAX_PERMI": 108.000000, "MIN_BBXMIN": 23.975000, "MAX_BBXMIN": 23.975000, "MIN_BBXMAX": 24.266667, "MAX_BBXMAX": 24.266667, "MIN_BBYMIN": 56.875000, "MAX_BBYMIN": 56.875000, "MIN_BBYMAX": 57.083333, "MAX_BBYMAX": 57.083333, "MEAN_BBXC": 24.127656, "MEAN_BBYC": 56.953571, "COMPARE": 0, "GN_ASCII": "Riga", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 25.000000, "GN_POP": 742572.000000, "ELEVATION": 0.000000, "GTOPO30": 9.000000, "TIMEZONE": "Europe\/Riga", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2682795.873280, 7749910.828677 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bishkek", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bishkek", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Kyrgyzstan", "SOV_A3": "KGZ", "ADM0NAME": "Kyrgyzstan", "ADM0_A3": "KGZ", "ADM1NAME": "Bishkek", "ISO_A2": "KG", "NOTE": null, "LATITUDE": 42.873079, "LONGITUDE": 74.585204, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 837000, "POP_MIN": 804212, "POP_OTHER": 781714, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 1528675.000000, "MEGANAME": "Bishkek", "LS_NAME": "Bishkek", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 804212.000000, "MAX_POP20": 804212.000000, "MAX_POP50": 804212.000000, "MAX_POP300": 804212.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 245.000000, "MAX_AREAKM": 245.000000, "MIN_AREAMI": 94.000000, "MAX_AREAMI": 94.000000, "MIN_PERKM": 190.000000, "MAX_PERKM": 190.000000, "MIN_PERMI": 118.000000, "MAX_PERMI": 118.000000, "MIN_BBXMIN": 74.425000, "MAX_BBXMIN": 74.425000, "MIN_BBXMAX": 74.800000, "MAX_BBXMAX": 74.800000, "MIN_BBYMIN": 42.766667, "MAX_BBYMIN": 42.766667, "MIN_BBYMAX": 43.000000, "MAX_BBYMAX": 43.000000, "MEAN_BBXC": 74.603823, "MEAN_BBYC": 42.872917, "COMPARE": 0, "GN_ASCII": "Bishkek", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 900000.000000, "ELEVATION": 0.000000, "GTOPO30": 772.000000, "TIMEZONE": "Asia\/Bishkek", "GEONAMESNO": "GeoNames match general.", "UN_FID": 340, "UN_ADM0": "Kyrgyzstan", "UN_LAT": 42.870000, "UN_LONG": 74.770000, "POP1950": 150.000000, "POP1955": 186.000000, "POP1960": 236.000000, "POP1965": 322.000000, "POP1970": 433.000000, "POP1975": 485.000000, "POP1980": 538.000000, "POP1985": 583.000000, "POP1990": 635.000000, "POP1995": 703.000000, "POP2000": 770.000000, "POP2005": 817.000000, "POP2010": 837.000000, "POP2015": 869.000000, "POP2020": 934.000000, "POP2025": 1011.000000, "POP2050": 1096.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8302570.342772, 5292968.728808 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Maseru", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Maseru", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Lesotho", "SOV_A3": "LSO", "ADM0NAME": "Lesotho", "ADM0_A3": "LSO", "ADM1NAME": "Maseru", "ISO_A2": "LS", "NOTE": null, "LATITUDE": -29.316674, "LONGITUDE": 27.483273, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 361324, "POP_MIN": 118355, "POP_OTHER": 356225, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 932505.000000, "MEGANAME": null, "LS_NAME": "Maseru", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 361324.000000, "MAX_POP20": 361324.000000, "MAX_POP50": 361324.000000, "MAX_POP300": 361324.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 141.000000, "MAX_AREAKM": 141.000000, "MIN_AREAMI": 54.000000, "MAX_AREAMI": 54.000000, "MIN_PERKM": 177.000000, "MAX_PERKM": 177.000000, "MIN_PERMI": 110.000000, "MAX_PERMI": 110.000000, "MIN_BBXMIN": 27.458333, "MAX_BBXMIN": 27.458333, "MIN_BBXMAX": 27.616667, "MAX_BBXMAX": 27.616667, "MIN_BBYMIN": -29.525000, "MAX_BBYMIN": -29.525000, "MIN_BBYMAX": -29.241667, "MAX_BBYMAX": -29.241667, "MEAN_BBXC": 27.536702, "MEAN_BBYC": -29.350222, "COMPARE": 0, "GN_ASCII": "Maseru", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 14.000000, "GN_POP": 118355.000000, "ELEVATION": 0.000000, "GTOPO30": 1482.000000, "TIMEZONE": "Africa\/Maseru", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3059423.963483, -3416013.661374 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Antananarivo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Antananarivo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Madagascar", "SOV_A3": "MDG", "ADM0NAME": "Madagascar", "ADM0_A3": "MDG", "ADM1NAME": "Antananarivo", "ISO_A2": "MG", "NOTE": null, "LATITUDE": -18.916637, "LONGITUDE": 47.516624, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1697000, "POP_MIN": 1391433, "POP_OTHER": 1844658, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1070940.000000, "MEGANAME": "Antananarivo", "LS_NAME": "Antananarivo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1727538.000000, "MAX_POP20": 1727538.000000, "MAX_POP50": 1727538.000000, "MAX_POP300": 1727538.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 700.000000, "MAX_AREAKM": 700.000000, "MIN_AREAMI": 270.000000, "MAX_AREAMI": 270.000000, "MIN_PERKM": 699.000000, "MAX_PERKM": 699.000000, "MIN_PERMI": 434.000000, "MAX_PERMI": 434.000000, "MIN_BBXMIN": 47.233333, "MAX_BBXMIN": 47.233333, "MIN_BBXMAX": 47.625000, "MAX_BBXMAX": 47.625000, "MIN_BBYMIN": -19.166667, "MAX_BBYMIN": -19.166667, "MIN_BBYMAX": -18.625000, "MAX_BBYMAX": -18.625000, "MEAN_BBXC": 47.476707, "MEAN_BBYC": -18.875473, "COMPARE": 0, "GN_ASCII": "Antananarivo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 1391433.000000, "ELEVATION": 0.000000, "GTOPO30": 1289.000000, "TIMEZONE": "Indian\/Antananarivo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 345, "UN_ADM0": "Madagascar", "UN_LAT": -18.900000, "UN_LONG": 47.520000, "POP1950": 177.000000, "POP1955": 189.000000, "POP1960": 252.000000, "POP1965": 298.000000, "POP1970": 363.000000, "POP1975": 454.000000, "POP1980": 580.000000, "POP1985": 742.000000, "POP1990": 948.000000, "POP1995": 1169.000000, "POP2000": 1361.000000, "POP2005": 1590.000000, "POP2010": 1697.000000, "POP2015": 1877.000000, "POP2020": 2229.000000, "POP2025": 2642.000000, "POP2050": 3118.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5289309.764789, -2144894.790622 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Quito", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Quito", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ecuador", "SOV_A3": "ECU", "ADM0NAME": "Ecuador", "ADM0_A3": "ECU", "ADM1NAME": "Pichincha", "ISO_A2": "EC", "NOTE": null, "LATITUDE": -0.214988, "LONGITUDE": -78.500051, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1701000, "POP_MIN": 1399814, "POP_OTHER": 1435528, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3652462.000000, "MEGANAME": "Quito", "LS_NAME": "Quito", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1472051.000000, "MAX_POP20": 1892286.000000, "MAX_POP50": 1892286.000000, "MAX_POP300": 1892286.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 334.000000, "MAX_AREAKM": 496.000000, "MIN_AREAMI": 129.000000, "MAX_AREAMI": 191.000000, "MIN_PERKM": 233.000000, "MAX_PERKM": 359.000000, "MIN_PERMI": 145.000000, "MAX_PERMI": 223.000000, "MIN_BBXMIN": -78.591667, "MAX_BBXMIN": -78.591667, "MIN_BBXMAX": -78.291667, "MAX_BBXMAX": -78.291667, "MIN_BBYMIN": -0.391667, "MAX_BBYMIN": -0.302570, "MIN_BBYMAX": 0.025000, "MAX_BBYMAX": 0.025000, "MEAN_BBXC": -78.460061, "MEAN_BBYC": -0.198438, "COMPARE": 0, "GN_ASCII": "Quito", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 18.000000, "GN_POP": 1399814.000000, "ELEVATION": 0.000000, "GTOPO30": 2764.000000, "TIMEZONE": "America\/Guayaquil", "GEONAMESNO": "GeoNames match general.", "UN_FID": 178, "UN_ADM0": "Ecuador", "UN_LAT": -0.220000, "UN_LONG": -78.520000, "POP1950": 206.000000, "POP1955": 257.000000, "POP1960": 319.000000, "POP1965": 399.000000, "POP1970": 501.000000, "POP1975": 628.000000, "POP1980": 780.000000, "POP1985": 936.000000, "POP1990": 1088.000000, "POP1995": 1217.000000, "POP2000": 1357.000000, "POP2005": 1593.000000, "POP2010": 1701.000000, "POP2015": 1846.000000, "POP2020": 2035.000000, "POP2025": 2189.000000, "POP2050": 2316.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8738802.328634, -23715.817454 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "San Jose", "NAMEPAR": null, "NAMEALT": "San José", "DIFFASCII": 0, "NAMEASCII": "San Jose", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Costa Rica", "SOV_A3": "CRI", "ADM0NAME": "Costa Rica", "ADM0_A3": "CRI", "ADM1NAME": "San José", "ISO_A2": "CR", "NOTE": null, "LATITUDE": 9.935012, "LONGITUDE": -84.084051, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1284000, "POP_MIN": 1724, "POP_OTHER": 1434681, "RANK_MAX": 12, "RANK_MIN": 3, "GEONAMEID": 3669623.000000, "MEGANAME": "San José", "LS_NAME": "San Jose1", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1450902.000000, "MAX_POP20": 1826034.000000, "MAX_POP50": 1826034.000000, "MAX_POP300": 1826034.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 264.000000, "MAX_AREAKM": 431.000000, "MIN_AREAMI": 102.000000, "MAX_AREAMI": 166.000000, "MIN_PERKM": 136.000000, "MAX_PERKM": 270.000000, "MIN_PERMI": 84.000000, "MAX_PERMI": 168.000000, "MIN_BBXMIN": -84.366667, "MAX_BBXMIN": -84.166667, "MIN_BBXMAX": -83.983333, "MAX_BBXMAX": -83.975000, "MIN_BBYMIN": 9.841667, "MAX_BBYMIN": 9.841667, "MIN_BBYMAX": 10.041667, "MAX_BBYMAX": 10.050000, "MEAN_BBXC": -84.111698, "MEAN_BBYC": 9.959268, "COMPARE": 0, "GN_ASCII": "San Jose", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 37.000000, "GN_POP": 1724.000000, "ELEVATION": 0.000000, "GTOPO30": 1468.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 171, "UN_ADM0": "Costa Rica", "UN_LAT": 9.930000, "UN_LONG": -84.070000, "POP1950": 148.000000, "POP1955": 184.000000, "POP1960": 230.000000, "POP1965": 287.000000, "POP1970": 359.000000, "POP1975": 440.000000, "POP1980": 526.000000, "POP1985": 627.000000, "POP1990": 737.000000, "POP1995": 867.000000, "POP2000": 1032.000000, "POP2005": 1217.000000, "POP2010": 1284.000000, "POP2015": 1374.000000, "POP2020": 1506.000000, "POP2025": 1627.000000, "POP2050": 1737.000000, "CITYALT": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -9360410.392403, 1111764.632919 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "San Salvador", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "San Salvador", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "El Salvador", "SOV_A3": "SLV", "ADM0NAME": "El Salvador", "ADM0_A3": "SLV", "ADM1NAME": "San Salvador", "ISO_A2": "SV", "NOTE": null, "LATITUDE": 13.710002, "LONGITUDE": -89.203041, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1433000, "POP_MIN": 2807, "POP_OTHER": 2139587, "RANK_MAX": 12, "RANK_MIN": 4, "GEONAMEID": 1690681.000000, "MEGANAME": "San Salvador", "LS_NAME": "San Salvador", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2150614.000000, "MAX_POP20": 2150614.000000, "MAX_POP50": 2150614.000000, "MAX_POP300": 2150614.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 379.000000, "MAX_AREAKM": 379.000000, "MIN_AREAMI": 146.000000, "MAX_AREAMI": 146.000000, "MIN_PERKM": 347.000000, "MAX_PERKM": 347.000000, "MIN_PERMI": 215.000000, "MAX_PERMI": 215.000000, "MIN_BBXMIN": -89.316667, "MAX_BBXMIN": -89.316667, "MIN_BBXMAX": -88.966667, "MAX_BBXMAX": -88.966667, "MIN_BBYMIN": 13.591667, "MAX_BBYMIN": 13.591667, "MIN_BBYMAX": 13.900000, "MAX_BBYMAX": 13.900000, "MEAN_BBXC": -89.176042, "MEAN_BBYC": 13.738798, "COMPARE": 0, "GN_ASCII": "San Salvador", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 30.000000, "GN_POP": 2807.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Asia\/Manila", "GEONAMESNO": "GeoNames match general.", "UN_FID": 179, "UN_ADM0": "El Salvador", "UN_LAT": 13.700000, "UN_LONG": -89.200000, "POP1950": 194.000000, "POP1955": 246.000000, "POP1960": 311.000000, "POP1965": 394.000000, "POP1970": 500.000000, "POP1975": 596.000000, "POP1980": 701.000000, "POP1985": 825.000000, "POP1990": 970.000000, "POP1995": 1107.000000, "POP2000": 1233.000000, "POP2005": 1374.000000, "POP2010": 1433.000000, "POP2015": 1520.000000, "POP2020": 1649.000000, "POP2025": 1776.000000, "POP2050": 1902.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9930253.737906, 1541189.594922 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Kingston", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kingston", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Jamaica", "SOV_A3": "JAM", "ADM0NAME": "Jamaica", "ADM0_A3": "JAM", "ADM1NAME": "Kingston", "ISO_A2": "JM", "NOTE": null, "LATITUDE": 17.977077, "LONGITUDE": -76.767434, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 937700, "POP_MIN": 664973, "POP_OTHER": 18171, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3489854.000000, "MEGANAME": null, "LS_NAME": "Kingston1", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 664973.000000, "MAX_POP20": 664973.000000, "MAX_POP50": 664973.000000, "MAX_POP300": 664973.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 120.000000, "MAX_AREAKM": 120.000000, "MIN_AREAMI": 46.000000, "MAX_AREAMI": 46.000000, "MIN_PERKM": 69.000000, "MAX_PERKM": 69.000000, "MIN_PERMI": 43.000000, "MAX_PERMI": 43.000000, "MIN_BBXMIN": -76.866667, "MAX_BBXMIN": -76.866667, "MIN_BBXMAX": -76.733333, "MAX_BBXMAX": -76.733333, "MIN_BBYMIN": 17.958333, "MAX_BBYMIN": 17.958333, "MIN_BBYMAX": 18.083333, "MAX_BBYMAX": 18.083333, "MEAN_BBXC": -76.798044, "MEAN_BBYC": 18.018509, "COMPARE": 0, "GN_ASCII": "Kingston", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 937700.000000, "ELEVATION": 0.000000, "GTOPO30": 54.000000, "TIMEZONE": "America\/Jamaica", "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8545711.630512, 2034865.578242 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Ndjamena", "NAMEPAR": null, "NAMEALT": "N'Djaména", "DIFFASCII": 0, "NAMEASCII": "Ndjamena", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Chad", "SOV_A3": "TCD", "ADM0NAME": "Chad", "ADM0_A3": "TCD", "ADM1NAME": "Hadjer-Lamis", "ISO_A2": "TD", "NOTE": null, "LATITUDE": 12.113097, "LONGITUDE": 15.049148, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 989000, "POP_MIN": 681387, "POP_OTHER": 686347, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2427123.000000, "MEGANAME": "N'Djaména", "LS_NAME": "Ndjamena", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 681387.000000, "MAX_POP20": 681387.000000, "MAX_POP50": 681387.000000, "MAX_POP300": 681387.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 79.000000, "MAX_AREAKM": 79.000000, "MIN_AREAMI": 30.000000, "MAX_AREAMI": 30.000000, "MIN_PERKM": 66.000000, "MAX_PERKM": 66.000000, "MIN_PERMI": 41.000000, "MAX_PERMI": 41.000000, "MIN_BBXMIN": 15.025000, "MAX_BBXMIN": 15.025000, "MIN_BBXMAX": 15.133333, "MAX_BBXMAX": 15.133333, "MIN_BBYMIN": 12.066667, "MAX_BBYMIN": 12.066667, "MIN_BBYMAX": 12.183333, "MAX_BBYMAX": 12.183333, "MEAN_BBXC": 15.079167, "MEAN_BBYC": 12.120479, "COMPARE": 0, "GN_ASCII": "N'Djamena", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 721081.000000, "ELEVATION": 0.000000, "GTOPO30": 290.000000, "TIMEZONE": "Africa\/Ndjamena", "GEONAMESNO": "GeoNames match general.", "UN_FID": 16, "UN_ADM0": "Chad", "UN_LAT": 12.100000, "UN_LONG": 15.240000, "POP1950": 22.000000, "POP1955": 40.000000, "POP1960": 71.000000, "POP1965": 109.000000, "POP1970": 155.000000, "POP1975": 231.000000, "POP1980": 324.000000, "POP1985": 393.000000, "POP1990": 477.000000, "POP1995": 579.000000, "POP2000": 711.000000, "POP2005": 902.000000, "POP2010": 989.000000, "POP2015": 1127.000000, "POP2020": 1405.000000, "POP2025": 1753.000000, "POP2050": 2172.000000, "CITYALT": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 1675046.915205, 1358803.776628 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Malabo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Malabo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Equatorial Guinea", "SOV_A3": "GNQ", "ADM0NAME": "Equatorial Guinea", "ADM0_A3": "GNQ", "ADM1NAME": "Bioko Norte", "ISO_A2": "GQ", "NOTE": null, "LATITUDE": 3.750015, "LONGITUDE": 8.783278, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 155963, "POP_MIN": 155963, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 2309527.000000, "MEGANAME": null, "LS_NAME": "Malabo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 314.000000, "MAX_POP20": 314.000000, "MAX_POP50": 314.000000, "MAX_POP300": 314.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1.000000, "MAX_AREAKM": 1.000000, "MIN_AREAMI": 0.000000, "MAX_AREAMI": 0.000000, "MIN_PERKM": 4.000000, "MAX_PERKM": 4.000000, "MIN_PERMI": 2.000000, "MAX_PERMI": 2.000000, "MIN_BBXMIN": 8.658333, "MAX_BBXMIN": 8.658333, "MIN_BBXMAX": 8.666667, "MAX_BBXMAX": 8.666667, "MIN_BBYMIN": 3.350000, "MAX_BBYMIN": 3.350000, "MIN_BBYMAX": 3.358333, "MAX_BBYMAX": 3.358333, "MEAN_BBXC": 8.662500, "MEAN_BBYC": 3.354167, "COMPARE": 0, "GN_ASCII": "Malabo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 155963.000000, "ELEVATION": 0.000000, "GTOPO30": 111.000000, "TIMEZONE": "Africa\/Malabo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 977749.983896, 417748.150280 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Asmara", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Asmara", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Eritrea", "SOV_A3": "ERI", "ADM0NAME": "Eritrea", "ADM0_A3": "ERI", "ADM1NAME": "Anseba", "ISO_A2": "ER", "NOTE": null, "LATITUDE": 15.333339, "LONGITUDE": 38.933324, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 620802, "POP_MIN": 563930, "POP_OTHER": 587094, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 343300.000000, "MEGANAME": null, "LS_NAME": "Asmara", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 620802.000000, "MAX_POP20": 620802.000000, "MAX_POP50": 620802.000000, "MAX_POP300": 620802.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 90.000000, "MAX_AREAKM": 90.000000, "MIN_AREAMI": 35.000000, "MAX_AREAMI": 35.000000, "MIN_PERKM": 93.000000, "MAX_PERKM": 93.000000, "MIN_PERMI": 58.000000, "MAX_PERMI": 58.000000, "MIN_BBXMIN": 38.858333, "MAX_BBXMIN": 38.858333, "MIN_BBXMAX": 38.975000, "MAX_BBXMAX": 38.975000, "MIN_BBYMIN": 15.225000, "MAX_BBYMIN": 15.225000, "MIN_BBYMAX": 15.408333, "MAX_BBYMAX": 15.408333, "MEAN_BBXC": 38.926873, "MEAN_BBYC": 15.327408, "COMPARE": 0, "GN_ASCII": "Asmara", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 563930.000000, "ELEVATION": 0.000000, "GTOPO30": 2360.000000, "TIMEZONE": "Africa\/Asmara", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4334037.749777, 1727646.485833 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Zagreb", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Zagreb", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Croatia", "SOV_A3": "HRV", "ADM0NAME": "Croatia", "ADM0_A3": "HRV", "ADM1NAME": "Grad Zagreb", "ISO_A2": "HR", "NOTE": null, "LATITUDE": 45.800007, "LONGITUDE": 15.999995, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 722526, "POP_MIN": 698966, "POP_OTHER": 690638, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3186886.000000, "MEGANAME": null, "LS_NAME": "Zagreb", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 722526.000000, "MAX_POP20": 722526.000000, "MAX_POP50": 722526.000000, "MAX_POP300": 722526.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 244.000000, "MAX_AREAKM": 244.000000, "MIN_AREAMI": 94.000000, "MAX_AREAMI": 94.000000, "MIN_PERKM": 223.000000, "MAX_PERKM": 223.000000, "MIN_PERMI": 138.000000, "MAX_PERMI": 138.000000, "MIN_BBXMIN": 15.825000, "MAX_BBXMIN": 15.825000, "MIN_BBXMAX": 16.191667, "MAX_BBXMAX": 16.191667, "MIN_BBYMIN": 45.683333, "MAX_BBYMIN": 45.683333, "MIN_BBYMAX": 45.908333, "MAX_BBYMAX": 45.908333, "MEAN_BBXC": 16.005419, "MEAN_BBYC": 45.803305, "COMPARE": 0, "GN_ASCII": "Zagreb", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 21.000000, "GN_POP": 698966.000000, "ELEVATION": 0.000000, "GTOPO30": 131.000000, "TIMEZONE": "Europe\/Zagreb", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1781111.259164, 5748357.876734 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Tallinn", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tallinn", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Estonia", "SOV_A3": "EST", "ADM0NAME": "Estonia", "ADM0_A3": "EST", "ADM1NAME": "Harju", "ISO_A2": "EE", "NOTE": null, "LATITUDE": 59.433877, "LONGITUDE": 24.728041, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 394024, "POP_MIN": 340027, "POP_OTHER": 317949, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 588409.000000, "MEGANAME": null, "LS_NAME": "Tallinn", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 340027.000000, "MAX_POP20": 340027.000000, "MAX_POP50": 340027.000000, "MAX_POP300": 340027.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 130.000000, "MAX_AREAKM": 130.000000, "MIN_AREAMI": 50.000000, "MAX_AREAMI": 50.000000, "MIN_PERKM": 164.000000, "MAX_PERKM": 164.000000, "MIN_PERMI": 102.000000, "MAX_PERMI": 102.000000, "MIN_BBXMIN": 24.591667, "MAX_BBXMIN": 24.591667, "MIN_BBXMAX": 24.916667, "MAX_BBXMAX": 24.916667, "MIN_BBYMIN": 59.333333, "MAX_BBYMIN": 59.333333, "MIN_BBYMAX": 59.525000, "MAX_BBYMAX": 59.525000, "MEAN_BBXC": 24.746591, "MEAN_BBYC": 59.427090, "COMPARE": 0, "GN_ASCII": "Tallinn", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 394024.000000, "ELEVATION": 0.000000, "GTOPO30": 22.000000, "TIMEZONE": "Europe\/Tallinn", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2752712.902320, 8274761.293931 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Lilongwe", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lilongwe", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Malawi", "SOV_A3": "MWI", "ADM0NAME": "Malawi", "ADM0_A3": "MWI", "ADM1NAME": "Lilongwe", "ISO_A2": "MW", "NOTE": null, "LATITUDE": -13.983295, "LONGITUDE": 33.783302, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 646750, "POP_MIN": 646750, "POP_OTHER": 1061388, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 927967.000000, "MEGANAME": null, "LS_NAME": "Lilongwe", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 965164.000000, "MAX_POP20": 912521.000000, "MAX_POP50": 989470.000000, "MAX_POP300": 989470.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1100.000000, "MAX_AREAKM": 1373.000000, "MIN_AREAMI": 425.000000, "MAX_AREAMI": 530.000000, "MIN_PERKM": 1360.000000, "MAX_PERKM": 1658.000000, "MIN_PERMI": 845.000000, "MAX_PERMI": 1030.000000, "MIN_BBXMIN": 33.508333, "MAX_BBXMIN": 33.508333, "MIN_BBXMAX": 34.187755, "MAX_BBXMAX": 34.608333, "MIN_BBYMIN": -14.433333, "MAX_BBYMIN": -14.408333, "MIN_BBYMAX": -13.691667, "MAX_BBYMAX": -13.641667, "MEAN_BBXC": 33.888699, "MEAN_BBYC": -14.028166, "COMPARE": 0, "GN_ASCII": "Lilongwe", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 646750.000000, "ELEVATION": 0.000000, "GTOPO30": 1025.000000, "TIMEZONE": "Africa\/Blantyre", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3760739.971500, -1572300.104343 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Guatemala", "NAMEPAR": null, "NAMEALT": "Ciudad de Guatemala (Guatemala City)", "DIFFASCII": 0, "NAMEASCII": "Guatemala", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Guatemala", "SOV_A3": "GTM", "ADM0NAME": "Guatemala", "ADM0_A3": "GTM", "ADM1NAME": "Guatemala", "ISO_A2": "GT", "NOTE": null, "LATITUDE": 14.621135, "LONGITUDE": -90.526966, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1024000, "POP_MIN": 994938, "POP_OTHER": 2391150, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 3598132.000000, "MEGANAME": "Ciudad de Guatemala (Guatemala City)", "LS_NAME": "Guatemala", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2420941.000000, "MAX_POP20": 2417882.000000, "MAX_POP50": 2419489.000000, "MAX_POP300": 2419489.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 410.000000, "MAX_AREAKM": 419.000000, "MIN_AREAMI": 158.000000, "MAX_AREAMI": 162.000000, "MIN_PERKM": 274.000000, "MAX_PERKM": 288.000000, "MIN_PERMI": 170.000000, "MAX_PERMI": 179.000000, "MIN_BBXMIN": -90.658333, "MAX_BBXMIN": -90.658333, "MIN_BBXMAX": -90.425000, "MAX_BBXMAX": -90.425000, "MIN_BBYMIN": 14.433333, "MAX_BBYMIN": 14.441667, "MIN_BBYMAX": 14.783333, "MAX_BBYMAX": 14.783333, "MEAN_BBXC": -90.544190, "MEAN_BBYC": 14.603015, "COMPARE": 0, "GN_ASCII": "Guatemala City", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 994938.000000, "ELEVATION": 0.000000, "GTOPO30": 1533.000000, "TIMEZONE": "America\/Guatemala", "GEONAMESNO": "GeoNames match general.", "UN_FID": 206, "UN_ADM0": "Guatemala", "UN_LAT": 14.610000, "UN_LONG": -90.520000, "POP1950": 287.000000, "POP1955": 370.000000, "POP1960": 476.000000, "POP1965": 592.000000, "POP1970": 660.000000, "POP1975": 715.000000, "POP1980": 749.000000, "POP1985": 776.000000, "POP1990": 803.000000, "POP1995": 839.000000, "POP2000": 908.000000, "POP2005": 984.000000, "POP2010": 1024.000000, "POP2015": 1104.000000, "POP2020": 1281.000000, "POP2025": 1481.000000, "POP2050": 1690.000000, "CITYALT": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -10077632.323187, 1645799.447189 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Libreville", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Libreville", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Gabon", "SOV_A3": "GAB", "ADM0NAME": "Gabon", "ADM0_A3": "GAB", "ADM1NAME": "Estuaire", "ISO_A2": "GA", "NOTE": null, "LATITUDE": 0.385389, "LONGITUDE": 9.457965, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 578156, "POP_MIN": 483355, "POP_OTHER": 483522, "RANK_MAX": 11, "RANK_MIN": 10, "GEONAMEID": 2399697.000000, "MEGANAME": null, "LS_NAME": "Libreville", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 483355.000000, "MAX_POP20": 483355.000000, "MAX_POP50": 483355.000000, "MAX_POP300": 483355.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 108.000000, "MAX_AREAKM": 108.000000, "MIN_AREAMI": 42.000000, "MAX_AREAMI": 42.000000, "MIN_PERKM": 98.000000, "MAX_PERKM": 98.000000, "MIN_PERMI": 61.000000, "MAX_PERMI": 61.000000, "MIN_BBXMIN": 9.400000, "MAX_BBXMIN": 9.400000, "MIN_BBXMAX": 9.525000, "MAX_BBXMAX": 9.525000, "MIN_BBYMIN": 0.283333, "MAX_BBYMIN": 0.283333, "MIN_BBYMAX": 0.483333, "MAX_BBYMAX": 0.483333, "MEAN_BBXC": 9.473280, "MEAN_BBYC": 0.395238, "COMPARE": 0, "GN_ASCII": "Libreville", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 578156.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Africa\/Libreville", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1052855.852841, 42901.587292 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Suva", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Suva", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Fiji", "SOV_A3": "FJI", "ADM0NAME": "Fiji", "ADM0_A3": "FJI", "ADM1NAME": "Central", "ISO_A2": "FJ", "NOTE": null, "LATITUDE": -18.133016, "LONGITUDE": 178.441707, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 175399, "POP_MIN": 88271, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 2198148.000000, "MEGANAME": null, "LS_NAME": "Suva", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 143230.000000, "MAX_POP20": 143230.000000, "MAX_POP50": 143230.000000, "MAX_POP300": 143230.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 53.000000, "MAX_AREAKM": 53.000000, "MIN_AREAMI": 20.000000, "MAX_AREAMI": 20.000000, "MIN_PERKM": 56.000000, "MAX_PERKM": 56.000000, "MIN_PERMI": 35.000000, "MAX_PERMI": 35.000000, "MIN_BBXMIN": 178.425000, "MAX_BBXMIN": 178.425000, "MIN_BBXMAX": 178.533333, "MAX_BBXMAX": 178.533333, "MIN_BBYMIN": -18.166667, "MAX_BBYMIN": -18.166667, "MIN_BBYMAX": -18.025000, "MAX_BBYMAX": -18.025000, "MEAN_BBXC": 178.472885, "MEAN_BBYC": -18.106731, "COMPARE": 0, "GN_ASCII": "Suva", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 77366.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Pacific\/Fiji", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19864039.994630, -2053123.714411 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital alt", "NAME": "Valparaiso", "NAMEPAR": null, "NAMEALT": "Valparaíso", "DIFFASCII": 0, "NAMEASCII": "Valparaiso", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Legislative cap", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Chile", "SOV_A3": "CHL", "ADM0NAME": "Chile", "ADM0_A3": "CHL", "ADM1NAME": "Valparaíso", "ISO_A2": "CL", "NOTE": null, "LATITUDE": -33.047764, "LONGITUDE": -71.621014, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 854000, "POP_MIN": 15938, "POP_OTHER": 130815, "RANK_MAX": 11, "RANK_MIN": 6, "GEONAMEID": 3445575.000000, "MEGANAME": "Valparaíso", "LS_NAME": "Valparaiso2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 144390.000000, "MAX_POP20": 637860.000000, "MAX_POP50": 637860.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 34.000000, "MAX_AREAKM": 184.000000, "MIN_AREAMI": 13.000000, "MAX_AREAMI": 71.000000, "MIN_PERKM": 33.000000, "MAX_PERKM": 151.000000, "MIN_PERMI": 21.000000, "MAX_PERMI": 94.000000, "MIN_BBXMIN": -71.658333, "MAX_BBXMIN": -71.658333, "MIN_BBXMAX": -71.574410, "MAX_BBXMAX": -71.325000, "MIN_BBYMIN": -33.075000, "MAX_BBYMIN": -33.075000, "MIN_BBYMAX": -33.016667, "MAX_BBYMAX": -32.916667, "MEAN_BBXC": -71.541251, "MEAN_BBYC": -33.034648, "COMPARE": 0, "GN_ASCII": "Valparaiso", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 27.000000, "GN_POP": 15938.000000, "ELEVATION": 0.000000, "GTOPO30": 405.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 18, "UN_ADM0": "Chile", "UN_LAT": -33.020000, "UN_LONG": -71.550000, "POP1950": 328.000000, "POP1955": 377.000000, "POP1960": 433.000000, "POP1965": 481.000000, "POP1970": 532.000000, "POP1975": 581.000000, "POP1980": 635.000000, "POP1985": 685.000000, "POP1990": 733.000000, "POP1995": 771.000000, "POP2000": 803.000000, "POP2005": 838.000000, "POP2010": 854.000000, "POP2015": 880.000000, "POP2020": 922.000000, "POP2025": 956.000000, "POP2050": 982.000000, "CITYALT": "Valparaiso" }, "geometry": { "type": "Point", "coordinates": [ -7973031.379700, -3901387.197631 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Nouakchott", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nouakchott", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Mauritania", "SOV_A3": "MRT", "ADM0NAME": "Mauritania", "ADM0_A3": "MRT", "ADM1NAME": "Nouakchott", "ISO_A2": "MR", "NOTE": null, "LATITUDE": 18.086427, "LONGITUDE": -15.975340, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 742144, "POP_MIN": 661400, "POP_OTHER": 742144, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2377450.000000, "MEGANAME": null, "LS_NAME": "Nouakchott", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 742144.000000, "MAX_POP20": 742144.000000, "MAX_POP50": 742144.000000, "MAX_POP300": 742144.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 98.000000, "MAX_AREAKM": 98.000000, "MIN_AREAMI": 38.000000, "MAX_AREAMI": 38.000000, "MIN_PERKM": 92.000000, "MAX_PERKM": 92.000000, "MIN_PERMI": 57.000000, "MAX_PERMI": 57.000000, "MIN_BBXMIN": -16.016667, "MAX_BBXMIN": -16.016667, "MIN_BBXMAX": -15.891667, "MAX_BBXMAX": -15.891667, "MIN_BBYMIN": 18.033333, "MAX_BBYMIN": 18.033333, "MIN_BBYMAX": 18.150000, "MAX_BBYMAX": 18.150000, "MEAN_BBXC": -15.960139, "MEAN_BBYC": 18.092569, "COMPARE": 0, "GN_ASCII": "Nouakchott", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 6.000000, "GN_POP": 661400.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Africa\/Nouakchott", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1778366.760234, 2047667.159134 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Bamako", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bamako", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Mali", "SOV_A3": "MLI", "ADM0NAME": "Mali", "ADM0_A3": "MLI", "ADM1NAME": "Bamako", "ISO_A2": "ML", "NOTE": null, "LATITUDE": 12.650015, "LONGITUDE": -8.000039, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1494000, "POP_MIN": 1297281, "POP_OTHER": 1301407, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2460596.000000, "MEGANAME": "Bamako", "LS_NAME": "Bamako", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1316564.000000, "MAX_POP20": 1316564.000000, "MAX_POP50": 1316564.000000, "MAX_POP300": 1316564.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 172.000000, "MAX_AREAKM": 172.000000, "MIN_AREAMI": 66.000000, "MAX_AREAMI": 66.000000, "MIN_PERKM": 106.000000, "MAX_PERKM": 106.000000, "MIN_PERMI": 66.000000, "MAX_PERMI": 66.000000, "MIN_BBXMIN": -8.058333, "MAX_BBXMIN": -8.058333, "MIN_BBXMAX": -7.908333, "MAX_BBXMAX": -7.908333, "MIN_BBYMIN": 12.541667, "MAX_BBYMIN": 12.541667, "MIN_BBYMAX": 12.716667, "MAX_BBYMAX": 12.716667, "MEAN_BBXC": -7.987419, "MEAN_BBYC": 12.626173, "COMPARE": 0, "GN_ASCII": "Bamako", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 1297281.000000, "ELEVATION": 0.000000, "GTOPO30": 350.000000, "TIMEZONE": "Africa\/Bamako", "GEONAMESNO": "GeoNames match general.", "UN_FID": 349, "UN_ADM0": "Mali", "UN_LAT": 12.650000, "UN_LONG": -7.980000, "POP1950": 89.000000, "POP1955": 111.000000, "POP1960": 130.000000, "POP1965": 158.000000, "POP1970": 222.000000, "POP1975": 363.000000, "POP1980": 489.000000, "POP1985": 608.000000, "POP1990": 746.000000, "POP1995": 910.000000, "POP2000": 1110.000000, "POP2005": 1368.000000, "POP2010": 1494.000000, "POP2015": 1708.000000, "POP2020": 2130.000000, "POP2025": 2633.000000, "POP2050": 3214.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -890776.891444, 1419997.190998 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Beirut", "NAMEPAR": null, "NAMEALT": "Bayrut", "DIFFASCII": 0, "NAMEASCII": "Beirut", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Lebanon", "SOV_A3": "LBN", "ADM0NAME": "Lebanon", "ADM0_A3": "LBN", "ADM1NAME": "Beirut", "ISO_A2": "LB", "NOTE": null, "LATITUDE": 33.871975, "LONGITUDE": 35.509708, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1846000, "POP_MIN": 1712125, "POP_OTHER": 1661980, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 276781.000000, "MEGANAME": "Bayrut", "LS_NAME": "Beirut", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1712125.000000, "MAX_POP20": 1712468.000000, "MAX_POP50": 1740692.000000, "MAX_POP300": 1740692.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 429.000000, "MAX_AREAKM": 471.000000, "MIN_AREAMI": 166.000000, "MAX_AREAMI": 182.000000, "MIN_PERKM": 403.000000, "MAX_PERKM": 457.000000, "MIN_PERMI": 251.000000, "MAX_PERMI": 284.000000, "MIN_BBXMIN": 35.441667, "MAX_BBXMIN": 35.441667, "MIN_BBXMAX": 35.718541, "MAX_BBXMAX": 35.758333, "MIN_BBYMIN": 33.700000, "MAX_BBYMIN": 33.700000, "MIN_BBYMAX": 34.166667, "MAX_BBYMAX": 34.166667, "MEAN_BBXC": 35.600789, "MEAN_BBYC": 33.892807, "COMPARE": 0, "GN_ASCII": "Beirut", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 1916100.000000, "ELEVATION": 0.000000, "GTOPO30": 56.000000, "TIMEZONE": "Asia\/Beirut", "GEONAMESNO": "GeoNames match general.", "UN_FID": 341, "UN_ADM0": "Lebanon", "UN_LAT": 33.880000, "UN_LONG": 35.490000, "POP1950": 322.000000, "POP1955": 425.000000, "POP1960": 561.000000, "POP1965": 733.000000, "POP1970": 923.000000, "POP1975": 1500.000000, "POP1980": 1623.000000, "POP1985": 1585.000000, "POP1990": 1293.000000, "POP1995": 1268.000000, "POP2000": 1487.000000, "POP2005": 1777.000000, "POP2010": 1846.000000, "POP2015": 1941.000000, "POP2020": 2051.000000, "POP2025": 2119.000000, "POP2050": 2173.000000, "CITYALT": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 3952706.024163, 4011885.231190 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Tbilisi", "NAMEPAR": null, "NAMEALT": "T'Bilisi", "DIFFASCII": 0, "NAMEASCII": "Tbilisi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Georgia", "SOV_A3": "GEO", "ADM0NAME": "Georgia", "ADM0_A3": "GEO", "ADM1NAME": "Tbilisi", "ISO_A2": "GE", "NOTE": null, "LATITUDE": 41.725010, "LONGITUDE": 44.790795, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1100000, "POP_MIN": 1005257, "POP_OTHER": 977179, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 611717.000000, "MEGANAME": "Tbilisi", "LS_NAME": "Tbilisi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1005257.000000, "MAX_POP20": 1005257.000000, "MAX_POP50": 1007529.000000, "MAX_POP300": 1007529.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 131.000000, "MAX_AREAKM": 135.000000, "MIN_AREAMI": 51.000000, "MAX_AREAMI": 52.000000, "MIN_PERKM": 128.000000, "MAX_PERKM": 133.000000, "MIN_PERMI": 80.000000, "MAX_PERMI": 83.000000, "MIN_BBXMIN": 44.708333, "MAX_BBXMIN": 44.708333, "MIN_BBXMAX": 44.933333, "MAX_BBXMAX": 44.933333, "MIN_BBYMIN": 41.616667, "MAX_BBYMIN": 41.627355, "MIN_BBYMAX": 41.825000, "MAX_BBYMAX": 41.825000, "MEAN_BBXC": 44.822812, "MEAN_BBYC": 41.722167, "COMPARE": 0, "GN_ASCII": "Tbilisi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1049498.000000, "ELEVATION": 0.000000, "GTOPO30": 420.000000, "TIMEZONE": "Asia\/Tbilisi", "GEONAMESNO": "GeoNames match general.", "UN_FID": 191, "UN_ADM0": "Georgia", "UN_LAT": 41.720000, "UN_LONG": 44.780000, "POP1950": 612.000000, "POP1955": 659.000000, "POP1960": 718.000000, "POP1965": 803.000000, "POP1970": 897.000000, "POP1975": 992.000000, "POP1980": 1090.000000, "POP1985": 1177.000000, "POP1990": 1224.000000, "POP1995": 1160.000000, "POP2000": 1100.000000, "POP2005": 1093.000000, "POP2010": 1100.000000, "POP2015": 1108.000000, "POP2020": 1113.000000, "POP2025": 1114.000000, "POP2050": 1114.000000, "CITYALT": "T'Bilisi" }, "geometry": { "type": "Point", "coordinates": [ 4985871.929686, 5120166.100181 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Astana", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Astana", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Kazakhstan", "SOV_A3": "KAZ", "ADM0NAME": "Kazakhstan", "ADM0_A3": "KAZ", "ADM1NAME": "Aqmola", "ISO_A2": "KZ", "NOTE": null, "LATITUDE": 51.181125, "LONGITUDE": 71.427774, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 345604, "POP_MIN": 325021, "POP_OTHER": 317445, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 1526273.000000, "MEGANAME": null, "LS_NAME": "Astana", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 325021.000000, "MAX_POP20": 325021.000000, "MAX_POP50": 325021.000000, "MAX_POP300": 325021.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 104.000000, "MAX_AREAKM": 104.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 101.000000, "MAX_PERKM": 101.000000, "MIN_PERMI": 63.000000, "MAX_PERMI": 63.000000, "MIN_BBXMIN": 71.325000, "MAX_BBXMIN": 71.325000, "MIN_BBXMAX": 71.533333, "MAX_BBXMAX": 71.533333, "MIN_BBYMIN": 51.100000, "MAX_BBYMIN": 51.100000, "MIN_BBYMAX": 51.225000, "MAX_BBYMAX": 51.225000, "MEAN_BBXC": 71.432750, "MEAN_BBYC": 51.164443, "COMPARE": 0, "GN_ASCII": "Astana", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 345604.000000, "ELEVATION": 0.000000, "GTOPO30": 339.000000, "TIMEZONE": "Asia\/Qyzylorda", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 7951303.453496, 6653395.445643 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Vientiane", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vientiane", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Laos", "SOV_A3": "LAO", "ADM0NAME": "Laos", "ADM0_A3": "LAO", "ADM1NAME": "Vientiane [prefecture]", "ISO_A2": "LA", "NOTE": null, "LATITUDE": 17.966693, "LONGITUDE": 102.599980, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 754000, "POP_MIN": 570348, "POP_OTHER": 469811, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 1651944.000000, "MEGANAME": null, "LS_NAME": "Vientiane", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 471927.000000, "MAX_POP20": 471927.000000, "MAX_POP50": 570348.000000, "MAX_POP300": 570348.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 166.000000, "MAX_AREAKM": 243.000000, "MIN_AREAMI": 64.000000, "MAX_AREAMI": 94.000000, "MIN_PERKM": 170.000000, "MAX_PERKM": 283.000000, "MIN_PERMI": 106.000000, "MAX_PERMI": 176.000000, "MIN_BBXMIN": 102.491667, "MAX_BBXMIN": 102.491667, "MIN_BBXMAX": 102.725000, "MAX_BBXMAX": 102.816667, "MIN_BBYMIN": 17.800000, "MAX_BBYMIN": 17.875000, "MIN_BBYMAX": 18.083333, "MAX_BBYMAX": 18.083333, "MEAN_BBXC": 102.648054, "MEAN_BBYC": 17.967124, "COMPARE": 0, "GN_ASCII": "Vientiane", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 27.000000, "GN_POP": 196731.000000, "ELEVATION": 0.000000, "GTOPO30": 174.000000, "TIMEZONE": "Asia\/Vientiane", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11421377.531243, 2033650.355079 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Brazzaville", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Brazzaville", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Congo (Brazzaville)", "SOV_A3": "COG", "ADM0NAME": "Congo (Brazzaville)", "ADM0_A3": "COG", "ADM1NAME": "Pool", "ISO_A2": "CG", "NOTE": null, "LATITUDE": -4.259186, "LONGITUDE": 15.284689, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1355000, "POP_MIN": 1163890, "POP_OTHER": 1174778, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2260535.000000, "MEGANAME": "Brazzaville", "LS_NAME": "Brazzaville", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1163890.000000, "MAX_POP20": 1163890.000000, "MAX_POP50": 1163890.000000, "MAX_POP300": 1163890.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 148.000000, "MAX_AREAKM": 148.000000, "MIN_AREAMI": 57.000000, "MAX_AREAMI": 57.000000, "MIN_PERKM": 105.000000, "MAX_PERKM": 105.000000, "MIN_PERMI": 65.000000, "MAX_PERMI": 65.000000, "MIN_BBXMIN": 15.150000, "MAX_BBXMIN": 15.150000, "MIN_BBXMAX": 15.308333, "MAX_BBXMAX": 15.308333, "MIN_BBYMIN": -4.333333, "MAX_BBYMIN": -4.333333, "MIN_BBYMAX": -4.150000, "MAX_BBYMAX": -4.150000, "MEAN_BBXC": 15.244540, "MEAN_BBYC": -4.251293, "COMPARE": 0, "GN_ASCII": "Brazzaville", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 1284609.000000, "ELEVATION": 0.000000, "GTOPO30": 156.000000, "TIMEZONE": "Africa\/Brazzaville", "GEONAMESNO": "GeoNames match general.", "UN_FID": 166, "UN_ADM0": "Congo", "UN_LAT": -4.280000, "UN_LONG": 15.280000, "POP1950": 83.000000, "POP1955": 92.000000, "POP1960": 124.000000, "POP1965": 172.000000, "POP1970": 238.000000, "POP1975": 329.000000, "POP1980": 446.000000, "POP1985": 596.000000, "POP1990": 704.000000, "POP1995": 830.000000, "POP2000": 986.000000, "POP2005": 1216.000000, "POP2010": 1355.000000, "POP2015": 1505.000000, "POP2020": 1729.000000, "POP2025": 1938.000000, "POP2050": 2150.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1701267.239244, -474350.455042 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Conakry", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Conakry", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Guinea", "SOV_A3": "GIN", "ADM0NAME": "Guinea", "ADM0_A3": "GIN", "ADM1NAME": "Conakry", "ISO_A2": "GN", "NOTE": null, "LATITUDE": 9.531523, "LONGITUDE": -13.680235, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1494000, "POP_MIN": 1494000, "POP_OTHER": 1498020, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2422465.000000, "MEGANAME": "Conakry", "LS_NAME": "Conakry", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1504217.000000, "MAX_POP20": 1504217.000000, "MAX_POP50": 1504217.000000, "MAX_POP300": 1504217.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 184.000000, "MAX_AREAKM": 184.000000, "MIN_AREAMI": 71.000000, "MAX_AREAMI": 71.000000, "MIN_PERKM": 123.000000, "MAX_PERKM": 123.000000, "MIN_PERMI": 76.000000, "MAX_PERMI": 76.000000, "MIN_BBXMIN": -13.725000, "MAX_BBXMIN": -13.725000, "MIN_BBXMAX": -13.475000, "MAX_BBXMAX": -13.475000, "MIN_BBYMIN": 9.500000, "MAX_BBYMIN": 9.500000, "MIN_BBYMAX": 9.775000, "MAX_BBYMAX": 9.775000, "MEAN_BBXC": -13.588647, "MEAN_BBYC": 9.633104, "COMPARE": 0, "GN_ASCII": "Conakry", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 1767200.000000, "ELEVATION": 0.000000, "GTOPO30": 235.000000, "TIMEZONE": "Africa\/Conakry", "GEONAMESNO": "GeoNames match general.", "UN_FID": 207, "UN_ADM0": "Guinea", "UN_LAT": 9.540000, "UN_LONG": -13.670000, "POP1950": 31.000000, "POP1955": 59.000000, "POP1960": 112.000000, "POP1965": 208.000000, "POP1970": 388.000000, "POP1975": 530.000000, "POP1980": 658.000000, "POP1985": 766.000000, "POP1990": 895.000000, "POP1995": 1045.000000, "POP2000": 1219.000000, "POP2005": 1409.000000, "POP2010": 1494.000000, "POP2015": 1645.000000, "POP2020": 1984.000000, "POP2025": 2393.000000, "POP2050": 2856.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1523093.409184, 1066192.021816 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Yamoussoukro", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Yamoussoukro", "ADM0CAP": 1.000000, "CAPALT": 1.000000, "CAPIN": "Official capita", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Ivory Coast", "SOV_A3": "CIV", "ADM0NAME": "Ivory Coast", "ADM0_A3": "CIV", "ADM1NAME": "Lacs", "ISO_A2": "CI", "NOTE": null, "LATITUDE": 6.818381, "LONGITUDE": -5.275503, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 206499, "POP_MIN": 194530, "POP_OTHER": 206499, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 2279755.000000, "MEGANAME": null, "LS_NAME": "Yamoussoukro", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 206499.000000, "MAX_POP20": 206499.000000, "MAX_POP50": 206499.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 59.000000, "MAX_AREAKM": 59.000000, "MIN_AREAMI": 23.000000, "MAX_AREAMI": 23.000000, "MIN_PERKM": 52.000000, "MAX_PERKM": 52.000000, "MIN_PERMI": 32.000000, "MAX_PERMI": 32.000000, "MIN_BBXMIN": -5.308333, "MAX_BBXMIN": -5.308333, "MIN_BBXMAX": -5.216667, "MAX_BBXMAX": -5.216667, "MIN_BBYMIN": 6.783333, "MAX_BBYMIN": 6.783333, "MIN_BBYMAX": 6.891667, "MAX_BBYMAX": 6.891667, "MEAN_BBXC": -5.263708, "MEAN_BBYC": 6.831582, "COMPARE": 0, "GN_ASCII": "Yamoussoukro", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 81.000000, "GN_POP": 194530.000000, "ELEVATION": 0.000000, "GTOPO30": 219.000000, "TIMEZONE": "Africa\/Abidjan", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -587266.259204, 760816.572329 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Ottawa", "NAMEPAR": null, "NAMEALT": "Ottawa-Gatineau", "DIFFASCII": 0, "NAMEASCII": "Ottawa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Canada", "SOV_A3": "CAN", "ADM0NAME": "Canada", "ADM0_A3": "CAN", "ADM1NAME": "Ontario", "ISO_A2": "CA", "NOTE": null, "LATITUDE": 45.416697, "LONGITUDE": -75.700015, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1145000, "POP_MIN": 812129, "POP_OTHER": 872781, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 6094817.000000, "MEGANAME": "Ottawa-Gatineau", "LS_NAME": "Ottawa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 885780.000000, "MAX_POP20": 885780.000000, "MAX_POP50": 885780.000000, "MAX_POP300": 885780.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 504.000000, "MAX_AREAKM": 504.000000, "MIN_AREAMI": 195.000000, "MAX_AREAMI": 195.000000, "MIN_PERKM": 442.000000, "MAX_PERKM": 442.000000, "MIN_PERMI": 274.000000, "MAX_PERMI": 274.000000, "MIN_BBXMIN": -75.983333, "MAX_BBXMIN": -75.983333, "MIN_BBXMAX": -75.450000, "MAX_BBXMAX": -75.450000, "MIN_BBYMIN": 45.225000, "MAX_BBYMIN": 45.225000, "MIN_BBYMAX": 45.550000, "MAX_BBYMAX": 45.550000, "MEAN_BBXC": -75.717666, "MEAN_BBYC": 45.405246, "COMPARE": 0, "GN_ASCII": "Ottawa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 812129.000000, "ELEVATION": 0.000000, "GTOPO30": 61.000000, "TIMEZONE": "America\/Montreal", "GEONAMESNO": "GeoNames match general.", "UN_FID": 13, "UN_ADM0": "Canada", "UN_LAT": 45.370000, "UN_LONG": -75.650000, "POP1950": 282.000000, "POP1955": 342.000000, "POP1960": 415.000000, "POP1965": 482.000000, "POP1970": 581.000000, "POP1975": 676.000000, "POP1980": 729.000000, "POP1985": 803.000000, "POP1990": 918.000000, "POP1995": 988.000000, "POP2000": 1079.000000, "POP2005": 1119.000000, "POP2010": 1145.000000, "POP2015": 1182.000000, "POP2020": 1232.000000, "POP2025": 1274.000000, "POP2050": 1315.000000, "CITYALT": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -8427103.768362, 5687670.755433 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Belgrade", "NAMEPAR": "Beograd", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Belgrade", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Republic of Serbia", "SOV_A3": "SRB", "ADM0NAME": "Serbia", "ADM0_A3": "SRB", "ADM1NAME": "Grad Beograd", "ISO_A2": "RS", "NOTE": null, "LATITUDE": 44.818645, "LONGITUDE": 20.467991, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1099000, "POP_MIN": 1099000, "POP_OTHER": 1271541, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 792680.000000, "MEGANAME": "Beograd", "LS_NAME": "Belgrade", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1291613.000000, "MAX_POP20": 1291613.000000, "MAX_POP50": 1291613.000000, "MAX_POP300": 1291613.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 209.000000, "MAX_AREAKM": 209.000000, "MIN_AREAMI": 81.000000, "MAX_AREAMI": 81.000000, "MIN_PERKM": 184.000000, "MAX_PERKM": 184.000000, "MIN_PERMI": 114.000000, "MAX_PERMI": 114.000000, "MIN_BBXMIN": 20.316667, "MAX_BBXMIN": 20.316667, "MIN_BBXMAX": 20.575000, "MAX_BBXMAX": 20.575000, "MIN_BBYMIN": 44.691667, "MAX_BBYMIN": 44.691667, "MIN_BBYMAX": 44.900000, "MAX_BBYMAX": 44.900000, "MEAN_BBXC": 20.449561, "MEAN_BBYC": 44.794615, "COMPARE": 0, "GN_ASCII": "Belgrade", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1273651.000000, "ELEVATION": 0.000000, "GTOPO30": 90.000000, "TIMEZONE": "Europe\/Belgrade", "GEONAMESNO": "GeoNames match general.", "UN_FID": 448, "UN_ADM0": "Serbia", "UN_LAT": 44.790000, "UN_LONG": 20.410000, "POP1950": 411.000000, "POP1955": 501.000000, "POP1960": 576.000000, "POP1965": 649.000000, "POP1970": 729.000000, "POP1975": 873.000000, "POP1980": 1057.000000, "POP1985": 1121.000000, "POP1990": 1162.000000, "POP1995": 1149.000000, "POP2000": 1127.000000, "POP2005": 1106.000000, "POP2010": 1099.000000, "POP2015": 1096.000000, "POP2020": 1108.000000, "POP2025": 1132.000000, "POP2050": 1163.000000, "CITYALT": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 2278269.688139, 5593321.341036 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Bandar Seri Begawan", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bandar Seri Begawan", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Brunei", "SOV_A3": "BRN", "ADM0NAME": "Brunei", "ADM0_A3": "BRN", "ADM1NAME": "Brunei and Muara", "ISO_A2": "BN", "NOTE": null, "LATITUDE": 4.883331, "LONGITUDE": 114.933284, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 296500, "POP_MIN": 140000, "POP_OTHER": 222513, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 1820906.000000, "MEGANAME": null, "LS_NAME": "Bandar Seri Begawan", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 219674.000000, "MAX_POP20": 219674.000000, "MAX_POP50": 219674.000000, "MAX_POP300": 219674.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 145.000000, "MAX_AREAKM": 145.000000, "MIN_AREAMI": 56.000000, "MAX_AREAMI": 56.000000, "MIN_PERKM": 155.000000, "MAX_PERKM": 155.000000, "MIN_PERMI": 96.000000, "MAX_PERMI": 96.000000, "MIN_BBXMIN": 114.825000, "MAX_BBXMIN": 114.825000, "MIN_BBXMAX": 114.991667, "MAX_BBXMAX": 114.991667, "MIN_BBYMIN": 4.816667, "MAX_BBYMIN": 4.816667, "MIN_BBYMAX": 5.008333, "MAX_BBYMAX": 5.008333, "MEAN_BBXC": 114.908824, "MEAN_BBYC": 4.910245, "COMPARE": 0, "GN_ASCII": "Bandar Seri Begawan", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 64409.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Asia\/Brunei", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 12794314.656386, 544269.278275 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Sucre", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sucre", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official (const", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bolivia", "SOV_A3": "BOL", "ADM0NAME": "Bolivia", "ADM0_A3": "BOL", "ADM1NAME": "Chuquisaca", "ISO_A2": "BO", "NOTE": null, "LATITUDE": -19.040971, "LONGITUDE": -65.259516, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 224838, "POP_MIN": 221736, "POP_OTHER": 221736, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 3903987.000000, "MEGANAME": null, "LS_NAME": "Sucre", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 221736.000000, "MAX_POP20": 221736.000000, "MAX_POP50": 221736.000000, "MAX_POP300": 221736.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 34.000000, "MAX_AREAKM": 34.000000, "MIN_AREAMI": 13.000000, "MAX_AREAMI": 13.000000, "MIN_PERKM": 32.000000, "MAX_PERKM": 32.000000, "MIN_PERMI": 20.000000, "MAX_PERMI": 20.000000, "MIN_BBXMIN": -65.300000, "MAX_BBXMIN": -65.300000, "MIN_BBXMAX": -65.225000, "MAX_BBXMAX": -65.225000, "MIN_BBYMIN": -19.066667, "MAX_BBYMIN": -19.066667, "MIN_BBYMAX": -18.991667, "MAX_BBYMAX": -18.991667, "MEAN_BBXC": -65.260317, "MEAN_BBYC": -19.030556, "COMPARE": 0, "GN_ASCII": "Sucre", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 224838.000000, "ELEVATION": 0.000000, "GTOPO30": 2759.000000, "TIMEZONE": "America\/La_Paz", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7264656.048977, -2159760.162734 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Belmopan", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Belmopan", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Belize", "SOV_A3": "BLZ", "ADM0NAME": "Belize", "ADM0_A3": "BLZ", "ADM1NAME": "Cayo", "ISO_A2": "BZ", "NOTE": null, "LATITUDE": 17.252034, "LONGITUDE": -88.767073, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 15220, "POP_MIN": 13381, "POP_OTHER": 15220, "RANK_MAX": 6, "RANK_MIN": 6, "GEONAMEID": 3582672.000000, "MEGANAME": null, "LS_NAME": "Belmopan", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 15220.000000, "MAX_POP20": 15220.000000, "MAX_POP50": 15220.000000, "MAX_POP300": 15220.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 9.000000, "MAX_AREAKM": 9.000000, "MIN_AREAMI": 3.000000, "MAX_AREAMI": 3.000000, "MIN_PERKM": 16.000000, "MAX_PERKM": 16.000000, "MIN_PERMI": 10.000000, "MAX_PERMI": 10.000000, "MIN_BBXMIN": -88.783333, "MAX_BBXMIN": -88.783333, "MIN_BBXMAX": -88.750000, "MAX_BBXMAX": -88.750000, "MIN_BBYMIN": 17.233333, "MAX_BBYMIN": 17.233333, "MIN_BBYMAX": 17.266667, "MAX_BBYMAX": 17.266667, "MEAN_BBXC": -88.767803, "MEAN_BBYC": 17.248864, "COMPARE": 0, "GN_ASCII": "Belmopan", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 13381.000000, "ELEVATION": 0.000000, "GTOPO30": 63.000000, "TIMEZONE": "America\/Belize", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9881505.365548, 1950183.061272 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Bangui", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bangui", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Central African Republic", "SOV_A3": "CAF", "ADM0NAME": "Central African Republic", "ADM0_A3": "CAF", "ADM1NAME": "Bangui", "ISO_A2": "CF", "NOTE": null, "LATITUDE": 4.366644, "LONGITUDE": 18.558288, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 831925, "POP_MIN": 622771, "POP_OTHER": 782274, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2389853.000000, "MEGANAME": null, "LS_NAME": "Bangui", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 792886.000000, "MAX_POP20": 792886.000000, "MAX_POP50": 831925.000000, "MAX_POP300": 831925.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 90.000000, "MAX_AREAKM": 103.000000, "MIN_AREAMI": 35.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 91.000000, "MAX_PERKM": 107.000000, "MIN_PERMI": 57.000000, "MAX_PERMI": 67.000000, "MIN_BBXMIN": 18.491667, "MAX_BBXMIN": 18.491667, "MIN_BBXMAX": 18.614651, "MAX_BBXMAX": 18.625000, "MIN_BBYMIN": 4.316667, "MAX_BBYMIN": 4.316667, "MIN_BBYMAX": 4.483333, "MAX_BBYMAX": 4.483333, "MEAN_BBXC": 18.546436, "MEAN_BBYC": 4.388157, "COMPARE": 0, "GN_ASCII": "Bangui", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 18.000000, "GN_POP": 542393.000000, "ELEVATION": 0.000000, "GTOPO30": 373.000000, "TIMEZONE": "Africa\/Bangui", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2065899.184101, 486563.868510 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Yaounde", "NAMEPAR": null, "NAMEALT": "Yaoundé", "DIFFASCII": 0, "NAMEASCII": "Yaounde", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Cameroon", "SOV_A3": "CMR", "ADM0NAME": "Cameroon", "ADM0_A3": "CMR", "ADM1NAME": "Centre", "ISO_A2": "CM", "NOTE": null, "LATITUDE": 3.866701, "LONGITUDE": 11.516651, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1611000, "POP_MIN": 1060587, "POP_OTHER": 1060747, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2220957.000000, "MEGANAME": "Yaoundé", "LS_NAME": "Yaounde", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1060587.000000, "MAX_POP20": 1060587.000000, "MAX_POP50": 1060587.000000, "MAX_POP300": 1060587.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 197.000000, "MAX_AREAKM": 197.000000, "MIN_AREAMI": 76.000000, "MAX_AREAMI": 76.000000, "MIN_PERKM": 116.000000, "MAX_PERKM": 116.000000, "MIN_PERMI": 72.000000, "MAX_PERMI": 72.000000, "MIN_BBXMIN": 11.433333, "MAX_BBXMIN": 11.433333, "MIN_BBXMAX": 11.600000, "MAX_BBXMAX": 11.600000, "MIN_BBYMIN": 3.775000, "MAX_BBYMIN": 3.775000, "MIN_BBYMAX": 3.983333, "MAX_BBYMAX": 3.983333, "MEAN_BBXC": 11.518344, "MEAN_BBYC": 3.865639, "COMPARE": 0, "GN_ASCII": "Yaounde", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1299369.000000, "ELEVATION": 0.000000, "GTOPO30": 733.000000, "TIMEZONE": "Africa\/Douala", "GEONAMESNO": "GeoNames match general.", "UN_FID": 9, "UN_ADM0": "Cameroon", "UN_LAT": 3.860000, "UN_LONG": 11.510000, "POP1950": 32.000000, "POP1955": 49.000000, "POP1960": 75.000000, "POP1965": 112.000000, "POP1970": 183.000000, "POP1975": 292.000000, "POP1980": 415.000000, "POP1985": 578.000000, "POP1990": 754.000000, "POP1995": 948.000000, "POP2000": 1192.000000, "POP2005": 1489.000000, "POP2010": 1611.000000, "POP2015": 1787.000000, "POP2020": 2058.000000, "POP2025": 2312.000000, "POP2050": 2549.000000, "CITYALT": "Yaounde" }, "geometry": { "type": "Point", "coordinates": [ 1281811.085752, 430983.363251 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Tirana", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tirana", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Albania", "SOV_A3": "ALB", "ADM0NAME": "Albania", "ADM0_A3": "ALB", "ADM1NAME": "Durrës", "ISO_A2": "AL", "NOTE": null, "LATITUDE": 41.327541, "LONGITUDE": 19.818883, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 895350, "POP_MIN": 421286, "POP_OTHER": 517792, "RANK_MAX": 11, "RANK_MIN": 10, "GEONAMEID": 3183875.000000, "MEGANAME": null, "LS_NAME": "Tirana", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 530241.000000, "MAX_POP20": 530241.000000, "MAX_POP50": 530241.000000, "MAX_POP300": 530241.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 74.000000, "MAX_AREAKM": 74.000000, "MIN_AREAMI": 28.000000, "MAX_AREAMI": 28.000000, "MIN_PERKM": 80.000000, "MAX_PERKM": 80.000000, "MIN_PERMI": 50.000000, "MAX_PERMI": 50.000000, "MIN_BBXMIN": 19.733333, "MAX_BBXMIN": 19.733333, "MIN_BBXMAX": 19.875000, "MAX_BBXMAX": 19.875000, "MIN_BBYMIN": 41.275000, "MAX_BBYMIN": 41.275000, "MIN_BBYMAX": 41.400000, "MAX_BBYMAX": 41.400000, "MEAN_BBXC": 19.805556, "MEAN_BBYC": 41.339474, "COMPARE": 0, "GN_ASCII": "Tirana", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 50.000000, "GN_POP": 374801.000000, "ELEVATION": 0.000000, "GTOPO30": 103.000000, "TIMEZONE": "Europe\/Tirane", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2206227.965278, 5060774.549450 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Yerevan", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Yerevan", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Armenia", "SOV_A3": "ARM", "ADM0NAME": "Armenia", "ADM0_A3": "ARM", "ADM1NAME": "Erevan", "ISO_A2": "AM", "NOTE": null, "LATITUDE": 40.181151, "LONGITUDE": 44.513551, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1102000, "POP_MIN": 1093485, "POP_OTHER": 1154748, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 616052.000000, "MEGANAME": "Yerevan", "LS_NAME": "Yerevan", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1200842.000000, "MAX_POP20": 1200842.000000, "MAX_POP50": 1200842.000000, "MAX_POP300": 1200842.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 191.000000, "MAX_AREAKM": 191.000000, "MIN_AREAMI": 74.000000, "MAX_AREAMI": 74.000000, "MIN_PERKM": 166.000000, "MAX_PERKM": 166.000000, "MIN_PERMI": 103.000000, "MAX_PERMI": 103.000000, "MIN_BBXMIN": 44.391667, "MAX_BBXMIN": 44.391667, "MIN_BBXMAX": 44.600000, "MAX_BBXMAX": 44.600000, "MIN_BBYMIN": 39.925000, "MAX_BBYMIN": 39.925000, "MIN_BBYMAX": 40.241667, "MAX_BBYMAX": 40.241667, "MEAN_BBXC": 44.506293, "MEAN_BBYC": 40.127356, "COMPARE": 0, "GN_ASCII": "Yerevan", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 1093485.000000, "ELEVATION": 0.000000, "GTOPO30": 1002.000000, "TIMEZONE": "Asia\/Yerevan", "GEONAMESNO": "GeoNames match general.", "UN_FID": 377, "UN_ADM0": "Armenia", "UN_LAT": 40.200000, "UN_LONG": 44.530000, "POP1950": 341.000000, "POP1955": 431.000000, "POP1960": 538.000000, "POP1965": 648.000000, "POP1970": 778.000000, "POP1975": 911.000000, "POP1980": 1042.000000, "POP1985": 1123.000000, "POP1990": 1175.000000, "POP1995": 1142.000000, "POP2000": 1111.000000, "POP2005": 1103.000000, "POP2010": 1102.000000, "POP2015": 1102.000000, "POP2020": 1102.000000, "POP2025": 1102.000000, "POP2050": 1102.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4955009.262185, 4892585.159834 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Baku", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Baku", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Azerbaijan", "SOV_A3": "AZE", "ADM0NAME": "Azerbaijan", "ADM0_A3": "AZE", "ADM1NAME": "Baki", "ISO_A2": "AZ", "NOTE": null, "LATITUDE": 40.395272, "LONGITUDE": 49.862217, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 2122300, "POP_MIN": 1892000, "POP_OTHER": 1518801, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 587084.000000, "MEGANAME": "Baku", "LS_NAME": "Baku", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1581087.000000, "MAX_POP20": 1581475.000000, "MAX_POP50": 1581475.000000, "MAX_POP300": 1581475.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 246.000000, "MAX_AREAKM": 249.000000, "MIN_AREAMI": 95.000000, "MAX_AREAMI": 96.000000, "MIN_PERKM": 174.000000, "MAX_PERKM": 179.000000, "MIN_PERMI": 108.000000, "MAX_PERMI": 111.000000, "MIN_BBXMIN": 49.700000, "MAX_BBXMIN": 49.716667, "MIN_BBXMAX": 50.016667, "MAX_BBXMAX": 50.016667, "MIN_BBYMIN": 40.316667, "MAX_BBYMIN": 40.316667, "MIN_BBYMAX": 40.500000, "MAX_BBYMAX": 40.500000, "MEAN_BBXC": 49.881373, "MEAN_BBYC": 40.416320, "COMPARE": 0, "GN_ASCII": "Baku", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 1116513.000000, "ELEVATION": 0.000000, "GTOPO30": 30.000000, "TIMEZONE": "Asia\/Baku", "GEONAMESNO": "GeoNames match general.", "UN_FID": 200, "UN_ADM0": "Azerbaijan", "UN_LAT": 40.320000, "UN_LONG": 49.810000, "POP1950": 897.000000, "POP1955": 940.000000, "POP1960": 1005.000000, "POP1965": 1132.000000, "POP1970": 1274.000000, "POP1975": 1429.000000, "POP1980": 1574.000000, "POP1985": 1660.000000, "POP1990": 1733.000000, "POP1995": 1766.000000, "POP2000": 1806.000000, "POP2005": 1867.000000, "POP2010": 1892.000000, "POP2015": 1931.000000, "POP2020": 2006.000000, "POP2025": 2097.000000, "POP2050": 2187.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5550420.012293, 4923833.914924 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Phnom Penh", "NAMEPAR": null, "NAMEALT": "Phnum Pénh", "DIFFASCII": 0, "NAMEASCII": "Phnom Penh", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Cambodia", "SOV_A3": "KHM", "ADM0NAME": "Cambodia", "ADM0_A3": "KHM", "ADM1NAME": "Phnom Penh", "ISO_A2": "KH", "NOTE": null, "LATITUDE": 11.550030, "LONGITUDE": 104.916634, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1466000, "POP_MIN": 1466000, "POP_OTHER": 1604086, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1821306.000000, "MEGANAME": "Phnum Pénh", "LS_NAME": "Phnom Penh", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1551977.000000, "MAX_POP20": 1551977.000000, "MAX_POP50": 1551977.000000, "MAX_POP300": 1551977.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 464.000000, "MAX_AREAKM": 464.000000, "MIN_AREAMI": 179.000000, "MAX_AREAMI": 179.000000, "MIN_PERKM": 703.000000, "MAX_PERKM": 703.000000, "MIN_PERMI": 437.000000, "MAX_PERMI": 437.000000, "MIN_BBXMIN": 104.441667, "MAX_BBXMIN": 104.441667, "MIN_BBXMAX": 105.000000, "MAX_BBXMAX": 105.000000, "MIN_BBYMIN": 11.291667, "MAX_BBYMIN": 11.291667, "MIN_BBYMAX": 11.691667, "MAX_BBYMAX": 11.691667, "MEAN_BBXC": 104.785770, "MEAN_BBYC": 11.488418, "COMPARE": 0, "GN_ASCII": "Phnom Penh", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1573544.000000, "ELEVATION": 0.000000, "GTOPO30": 16.000000, "TIMEZONE": "Asia\/Phnom_Penh", "GEONAMESNO": "GeoNames match general.", "UN_FID": 5, "UN_ADM0": "Cambodia", "UN_LAT": 11.560000, "UN_LONG": 104.910000, "POP1950": 364.000000, "POP1955": 376.000000, "POP1960": 389.000000, "POP1965": 436.000000, "POP1970": 900.000000, "POP1975": 100.000000, "POP1980": 238.000000, "POP1985": 427.000000, "POP1990": 615.000000, "POP1995": 836.000000, "POP2000": 1160.000000, "POP2005": 1363.000000, "POP2010": 1466.000000, "POP2015": 1651.000000, "POP2020": 2028.000000, "POP2025": 2457.000000, "POP2050": 2911.000000, "CITYALT": "Phnom Penh" }, "geometry": { "type": "Point", "coordinates": [ 11679049.714045, 1294762.200896 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "La Paz", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "La Paz", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Administrative", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Bolivia", "SOV_A3": "BOL", "ADM0NAME": "Bolivia", "ADM0_A3": "BOL", "ADM1NAME": "La Paz", "ISO_A2": "BO", "NOTE": null, "LATITUDE": -16.497974, "LONGITUDE": -68.149985, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1590000, "POP_MIN": 812799, "POP_OTHER": 4400, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 3911925.000000, "MEGANAME": "La Paz", "LS_NAME": "La Paz3", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1590482.000000, "MAX_POP20": 1590482.000000, "MAX_POP50": 1590482.000000, "MAX_POP300": 1590482.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 181.000000, "MAX_AREAKM": 181.000000, "MIN_AREAMI": 70.000000, "MAX_AREAMI": 70.000000, "MIN_PERKM": 121.000000, "MAX_PERKM": 121.000000, "MIN_PERMI": 75.000000, "MAX_PERMI": 75.000000, "MIN_BBXMIN": -68.258333, "MAX_BBXMIN": -68.258333, "MIN_BBXMAX": -68.050000, "MAX_BBXMAX": -68.050000, "MIN_BBYMIN": -16.575000, "MAX_BBYMIN": -16.575000, "MIN_BBYMAX": -16.433333, "MAX_BBYMAX": -16.433333, "MEAN_BBXC": -68.157765, "MEAN_BBYC": -16.506439, "COMPARE": 0, "GN_ASCII": "La Paz", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 812799.000000, "ELEVATION": 0.000000, "GTOPO30": 3829.000000, "TIMEZONE": "America\/La_Paz", "GEONAMESNO": "GeoNames match general.", "UN_FID": 440, "UN_ADM0": "Bolivia", "UN_LAT": 24.150000, "UN_LONG": -110.300000, "POP1950": 319.000000, "POP1955": 374.000000, "POP1960": 438.000000, "POP1965": 512.000000, "POP1970": 600.000000, "POP1975": 703.000000, "POP1980": 809.000000, "POP1985": 927.000000, "POP1990": 1062.000000, "POP1995": 1267.000000, "POP2000": 1390.000000, "POP2005": 1527.000000, "POP2010": 1590.000000, "POP2015": 1692.000000, "POP2020": 1864.000000, "POP2025": 2027.000000, "POP2050": 2178.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7586638.260964, -1862237.697093 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Cotonou", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Cotonou", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto, admin", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Benin", "SOV_A3": "BEN", "ADM0NAME": "Benin", "ADM0_A3": "BEN", "ADM1NAME": "Ouémé", "ISO_A2": "BJ", "NOTE": null, "LATITUDE": 6.400009, "LONGITUDE": 2.519991, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 762000, "POP_MIN": 690584, "POP_OTHER": 1060640, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 2394819.000000, "MEGANAME": "Cotonou", "LS_NAME": "Cotonou", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1042928.000000, "MAX_POP20": 1076471.000000, "MAX_POP50": 1076471.000000, "MAX_POP300": 1113489.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 192.000000, "MAX_AREAKM": 337.000000, "MIN_AREAMI": 74.000000, "MAX_AREAMI": 130.000000, "MIN_PERKM": 177.000000, "MAX_PERKM": 341.000000, "MIN_PERMI": 110.000000, "MAX_PERMI": 212.000000, "MIN_BBXMIN": 2.200000, "MAX_BBXMIN": 2.296132, "MIN_BBXMAX": 2.632958, "MAX_BBXMAX": 2.858333, "MIN_BBYMIN": 6.341667, "MAX_BBYMIN": 6.341667, "MIN_BBYMAX": 6.583333, "MAX_BBYMAX": 6.641667, "MEAN_BBXC": 2.392241, "MEAN_BBYC": 6.416506, "COMPARE": 0, "GN_ASCII": "Cotonou", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 14.000000, "GN_POP": 690584.000000, "ELEVATION": 0.000000, "GTOPO30": 53.000000, "TIMEZONE": "Africa\/Porto-Novo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 174, "UN_ADM0": "Benin", "UN_LAT": 6.350000, "UN_LONG": 2.430000, "POP1950": 20.000000, "POP1955": 27.000000, "POP1960": 73.000000, "POP1965": 111.000000, "POP1970": 163.000000, "POP1975": 240.000000, "POP1980": 337.000000, "POP1985": 412.000000, "POP1990": 504.000000, "POP1995": 577.000000, "POP2000": 642.000000, "POP2005": 720.000000, "POP2010": 762.000000, "POP2015": 841.000000, "POP2020": 1004.000000, "POP2025": 1196.000000, "POP2050": 1411.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 280307.458314, 714149.853620 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Sofia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sofia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Bulgaria", "SOV_A3": "BGR", "ADM0NAME": "Bulgaria", "ADM0_A3": "BGR", "ADM1NAME": "Grad Sofiya", "ISO_A2": "BG", "NOTE": null, "LATITUDE": 42.683349, "LONGITUDE": 23.316654, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1185000, "POP_MIN": 874827, "POP_OTHER": 871735, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 727011.000000, "MEGANAME": "Sofia", "LS_NAME": "Sofia", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 874827.000000, "MAX_POP20": 874827.000000, "MAX_POP50": 874827.000000, "MAX_POP300": 874827.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 217.000000, "MAX_AREAKM": 217.000000, "MIN_AREAMI": 84.000000, "MAX_AREAMI": 84.000000, "MIN_PERKM": 174.000000, "MAX_PERKM": 174.000000, "MIN_PERMI": 108.000000, "MAX_PERMI": 108.000000, "MIN_BBXMIN": 23.208333, "MAX_BBXMIN": 23.208333, "MIN_BBXMAX": 23.450000, "MAX_BBXMAX": 23.450000, "MIN_BBYMIN": 42.575000, "MAX_BBYMIN": 42.575000, "MIN_BBYMAX": 42.800000, "MAX_BBYMAX": 42.800000, "MEAN_BBXC": 23.328319, "MEAN_BBYC": 42.682340, "COMPARE": 0, "GN_ASCII": "Sofia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 42.000000, "GN_POP": 1152556.000000, "ELEVATION": 0.000000, "GTOPO30": 558.000000, "TIMEZONE": "Europe\/Sofia", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": "Bulgaria", "UN_LAT": 42.700000, "UN_LONG": 23.330000, "POP1950": 522.000000, "POP1955": 616.000000, "POP1960": 708.000000, "POP1965": 806.000000, "POP1970": 888.000000, "POP1975": 977.000000, "POP1980": 1074.000000, "POP1985": 1181.000000, "POP1990": 1191.000000, "POP1995": 1168.000000, "POP2000": 1128.000000, "POP2005": 1166.000000, "POP2010": 1185.000000, "POP2015": 1212.000000, "POP2020": 1233.000000, "POP2025": 1236.000000, "POP2050": 1236.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2595381.439486, 5264192.597865 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Minsk", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Minsk", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Belarus", "SOV_A3": "BLR", "ADM0NAME": "Belarus", "ADM0_A3": "BLR", "ADM1NAME": "Minsk", "ISO_A2": "BY", "NOTE": null, "LATITUDE": 53.899977, "LONGITUDE": 27.566627, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1805000, "POP_MIN": 1577138, "POP_OTHER": 1557919, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 625144.000000, "MEGANAME": "Minsk", "LS_NAME": "Minsk", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1577138.000000, "MAX_POP20": 1577138.000000, "MAX_POP50": 1577138.000000, "MAX_POP300": 1577138.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 211.000000, "MAX_AREAKM": 211.000000, "MIN_AREAMI": 82.000000, "MAX_AREAMI": 82.000000, "MIN_PERKM": 196.000000, "MAX_PERKM": 196.000000, "MIN_PERMI": 122.000000, "MAX_PERMI": 122.000000, "MIN_BBXMIN": 27.408333, "MAX_BBXMIN": 27.408333, "MIN_BBXMAX": 27.716667, "MAX_BBXMAX": 27.716667, "MIN_BBYMIN": 53.800000, "MAX_BBYMIN": 53.800000, "MIN_BBYMAX": 53.983333, "MAX_BBYMAX": 53.983333, "MEAN_BBXC": 27.562159, "MEAN_BBYC": 53.893169, "COMPARE": 0, "GN_ASCII": "Minsk", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 1742124.000000, "ELEVATION": 0.000000, "GTOPO30": 199.000000, "TIMEZONE": "Europe\/Minsk", "GEONAMESNO": "GeoNames match general.", "UN_FID": 4, "UN_ADM0": "Belarus", "UN_LAT": 53.890000, "UN_LONG": 27.570000, "POP1950": 284.000000, "POP1955": 414.000000, "POP1960": 551.000000, "POP1965": 719.000000, "POP1970": 932.000000, "POP1975": 1120.000000, "POP1980": 1318.000000, "POP1985": 1474.000000, "POP1990": 1607.000000, "POP1995": 1649.000000, "POP2000": 1700.000000, "POP2005": 1775.000000, "POP2010": 1805.000000, "POP2015": 1846.000000, "POP2020": 1879.000000, "POP2025": 1883.000000, "POP2050": 1883.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3068486.285822, 7151603.577913 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Thimphu", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Thimphu", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bhutan", "SOV_A3": "BTN", "ADM0NAME": "Bhutan", "ADM0_A3": "BTN", "ADM1NAME": "Thimphu", "ISO_A2": "BT", "NOTE": null, "LATITUDE": 27.472986, "LONGITUDE": 89.639014, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 98676, "POP_MIN": 79185, "POP_OTHER": 0, "RANK_MAX": 8, "RANK_MIN": 8, "GEONAMEID": 1252416.000000, "MEGANAME": null, "LS_NAME": "Thimphu", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 274538.000000, "MAX_POP20": 274538.000000, "MAX_POP50": 275382.000000, "MAX_POP300": 275382.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 37.000000, "MAX_AREAKM": 38.000000, "MIN_AREAMI": 14.000000, "MAX_AREAMI": 15.000000, "MIN_PERKM": 65.000000, "MAX_PERKM": 68.000000, "MIN_PERMI": 40.000000, "MAX_PERMI": 42.000000, "MIN_BBXMIN": 89.591667, "MAX_BBXMIN": 89.591667, "MIN_BBXMAX": 89.675000, "MAX_BBXMAX": 89.683333, "MIN_BBYMIN": 27.408333, "MAX_BBYMIN": 27.408333, "MIN_BBYMAX": 27.558333, "MAX_BBYMAX": 27.558333, "MEAN_BBXC": 89.637539, "MEAN_BBYC": 27.477943, "COMPARE": 0, "GN_ASCII": "Thimphu", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 20.000000, "GN_POP": 98676.000000, "ELEVATION": 2320.000000, "GTOPO30": 2737.000000, "TIMEZONE": "Asia\/Thimphu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 9978569.397813, 3182690.385781 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Gaborone", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Gaborone", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Botswana", "SOV_A3": "BWA", "ADM0NAME": "Botswana", "ADM0_A3": "BWA", "ADM1NAME": "South-East", "ISO_A2": "BW", "NOTE": null, "LATITUDE": -24.646313, "LONGITUDE": 25.911948, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 208411, "POP_MIN": 159243, "POP_OTHER": 158896, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 933773.000000, "MEGANAME": null, "LS_NAME": "Gaborone", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 159243.000000, "MAX_POP20": 159243.000000, "MAX_POP50": 159243.000000, "MAX_POP300": 159243.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 72.000000, "MAX_AREAKM": 72.000000, "MIN_AREAMI": 28.000000, "MAX_AREAMI": 28.000000, "MIN_PERKM": 59.000000, "MAX_PERKM": 59.000000, "MIN_PERMI": 37.000000, "MAX_PERMI": 37.000000, "MIN_BBXMIN": 25.858333, "MAX_BBXMIN": 25.858333, "MIN_BBXMAX": 25.991667, "MAX_BBXMAX": 25.991667, "MIN_BBYMIN": -24.700000, "MAX_BBYMIN": -24.700000, "MIN_BBYMAX": -24.600000, "MAX_BBYMAX": -24.600000, "MEAN_BBXC": 25.925091, "MEAN_BBYC": -24.656793, "COMPARE": 0, "GN_ASCII": "Gaborone", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 208411.000000, "ELEVATION": 0.000000, "GTOPO30": 1006.000000, "TIMEZONE": "Africa\/Gaborone", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2884504.833810, -2832364.332015 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Canberra", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Canberra", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Australia", "SOV_A3": "AUS", "ADM0NAME": "Australia", "ADM0_A3": "AUS", "ADM1NAME": "Australian Capital Territory", "ISO_A2": "AU", "NOTE": null, "LATITUDE": -35.283029, "LONGITUDE": 149.129026, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 327700, "POP_MIN": 234032, "POP_OTHER": 0, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2172517.000000, "MEGANAME": null, "LS_NAME": "Canberra", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 234032.000000, "MAX_POP20": 244896.000000, "MAX_POP50": 244896.000000, "MAX_POP300": 244896.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 226.000000, "MAX_AREAKM": 251.000000, "MIN_AREAMI": 87.000000, "MAX_AREAMI": 97.000000, "MIN_PERKM": 175.000000, "MAX_PERKM": 202.000000, "MIN_PERMI": 109.000000, "MAX_PERMI": 126.000000, "MIN_BBXMIN": 149.000000, "MAX_BBXMIN": 149.000000, "MIN_BBXMAX": 149.200000, "MAX_BBXMAX": 149.200000, "MIN_BBYMIN": -35.483333, "MAX_BBYMIN": -35.455764, "MIN_BBYMAX": -35.183333, "MAX_BBYMAX": -35.183333, "MEAN_BBXC": 149.094107, "MEAN_BBYC": -35.309627, "COMPARE": 0, "GN_ASCII": "Canberra", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 327700.000000, "ELEVATION": 0.000000, "GTOPO30": 609.000000, "TIMEZONE": "Australia\/Sydney", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 16600967.264012, -4202410.422065 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Ouagadougou", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ouagadougou", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Burkina Faso", "SOV_A3": "BFA", "ADM0NAME": "Burkina Faso", "ADM0_A3": "BFA", "ADM1NAME": "Kadiogo", "ISO_A2": "BF", "NOTE": null, "LATITUDE": 12.370316, "LONGITUDE": -1.524724, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1149000, "POP_MIN": 835457, "POP_OTHER": 713874, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2357048.000000, "MEGANAME": "Ouagadougou", "LS_NAME": "Ouagadougou", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 835457.000000, "MAX_POP20": 835457.000000, "MAX_POP50": 835457.000000, "MAX_POP300": 835457.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 236.000000, "MAX_AREAKM": 236.000000, "MIN_AREAMI": 91.000000, "MAX_AREAMI": 91.000000, "MIN_PERKM": 133.000000, "MAX_PERKM": 133.000000, "MIN_PERMI": 83.000000, "MAX_PERMI": 83.000000, "MIN_BBXMIN": -1.616667, "MAX_BBXMIN": -1.616667, "MIN_BBXMAX": -1.433333, "MAX_BBXMAX": -1.433333, "MIN_BBYMIN": 12.275000, "MAX_BBYMIN": 12.275000, "MIN_BBYMAX": 12.483333, "MAX_BBYMAX": 12.483333, "MEAN_BBXC": -1.521746, "MEAN_BBYC": 12.365975, "COMPARE": 0, "GN_ASCII": "Ouagadougou", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 53.000000, "GN_POP": 1086505.000000, "ELEVATION": 0.000000, "GTOPO30": 307.000000, "TIMEZONE": "Africa\/Ouagadougou", "GEONAMESNO": "GeoNames match general.", "UN_FID": 578, "UN_ADM0": "Burkina Faso", "UN_LAT": 12.480000, "UN_LONG": -1.670000, "POP1950": 33.000000, "POP1955": 46.000000, "POP1960": 59.000000, "POP1965": 82.000000, "POP1970": 111.000000, "POP1975": 149.000000, "POP1980": 257.000000, "POP1985": 424.000000, "POP1990": 537.000000, "POP1995": 667.000000, "POP2000": 828.000000, "POP2005": 1044.000000, "POP2010": 1149.000000, "POP2015": 1324.000000, "POP2020": 1676.000000, "POP2025": 2111.000000, "POP2050": 2632.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -169948.084142, 1388103.780284 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Sarajevo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sarajevo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bosnia and Herzegovina", "SOV_A3": "BIH", "ADM0NAME": "Bosnia and Herzegovina", "ADM0_A3": "BIH", "ADM1NAME": "Sarajevo", "ISO_A2": "BA", "NOTE": null, "LATITUDE": 43.850022, "LONGITUDE": 18.383002, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 696731, "POP_MIN": 628902, "POP_OTHER": 627065, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3191281.000000, "MEGANAME": null, "LS_NAME": "Sarajevo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 628902.000000, "MAX_POP20": 628902.000000, "MAX_POP50": 628902.000000, "MAX_POP300": 628902.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 104.000000, "MAX_AREAKM": 104.000000, "MIN_AREAMI": 40.000000, "MAX_AREAMI": 40.000000, "MIN_PERKM": 112.000000, "MAX_PERKM": 112.000000, "MIN_PERMI": 70.000000, "MAX_PERMI": 70.000000, "MIN_BBXMIN": 18.216667, "MAX_BBXMIN": 18.216667, "MIN_BBXMAX": 18.466667, "MAX_BBXMAX": 18.466667, "MIN_BBYMIN": 43.783333, "MAX_BBYMIN": 43.783333, "MIN_BBYMAX": 43.900000, "MAX_BBYMAX": 43.900000, "MEAN_BBXC": 18.351272, "MEAN_BBYC": 43.846183, "COMPARE": 0, "GN_ASCII": "Sarajevo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 696731.000000, "ELEVATION": 0.000000, "GTOPO30": 545.000000, "TIMEZONE": "Europe\/Sarajevo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2046386.384817, 5442262.062606 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Naypyidaw", "NAMEPAR": null, "NAMEALT": "Nay Pyi Taw", "DIFFASCII": 0, "NAMEASCII": "Naypyidaw", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Myanmar", "SOV_A3": "MMR", "ADM0NAME": "Myanmar", "ADM0_A3": "MMR", "ADM1NAME": "Mandalay", "ISO_A2": "MM", "NOTE": null, "LATITUDE": 19.766557, "LONGITUDE": 96.118619, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 930000, "POP_MIN": 194824, "POP_OTHER": 0, "RANK_MAX": 11, "RANK_MIN": 9, "GEONAMEID": 6611854.000000, "MEGANAME": "Nay Pyi Taw", "LS_NAME": "Naypyidaw", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 194824.000000, "MAX_POP20": 194824.000000, "MAX_POP50": 194824.000000, "MAX_POP300": 194824.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 89.000000, "MAX_AREAKM": 89.000000, "MIN_AREAMI": 34.000000, "MAX_AREAMI": 34.000000, "MIN_PERKM": 149.000000, "MAX_PERKM": 149.000000, "MIN_PERMI": 93.000000, "MAX_PERMI": 93.000000, "MIN_BBXMIN": 96.141667, "MAX_BBXMIN": 96.141667, "MIN_BBXMAX": 96.275000, "MAX_BBXMAX": 96.275000, "MIN_BBYMIN": 19.633333, "MAX_BBYMIN": 19.633333, "MIN_BBYMAX": 19.783333, "MAX_BBYMAX": 19.783333, "MEAN_BBXC": 96.205833, "MEAN_BBYC": 19.720606, "COMPARE": 0, "GN_ASCII": "Nay Pyi Taw", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 8.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 108.000000, "TIMEZONE": "Asia\/Rangoon", "GEONAMESNO": "GeoNames match general.", "UN_FID": 2, "UN_ADM0": "Myanmar", "UN_LAT": 19.750000, "UN_LONG": 96.100000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 57.000000, "POP2010": 930.000000, "POP2015": 1024.000000, "POP2020": 1177.000000, "POP2025": 1321.000000, "POP2050": 1461.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 10699659.058438, 2245626.986136 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Nukualofa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nukualofa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Tonga", "SOV_A3": "TON", "ADM0NAME": "Tonga", "ADM0_A3": "TON", "ADM1NAME": null, "ISO_A2": "TO", "NOTE": null, "LATITUDE": -21.138512, "LONGITUDE": -175.220564, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 42620, "POP_MIN": 23658, "POP_OTHER": 42620, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 4032402.000000, "MEGANAME": null, "LS_NAME": "Nukualofa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 42620.000000, "MAX_POP20": 42620.000000, "MAX_POP50": 42620.000000, "MAX_POP300": 42620.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 15.000000, "MAX_AREAKM": 15.000000, "MIN_AREAMI": 6.000000, "MAX_AREAMI": 6.000000, "MIN_PERKM": 27.000000, "MAX_PERKM": 27.000000, "MIN_PERMI": 17.000000, "MAX_PERMI": 17.000000, "MIN_BBXMIN": -175.233333, "MAX_BBXMIN": -175.233333, "MIN_BBXMAX": -175.166667, "MAX_BBXMAX": -175.166667, "MIN_BBYMIN": -21.166667, "MAX_BBYMIN": -21.166667, "MIN_BBYMAX": -21.125000, "MAX_BBYMAX": -21.125000, "MEAN_BBXC": -175.206798, "MEAN_BBYC": -21.142325, "COMPARE": 0, "GN_ASCII": "Nuku`alofa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 22400.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Pacific\/Tongatapu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -19505464.014158, -2408402.390758 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Hargeysa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Hargeysa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Somaliland", "SOV_A3": "SOL", "ADM0NAME": "Somaliland", "ADM0_A3": "SOL", "ADM1NAME": null, "ISO_A2": "-99", "NOTE": null, "LATITUDE": 9.560022, "LONGITUDE": 44.065310, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 477876, "POP_MIN": 247018, "POP_OTHER": 247018, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 57289.000000, "MEGANAME": null, "LS_NAME": "Hargeysa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 247018.000000, "MAX_POP20": 247018.000000, "MAX_POP50": 247018.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 40.000000, "MAX_AREAKM": 40.000000, "MIN_AREAMI": 15.000000, "MAX_AREAMI": 15.000000, "MIN_PERKM": 37.000000, "MAX_PERKM": 37.000000, "MIN_PERMI": 23.000000, "MAX_PERMI": 23.000000, "MIN_BBXMIN": 44.025000, "MAX_BBXMIN": 44.025000, "MIN_BBXMAX": 44.100000, "MAX_BBXMAX": 44.100000, "MIN_BBYMIN": 9.516667, "MAX_BBYMIN": 9.516667, "MIN_BBYMAX": 9.591667, "MAX_BBYMAX": 9.591667, "MEAN_BBXC": 44.064450, "MEAN_BBYC": 9.557004, "COMPARE": 0, "GN_ASCII": "Hargeysa", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 20.000000, "GN_POP": 477876.000000, "ELEVATION": 0.000000, "GTOPO30": 1247.000000, "TIMEZONE": "Africa\/Mogadishu", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4905327.872702, 1069189.478441 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Victoria", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Victoria", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Seychelles", "SOV_A3": "SYC", "ADM0NAME": "Seychelles", "ADM0_A3": "SYC", "ADM1NAME": null, "ISO_A2": "SC", "NOTE": null, "LATITUDE": -4.616632, "LONGITUDE": 55.449990, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 33576, "POP_MIN": 22881, "POP_OTHER": 33737, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 241131.000000, "MEGANAME": null, "LS_NAME": "Victoria4", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 33576.000000, "MAX_POP20": 33576.000000, "MAX_POP50": 33576.000000, "MAX_POP300": 33576.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 15.000000, "MAX_AREAKM": 15.000000, "MIN_AREAMI": 6.000000, "MAX_AREAMI": 6.000000, "MIN_PERKM": 26.000000, "MAX_PERKM": 26.000000, "MIN_PERMI": 16.000000, "MAX_PERMI": 16.000000, "MIN_BBXMIN": 55.416667, "MAX_BBXMIN": 55.416667, "MIN_BBXMAX": 55.475000, "MAX_BBXMAX": 55.475000, "MIN_BBYMIN": -4.650000, "MAX_BBYMIN": -4.650000, "MIN_BBYMAX": -4.600000, "MAX_BBYMAX": -4.600000, "MEAN_BBXC": 55.450000, "MEAN_BBYC": -4.626389, "COMPARE": 0, "GN_ASCII": "Victoria", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 22881.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Indian\/Mahe", "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 6172664.627424, -514478.085974 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Sao Tome", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sao Tome", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Sao Tome and Principe", "SOV_A3": "STP", "ADM0NAME": "Sao Tome and Principe", "ADM0_A3": "STP", "ADM1NAME": null, "ISO_A2": "ST", "NOTE": null, "LATITUDE": 0.333402, "LONGITUDE": 6.733325, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 88219, "POP_MIN": 56166, "POP_OTHER": 88219, "RANK_MAX": 8, "RANK_MIN": 8, "GEONAMEID": 3388092.000000, "MEGANAME": null, "LS_NAME": "Sao Tome", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 88219.000000, "MAX_POP20": 88219.000000, "MAX_POP50": 88219.000000, "MAX_POP300": 88219.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 32.000000, "MAX_AREAKM": 32.000000, "MIN_AREAMI": 12.000000, "MAX_AREAMI": 12.000000, "MIN_PERKM": 44.000000, "MAX_PERKM": 44.000000, "MIN_PERMI": 28.000000, "MAX_PERMI": 28.000000, "MIN_BBXMIN": 6.691667, "MAX_BBXMIN": 6.691667, "MIN_BBXMAX": 6.750000, "MAX_BBXMAX": 6.750000, "MIN_BBYMIN": 0.300000, "MAX_BBYMIN": 0.300000, "MIN_BBYMAX": 0.391667, "MAX_BBYMAX": 0.391667, "MEAN_BBXC": 6.719032, "MEAN_BBYC": 0.338176, "COMPARE": 0, "GN_ASCII": "Sao Tome", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 22.000000, "GN_POP": 6137.000000, "ELEVATION": 0.000000, "GTOPO30": 151.000000, "TIMEZONE": "America\/Fortaleza", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 749550.327403, 37114.363549 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Apia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Apia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Samoa", "SOV_A3": "WSM", "ADM0NAME": "Samoa", "ADM0_A3": "WSM", "ADM1NAME": null, "ISO_A2": "WS", "NOTE": null, "LATITUDE": -13.841545, "LONGITUDE": -171.738642, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 61916, "POP_MIN": 37708, "POP_OTHER": 0, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 3689793.000000, "MEGANAME": null, "LS_NAME": "Apia", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 61916.000000, "MAX_POP20": 61916.000000, "MAX_POP50": 61916.000000, "MAX_POP300": 61916.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 39.000000, "MAX_AREAKM": 39.000000, "MIN_AREAMI": 15.000000, "MAX_AREAMI": 15.000000, "MIN_PERKM": 51.000000, "MAX_PERKM": 51.000000, "MIN_PERMI": 32.000000, "MAX_PERMI": 32.000000, "MIN_BBXMIN": -171.825000, "MAX_BBXMIN": -171.825000, "MIN_BBXMAX": -171.716667, "MAX_BBXMAX": -171.716667, "MIN_BBYMIN": -13.866667, "MAX_BBYMIN": -13.866667, "MIN_BBYMAX": -13.800000, "MAX_BBYMAX": -13.800000, "MEAN_BBXC": -171.781117, "MEAN_BBYC": -13.837855, "COMPARE": 0, "GN_ASCII": "Apia", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 24.000000, "GN_POP": 6940.000000, "ELEVATION": 0.000000, "GTOPO30": 1561.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -19117858.133398, -1556043.666840 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Valletta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Valletta", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Malta", "SOV_A3": "MLT", "ADM0NAME": "Malta", "ADM0_A3": "MLT", "ADM1NAME": null, "ISO_A2": "MT", "NOTE": null, "LATITUDE": 35.899732, "LONGITUDE": 14.514711, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 368250, "POP_MIN": 6966, "POP_OTHER": 336174, "RANK_MAX": 10, "RANK_MIN": 5, "GEONAMEID": 2562305.000000, "MEGANAME": null, "LS_NAME": "Valletta", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 336921.000000, "MAX_POP20": 336921.000000, "MAX_POP50": 336921.000000, "MAX_POP300": 336921.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 106.000000, "MAX_AREAKM": 106.000000, "MIN_AREAMI": 41.000000, "MAX_AREAMI": 41.000000, "MIN_PERKM": 87.000000, "MAX_PERKM": 87.000000, "MIN_PERMI": 54.000000, "MAX_PERMI": 54.000000, "MIN_BBXMIN": 14.408333, "MAX_BBXMIN": 14.408333, "MIN_BBXMAX": 14.550000, "MAX_BBXMAX": 14.550000, "MIN_BBYMIN": 35.816667, "MAX_BBYMIN": 35.816667, "MIN_BBYMAX": 35.941667, "MAX_BBYMAX": 35.941667, "MEAN_BBXC": 14.483034, "MEAN_BBYC": 35.881672, "COMPARE": 0, "GN_ASCII": "Valletta", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 6794.000000, "ELEVATION": 0.000000, "GTOPO30": 90.000000, "TIMEZONE": "Europe\/Malta", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1615770.198715, 4286833.472594 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Male", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Male", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Maldives", "SOV_A3": "MDV", "ADM0NAME": "Maldives", "ADM0_A3": "MDV", "ADM1NAME": null, "ISO_A2": "MV", "NOTE": null, "LATITUDE": 4.166708, "LONGITUDE": 73.499947, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 112927, "POP_MIN": 103693, "POP_OTHER": 0, "RANK_MAX": 9, "RANK_MIN": 9, "GEONAMEID": 3174186.000000, "MEGANAME": null, "LS_NAME": "Male", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 112927.000000, "MAX_POP20": 112927.000000, "MAX_POP50": 112927.000000, "MAX_POP300": 112927.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 3.000000, "MAX_AREAKM": 3.000000, "MIN_AREAMI": 1.000000, "MAX_AREAMI": 1.000000, "MIN_PERKM": 7.000000, "MAX_PERKM": 7.000000, "MIN_PERMI": 5.000000, "MAX_PERMI": 5.000000, "MIN_BBXMIN": 73.500000, "MAX_BBXMIN": 73.500000, "MIN_BBXMAX": 73.516667, "MAX_BBXMAX": 73.516667, "MIN_BBYMIN": 4.166667, "MAX_BBYMIN": 4.166667, "MIN_BBYMAX": 4.183333, "MAX_BBYMAX": 4.183333, "MEAN_BBXC": 73.508333, "MEAN_BBYC": 4.175000, "COMPARE": 0, "GN_ASCII": "Male", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 17.000000, "GN_POP": 2138.000000, "ELEVATION": 0.000000, "GTOPO30": 672.000000, "TIMEZONE": "Europe\/Rome", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8181976.725465, 464245.215895 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Jerusalem", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Jerusalem", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto capita", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Israel", "SOV_A3": "ISR", "ADM0NAME": "Israel", "ADM0_A3": "ISR", "ADM1NAME": "Jerusalem", "ISO_A2": "IL", "NOTE": null, "LATITUDE": 31.778408, "LONGITUDE": 35.206626, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1029300, "POP_MIN": 801000, "POP_OTHER": 1072567, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 281184.000000, "MEGANAME": null, "LS_NAME": "Jerusalem", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1073782.000000, "MAX_POP20": 1073782.000000, "MAX_POP50": 1073782.000000, "MAX_POP300": 1073782.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 246.000000, "MAX_AREAKM": 246.000000, "MIN_AREAMI": 95.000000, "MAX_AREAMI": 95.000000, "MIN_PERKM": 239.000000, "MAX_PERKM": 239.000000, "MIN_PERMI": 149.000000, "MAX_PERMI": 149.000000, "MIN_BBXMIN": 35.100000, "MAX_BBXMIN": 35.100000, "MIN_BBXMAX": 35.316667, "MAX_BBXMAX": 35.316667, "MIN_BBYMIN": 31.683333, "MAX_BBYMIN": 31.683333, "MIN_BBYMAX": 31.991667, "MAX_BBYMAX": 31.991667, "MEAN_BBXC": 35.210651, "MEAN_BBYC": 31.809862, "COMPARE": 0, "GN_ASCII": "Jerusalem", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 6.000000, "GN_POP": 714000.000000, "ELEVATION": 0.000000, "GTOPO30": 795.000000, "TIMEZONE": "Asia\/Jerusalem", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3919183.671588, 3734258.228347 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Praia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Praia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Cape Verde", "SOV_A3": "CPV", "ADM0NAME": "Cape Verde", "ADM0_A3": "CPV", "ADM1NAME": null, "ISO_A2": "CV", "NOTE": null, "LATITUDE": 14.916698, "LONGITUDE": -23.516689, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 113364, "POP_MIN": 88859, "POP_OTHER": 89205, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 3374333.000000, "MEGANAME": null, "LS_NAME": "Praia", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 88859.000000, "MAX_POP20": 88859.000000, "MAX_POP50": 88859.000000, "MAX_POP300": 88859.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 37.000000, "MAX_AREAKM": 37.000000, "MIN_AREAMI": 14.000000, "MAX_AREAMI": 14.000000, "MIN_PERKM": 40.000000, "MAX_PERKM": 40.000000, "MIN_PERMI": 25.000000, "MAX_PERMI": 25.000000, "MIN_BBXMIN": -23.541667, "MAX_BBXMIN": -23.541667, "MIN_BBXMAX": -23.483333, "MAX_BBXMAX": -23.483333, "MIN_BBYMIN": 14.900000, "MAX_BBYMIN": 14.900000, "MIN_BBYMAX": 14.983333, "MAX_BBYMAX": 14.983333, "MEAN_BBXC": -23.514907, "MEAN_BBYC": 14.938056, "COMPARE": 0, "GN_ASCII": "Praia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 113364.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Atlantic\/Cape_Verde", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -2617865.831818, 1679601.750674 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Nassau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nassau", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Bahamas, The", "SOV_A3": "BHS", "ADM0NAME": "The Bahamas", "ADM0_A3": "BHS", "ADM1NAME": null, "ISO_A2": "BS", "NOTE": null, "LATITUDE": 25.083390, "LONGITUDE": -77.350044, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 227940, "POP_MIN": 160966, "POP_OTHER": 0, "RANK_MAX": 10, "RANK_MIN": 9, "GEONAMEID": 3571824.000000, "MEGANAME": null, "LS_NAME": "Nassau", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 160966.000000, "MAX_POP20": 160966.000000, "MAX_POP50": 160966.000000, "MAX_POP300": 160966.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 84.000000, "MAX_AREAKM": 84.000000, "MIN_AREAMI": 32.000000, "MAX_AREAMI": 32.000000, "MIN_PERKM": 66.000000, "MAX_PERKM": 66.000000, "MIN_PERMI": 41.000000, "MAX_PERMI": 41.000000, "MIN_BBXMIN": -77.400000, "MAX_BBXMIN": -77.400000, "MIN_BBXMAX": -77.258333, "MAX_BBXMAX": -77.258333, "MIN_BBYMIN": 25.000000, "MAX_BBYMIN": 25.000000, "MIN_BBYMAX": 25.091667, "MAX_BBYMAX": 25.091667, "MEAN_BBXC": -77.335571, "MEAN_BBYC": 25.044830, "COMPARE": 0, "GN_ASCII": "Nassau", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 23.000000, "GN_POP": 227940.000000, "ELEVATION": 0.000000, "GTOPO30": 3.000000, "TIMEZONE": "America\/Nassau", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8610567.486903, 2885990.701995 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Nicosia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nicosia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Capital of both", "WORLDCITY": 0.000000, "MEGACITY": 0, "SOV0NAME": "Cyprus", "SOV_A3": "CYP", "ADM0NAME": "Cyprus", "ADM0_A3": "CYP", "ADM1NAME": null, "ISO_A2": "CY", "NOTE": null, "LATITUDE": 35.166676, "LONGITUDE": 33.366635, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 224300, "POP_MIN": 200452, "POP_OTHER": 222985, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 146268.000000, "MEGANAME": null, "LS_NAME": "Nicosia", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 224300.000000, "MAX_POP20": 224300.000000, "MAX_POP50": 224300.000000, "MAX_POP300": 224300.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 128.000000, "MAX_AREAKM": 128.000000, "MIN_AREAMI": 49.000000, "MAX_AREAMI": 49.000000, "MIN_PERKM": 109.000000, "MAX_PERKM": 109.000000, "MIN_PERMI": 68.000000, "MAX_PERMI": 68.000000, "MIN_BBXMIN": 33.275000, "MAX_BBXMIN": 33.275000, "MIN_BBXMAX": 33.425000, "MAX_BBXMAX": 33.425000, "MIN_BBYMIN": 35.041667, "MAX_BBYMIN": 35.041667, "MIN_BBYMAX": 35.225000, "MAX_BBYMAX": 35.225000, "MEAN_BBXC": 33.352244, "MEAN_BBYC": 35.150000, "COMPARE": 0, "GN_ASCII": "Nicosia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 200452.000000, "ELEVATION": 0.000000, "GTOPO30": 128.000000, "TIMEZONE": "Asia\/Nicosia", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3714356.805040, 4186554.940504 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Hanoi", "NAMEPAR": null, "NAMEALT": "Hà Noi", "DIFFASCII": 0, "NAMEASCII": "Hanoi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Vietnam", "SOV_A3": "VNM", "ADM0NAME": "Vietnam", "ADM0_A3": "VNM", "ADM1NAME": "Thái Nguyên", "ISO_A2": "VN", "NOTE": null, "LATITUDE": 21.033327, "LONGITUDE": 105.850014, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4378000, "POP_MIN": 1431270, "POP_OTHER": 5466347, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1581130.000000, "MEGANAME": "Hà Noi", "LS_NAME": "Hanoi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5620806.000000, "MAX_POP20": 7346227.000000, "MAX_POP50": 16406759.000000, "MAX_POP300": 23700631.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 2512.000000, "MAX_AREAKM": 14049.000000, "MIN_AREAMI": 970.000000, "MAX_AREAMI": 5424.000000, "MIN_PERKM": 1175.000000, "MAX_PERKM": 10267.000000, "MIN_PERMI": 730.000000, "MAX_PERMI": 6380.000000, "MIN_BBXMIN": 104.975000, "MAX_BBXMIN": 105.616287, "MIN_BBXMAX": 106.229400, "MAX_BBXMAX": 106.808333, "MIN_BBYMIN": 19.283333, "MAX_BBYMIN": 20.620237, "MIN_BBYMAX": 21.319209, "MAX_BBYMAX": 21.783333, "MEAN_BBXC": 105.892881, "MEAN_BBYC": 20.873406, "COMPARE": 0, "GN_ASCII": "Ha Noi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 44.000000, "GN_POP": 1431270.000000, "ELEVATION": 0.000000, "GTOPO30": 26.000000, "TIMEZONE": "Asia\/Ho_Chi_Minh", "GEONAMESNO": "GeoNames match general.", "UN_FID": 451, "UN_ADM0": "Viet Nam", "UN_LAT": 21.030000, "UN_LONG": 105.820000, "POP1950": 280.000000, "POP1955": 425.000000, "POP1960": 644.000000, "POP1965": 917.000000, "POP1970": 1307.000000, "POP1975": 1884.000000, "POP1980": 2606.000000, "POP1985": 2854.000000, "POP1990": 3126.000000, "POP1995": 3424.000000, "POP2000": 3752.000000, "POP2005": 4170.000000, "POP2010": 4378.000000, "POP2015": 4723.000000, "POP2020": 5357.000000, "POP2025": 6036.000000, "POP2050": 6754.000000, "CITYALT": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 11782953.069198, 2396085.026473 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Ankara", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Ankara", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Turkey", "SOV_A3": "TUR", "ADM0NAME": "Turkey", "ADM0_A3": "TUR", "ADM1NAME": "Ankara", "ISO_A2": "TR", "NOTE": null, "LATITUDE": 39.927239, "LONGITUDE": 32.864392, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3716000, "POP_MIN": 3307379, "POP_OTHER": 3267576, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 323786.000000, "MEGANAME": "Ankara", "LS_NAME": "Ankara", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3307379.000000, "MAX_POP20": 3306823.000000, "MAX_POP50": 3306823.000000, "MAX_POP300": 3306823.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 531.000000, "MAX_AREAKM": 534.000000, "MIN_AREAMI": 205.000000, "MAX_AREAMI": 206.000000, "MIN_PERKM": 355.000000, "MAX_PERKM": 365.000000, "MIN_PERMI": 221.000000, "MAX_PERMI": 227.000000, "MIN_BBXMIN": 32.425000, "MAX_BBXMIN": 32.425000, "MIN_BBXMAX": 33.008333, "MAX_BBXMAX": 33.008333, "MIN_BBYMIN": 39.841667, "MAX_BBYMIN": 39.841667, "MIN_BBYMAX": 40.116667, "MAX_BBYMAX": 40.116667, "MEAN_BBXC": 32.753878, "MEAN_BBYC": 39.957843, "COMPARE": 0, "GN_ASCII": "Ankara", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 68.000000, "GN_POP": 3517182.000000, "ELEVATION": 850.000000, "GTOPO30": 889.000000, "TIMEZONE": "Europe\/Istanbul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 500, "UN_ADM0": "Turkey", "UN_LAT": 39.920000, "UN_LONG": 32.850000, "POP1950": 281.000000, "POP1955": 439.000000, "POP1960": 635.000000, "POP1965": 954.000000, "POP1970": 1341.000000, "POP1975": 1709.000000, "POP1980": 1891.000000, "POP1985": 2213.000000, "POP1990": 2561.000000, "POP1995": 2842.000000, "POP2000": 3179.000000, "POP2005": 3572.000000, "POP2010": 3716.000000, "POP2015": 3908.000000, "POP2020": 4178.000000, "POP2025": 4403.000000, "POP2050": 4589.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3658230.730713, 4855656.885846 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Budapest", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Budapest", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Hungary", "SOV_A3": "HUN", "ADM0NAME": "Hungary", "ADM0_A3": "HUN", "ADM1NAME": "Budapest", "ISO_A2": "HU", "NOTE": null, "LATITUDE": 47.500006, "LONGITUDE": 19.083321, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1679000, "POP_MIN": 1679000, "POP_OTHER": 1718895, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3054643.000000, "MEGANAME": "Budapest", "LS_NAME": "Budapest", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1788020.000000, "MAX_POP20": 1788020.000000, "MAX_POP50": 1788020.000000, "MAX_POP300": 1788020.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 556.000000, "MAX_AREAKM": 556.000000, "MIN_AREAMI": 215.000000, "MAX_AREAMI": 215.000000, "MIN_PERKM": 460.000000, "MAX_PERKM": 460.000000, "MIN_PERMI": 286.000000, "MAX_PERMI": 286.000000, "MIN_BBXMIN": 18.850000, "MAX_BBXMIN": 18.850000, "MIN_BBXMAX": 19.416667, "MAX_BBXMAX": 19.416667, "MIN_BBYMIN": 47.350000, "MAX_BBYMIN": 47.350000, "MIN_BBYMAX": 47.658333, "MAX_BBYMAX": 47.658333, "MEAN_BBXC": 19.106763, "MEAN_BBYC": 47.478602, "COMPARE": 0, "GN_ASCII": "Budapest", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 1696128.000000, "ELEVATION": 0.000000, "GTOPO30": 100.000000, "TIMEZONE": "Europe\/Budapest", "GEONAMESNO": "GeoNames match general.", "UN_FID": 211, "UN_ADM0": "Hungary", "UN_LAT": 47.510000, "UN_LONG": 19.090000, "POP1950": 1618.000000, "POP1955": 1714.000000, "POP1960": 1811.000000, "POP1965": 1878.000000, "POP1970": 1946.000000, "POP1975": 2005.000000, "POP1980": 2057.000000, "POP1985": 2036.000000, "POP1990": 2005.000000, "POP1995": 1893.000000, "POP2000": 1787.000000, "POP2005": 1693.000000, "POP2010": 1679.000000, "POP2015": 1664.000000, "POP2020": 1655.000000, "POP2025": 1655.000000, "POP2050": 1655.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2124128.928459, 6024393.794077 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Sanaa", "NAMEPAR": null, "NAMEALT": "Sana'a'", "DIFFASCII": 0, "NAMEASCII": "Sanaa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Yemen", "SOV_A3": "YEM", "ADM0NAME": "Yemen", "ADM0_A3": "YEM", "ADM1NAME": "Amanat Al Asimah", "ISO_A2": "YE", "NOTE": null, "LATITUDE": 15.354733, "LONGITUDE": 44.206593, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2008000, "POP_MIN": 1835853, "POP_OTHER": 1742507, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 71137.000000, "MEGANAME": "Sana'a'", "LS_NAME": "Sanaa", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1835853.000000, "MAX_POP20": 1835853.000000, "MAX_POP50": 1835853.000000, "MAX_POP300": 1835853.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 160.000000, "MAX_AREAKM": 160.000000, "MIN_AREAMI": 62.000000, "MAX_AREAMI": 62.000000, "MIN_PERKM": 132.000000, "MAX_PERKM": 132.000000, "MIN_PERMI": 82.000000, "MAX_PERMI": 82.000000, "MIN_BBXMIN": 44.150000, "MAX_BBXMIN": 44.150000, "MIN_BBXMAX": 44.258333, "MAX_BBXMAX": 44.258333, "MIN_BBYMIN": 15.266667, "MAX_BBYMIN": 15.266667, "MIN_BBYMAX": 15.508333, "MAX_BBYMAX": 15.508333, "MEAN_BBXC": 44.206615, "MEAN_BBYC": 15.376031, "COMPARE": 0, "GN_ASCII": "Sanaa", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 587, "UN_ADM0": "Yemen", "UN_LAT": 15.360000, "UN_LONG": 44.200000, "POP1950": 46.000000, "POP1955": 58.000000, "POP1960": 72.000000, "POP1965": 89.000000, "POP1970": 111.000000, "POP1975": 141.000000, "POP1980": 238.000000, "POP1985": 402.000000, "POP1990": 653.000000, "POP1995": 1034.000000, "POP2000": 1365.000000, "POP2005": 1801.000000, "POP2010": 2008.000000, "POP2015": 2345.000000, "POP2020": 2955.000000, "POP2025": 3636.000000, "POP2050": 4382.000000, "CITYALT": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 4920838.853060, 1730340.721774 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Bucharest", "NAMEPAR": "Bucuresti", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Bucharest", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Romania", "SOV_A3": "ROU", "ADM0NAME": "Romania", "ADM0_A3": "ROU", "ADM1NAME": "Bucharest", "ISO_A2": "RO", "NOTE": null, "LATITUDE": 44.433372, "LONGITUDE": 26.099947, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1942000, "POP_MIN": 1742194, "POP_OTHER": 1636574, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 683506.000000, "MEGANAME": "Bucuresti", "LS_NAME": "Bucharest", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1742194.000000, "MAX_POP20": 1742194.000000, "MAX_POP50": 1742194.000000, "MAX_POP300": 1742194.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 345.000000, "MAX_AREAKM": 345.000000, "MIN_AREAMI": 133.000000, "MAX_AREAMI": 133.000000, "MIN_PERKM": 357.000000, "MAX_PERKM": 357.000000, "MIN_PERMI": 222.000000, "MAX_PERMI": 222.000000, "MIN_BBXMIN": 25.866667, "MAX_BBXMIN": 25.866667, "MIN_BBXMAX": 26.250000, "MAX_BBXMAX": 26.250000, "MIN_BBYMIN": 44.316667, "MAX_BBYMIN": 44.316667, "MIN_BBYMAX": 44.641667, "MAX_BBYMAX": 44.641667, "MEAN_BBXC": 26.082182, "MEAN_BBYC": 44.444110, "COMPARE": 0, "GN_ASCII": "Bucuresti", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 1877155.000000, "ELEVATION": 0.000000, "GTOPO30": 71.000000, "TIMEZONE": "Europe\/Bucharest", "GEONAMESNO": "GeoNames match general.", "UN_FID": 422, "UN_ADM0": "Romania", "UN_LAT": 44.430000, "UN_LONG": 26.120000, "POP1950": 652.000000, "POP1955": 856.000000, "POP1960": 1002.000000, "POP1965": 1154.000000, "POP1970": 1396.000000, "POP1975": 1702.000000, "POP1980": 1865.000000, "POP1985": 1950.000000, "POP1990": 2040.000000, "POP1995": 2018.000000, "POP2000": 1949.000000, "POP2005": 1936.000000, "POP2010": 1942.000000, "POP2015": 1947.000000, "POP2020": 1949.000000, "POP2025": 1949.000000, "POP2050": 1949.000000, "CITYALT": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 2905216.159260, 5533057.598962 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Damascus", "NAMEPAR": null, "NAMEALT": "Dimashq", "DIFFASCII": 0, "NAMEASCII": "Damascus", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Syria", "SOV_A3": "SYR", "ADM0NAME": "Syria", "ADM0_A3": "SYR", "ADM1NAME": "Damascus", "ISO_A2": "SY", "NOTE": null, "LATITUDE": 33.500034, "LONGITUDE": 36.299996, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2466000, "POP_MIN": 2466000, "POP_OTHER": 3344577, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 170654.000000, "MEGANAME": "Dimashq", "LS_NAME": "Damascus", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3398649.000000, "MAX_POP20": 3865606.000000, "MAX_POP50": 3865606.000000, "MAX_POP300": 3865606.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 532.000000, "MAX_AREAKM": 705.000000, "MIN_AREAMI": 205.000000, "MAX_AREAMI": 272.000000, "MIN_PERKM": 608.000000, "MAX_PERKM": 768.000000, "MIN_PERMI": 378.000000, "MAX_PERMI": 477.000000, "MIN_BBXMIN": 36.050000, "MAX_BBXMIN": 36.050000, "MIN_BBXMAX": 36.474923, "MAX_BBXMAX": 36.550000, "MIN_BBYMIN": 33.283333, "MAX_BBYMIN": 33.283333, "MIN_BBYMAX": 33.611711, "MAX_BBYMAX": 33.625000, "MEAN_BBXC": 36.275119, "MEAN_BBYC": 33.474283, "COMPARE": 0, "GN_ASCII": "Damascus", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 493, "UN_ADM0": "Syrian Arab Republic", "UN_LAT": 33.490000, "UN_LONG": 36.290000, "POP1950": 367.000000, "POP1955": 461.000000, "POP1960": 579.000000, "POP1965": 727.000000, "POP1970": 914.000000, "POP1975": 1122.000000, "POP1980": 1376.000000, "POP1985": 1546.000000, "POP1990": 1691.000000, "POP1995": 1849.000000, "POP2000": 2044.000000, "POP2005": 2330.000000, "POP2010": 2466.000000, "POP2015": 2675.000000, "POP2020": 2981.000000, "POP2025": 3293.000000, "POP2050": 3605.000000, "CITYALT": "Damascus" }, "geometry": { "type": "Point", "coordinates": [ 4040680.446174, 3962124.520875 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Lisbon", "NAMEPAR": "Lisboa", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lisbon", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Portugal", "SOV_A3": "PRT", "ADM0NAME": "Portugal", "ADM0_A3": "PRT", "ADM1NAME": "Lisboa", "ISO_A2": "PT", "NOTE": null, "LATITUDE": 38.722723, "LONGITUDE": -9.144866, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 2812000, "POP_MIN": 517802, "POP_OTHER": 1795582, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2267057.000000, "MEGANAME": "Lisboa", "LS_NAME": "Lisbon", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1832316.000000, "MAX_POP20": 1831921.000000, "MAX_POP50": 1831921.000000, "MAX_POP300": 1831921.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 506.000000, "MAX_AREAKM": 508.000000, "MIN_AREAMI": 196.000000, "MAX_AREAMI": 196.000000, "MIN_PERKM": 355.000000, "MAX_PERKM": 360.000000, "MIN_PERMI": 221.000000, "MAX_PERMI": 224.000000, "MIN_BBXMIN": -9.466667, "MAX_BBXMIN": -9.466667, "MIN_BBXMAX": -8.958333, "MAX_BBXMAX": -8.958333, "MIN_BBYMIN": 38.675000, "MAX_BBYMIN": 38.675000, "MIN_BBYMAX": 39.008333, "MAX_BBYMAX": 39.008333, "MEAN_BBXC": -9.232769, "MEAN_BBYC": 38.783256, "COMPARE": 0, "GN_ASCII": "Lisbon", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 14.000000, "GN_POP": 517802.000000, "ELEVATION": 0.000000, "GTOPO30": 56.000000, "TIMEZONE": "Europe\/Lisbon", "GEONAMESNO": "GeoNames match general.", "UN_FID": 419, "UN_ADM0": "Portugal", "UN_LAT": 38.720000, "UN_LONG": -9.120000, "POP1950": 1304.000000, "POP1955": 1405.000000, "POP1960": 1514.000000, "POP1965": 1657.000000, "POP1970": 1817.000000, "POP1975": 2103.000000, "POP1980": 2449.000000, "POP1985": 2518.000000, "POP1990": 2537.000000, "POP1995": 2600.000000, "POP2000": 2672.000000, "POP2005": 2762.000000, "POP2010": 2812.000000, "POP2015": 2890.000000, "POP2020": 2996.000000, "POP2025": 3058.000000, "POP2050": 3086.000000, "CITYALT": "Lisbon" }, "geometry": { "type": "Point", "coordinates": [ -1018218.472489, 4682309.117462 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Khartoum", "NAMEPAR": null, "NAMEALT": "Al-Khartum", "DIFFASCII": 0, "NAMEASCII": "Khartoum", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Sudan", "SOV_A3": "SDN", "ADM0NAME": "Sudan", "ADM0_A3": "SDN", "ADM1NAME": "Khartoum", "ISO_A2": "SD", "NOTE": null, "LATITUDE": 15.588078, "LONGITUDE": 32.534179, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4754000, "POP_MIN": 1974647, "POP_OTHER": 2325931, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 379252.000000, "MEGANAME": "Al-Khartum", "LS_NAME": "Khartoum", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2395309.000000, "MAX_POP20": 2395309.000000, "MAX_POP50": 2395309.000000, "MAX_POP300": 4542697.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 348.000000, "MAX_AREAKM": 630.000000, "MIN_AREAMI": 134.000000, "MAX_AREAMI": 243.000000, "MIN_PERKM": 237.000000, "MAX_PERKM": 424.000000, "MIN_PERMI": 147.000000, "MAX_PERMI": 263.000000, "MIN_BBXMIN": 32.341667, "MAX_BBXMIN": 32.458333, "MIN_BBXMAX": 32.691667, "MAX_BBXMAX": 32.691667, "MIN_BBYMIN": 15.325000, "MAX_BBYMIN": 15.325000, "MIN_BBYMAX": 15.699422, "MAX_BBYMAX": 15.825000, "MEAN_BBXC": 32.550462, "MEAN_BBYC": 15.559101, "COMPARE": 0, "GN_ASCII": "Khartoum", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 29.000000, "GN_POP": 1974647.000000, "ELEVATION": 0.000000, "GTOPO30": 378.000000, "TIMEZONE": "Africa\/Khartoum", "GEONAMESNO": "GeoNames match general.", "UN_FID": 466, "UN_ADM0": "Sudan", "UN_LAT": 15.550000, "UN_LONG": 32.520000, "POP1950": 183.000000, "POP1955": 252.000000, "POP1960": 347.000000, "POP1965": 477.000000, "POP1970": 657.000000, "POP1975": 886.000000, "POP1980": 1164.000000, "POP1985": 1611.000000, "POP1990": 2360.000000, "POP1995": 3242.000000, "POP2000": 3949.000000, "POP2005": 4518.000000, "POP2010": 4754.000000, "POP2015": 5185.000000, "POP2020": 6077.000000, "POP2025": 7017.000000, "POP2050": 7937.000000, "CITYALT": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 3621471.654230, 1757293.494148 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Oslo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Oslo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Kingdom of Norway", "SOV_A3": "NOR", "ADM0NAME": "Norway", "ADM0_A3": "NOR", "ADM1NAME": "Oslo", "ISO_A2": "NO", "NOTE": null, "LATITUDE": 59.916690, "LONGITUDE": 10.749979, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 835000, "POP_MIN": 580000, "POP_OTHER": 701804, "RANK_MAX": 11, "RANK_MIN": 11, "GEONAMEID": 3143244.000000, "MEGANAME": "Oslo", "LS_NAME": "Oslo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 731563.000000, "MAX_POP20": 731563.000000, "MAX_POP50": 762374.000000, "MAX_POP300": 762374.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 329.000000, "MAX_AREAKM": 362.000000, "MIN_AREAMI": 127.000000, "MAX_AREAMI": 140.000000, "MIN_PERKM": 340.000000, "MAX_PERKM": 390.000000, "MIN_PERMI": 211.000000, "MAX_PERMI": 243.000000, "MIN_BBXMIN": 10.333333, "MAX_BBXMIN": 10.440355, "MIN_BBXMAX": 11.091667, "MAX_BBXMAX": 11.091667, "MIN_BBYMIN": 59.708333, "MAX_BBYMIN": 59.708333, "MIN_BBYMAX": 60.066667, "MAX_BBYMAX": 60.066667, "MEAN_BBXC": 10.756508, "MEAN_BBYC": 59.906118, "COMPARE": 0, "GN_ASCII": "Oslo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 580000.000000, "ELEVATION": 0.000000, "GTOPO30": 11.000000, "TIMEZONE": "Europe\/Oslo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 397, "UN_ADM0": "Norway", "UN_LAT": 59.930000, "UN_LONG": 10.710000, "POP1950": 468.000000, "POP1955": 533.000000, "POP1960": 578.000000, "POP1965": 610.000000, "POP1970": 643.000000, "POP1975": 644.000000, "POP1980": 643.000000, "POP1985": 662.000000, "POP1990": 684.000000, "POP1995": 729.000000, "POP2000": 774.000000, "POP2005": 816.000000, "POP2010": 835.000000, "POP2015": 858.000000, "POP2020": 885.000000, "POP2025": 909.000000, "POP2050": 936.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1196465.599258, 8381645.359268 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Warsaw", "NAMEPAR": "Warszawa", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Warsaw", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Poland", "SOV_A3": "POL", "ADM0NAME": "Poland", "ADM0_A3": "POL", "ADM1NAME": "Masovian", "ISO_A2": "PL", "NOTE": null, "LATITUDE": 52.250001, "LONGITUDE": 21.000000, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1707000, "POP_MIN": 1702139, "POP_OTHER": 2012431, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 756135.000000, "MEGANAME": "Warszawa", "LS_NAME": "Warsaw", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2129163.000000, "MAX_POP20": 2129163.000000, "MAX_POP50": 2129163.000000, "MAX_POP300": 2129163.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 802.000000, "MAX_AREAKM": 802.000000, "MIN_AREAMI": 310.000000, "MAX_AREAMI": 310.000000, "MIN_PERKM": 759.000000, "MAX_PERKM": 759.000000, "MIN_PERMI": 471.000000, "MAX_PERMI": 471.000000, "MIN_BBXMIN": 20.666667, "MAX_BBXMIN": 20.666667, "MIN_BBXMAX": 21.358333, "MAX_BBXMAX": 21.358333, "MIN_BBYMIN": 52.033333, "MAX_BBYMIN": 52.033333, "MIN_BBYMAX": 52.433333, "MAX_BBYMAX": 52.433333, "MEAN_BBXC": 21.031458, "MEAN_BBYC": 52.230916, "COMPARE": 0, "GN_ASCII": "Warsaw", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 78.000000, "GN_POP": 1702139.000000, "ELEVATION": 0.000000, "GTOPO30": 94.000000, "TIMEZONE": "Europe\/Warsaw", "GEONAMESNO": "GeoNames match general.", "UN_FID": 418, "UN_ADM0": "Poland", "UN_LAT": 52.240000, "UN_LONG": 21.010000, "POP1950": 768.000000, "POP1955": 942.000000, "POP1960": 1119.000000, "POP1965": 1212.000000, "POP1970": 1300.000000, "POP1975": 1444.000000, "POP1980": 1565.000000, "POP1985": 1596.000000, "POP1990": 1628.000000, "POP1995": 1652.000000, "POP2000": 1666.000000, "POP2005": 1693.000000, "POP2010": 1707.000000, "POP2015": 1724.000000, "POP2020": 1735.000000, "POP2025": 1736.000000, "POP2050": 1736.000000, "CITYALT": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 2337492.644695, 6845809.440340 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Pyongyang", "NAMEPAR": null, "NAMEALT": "P'yongyang", "DIFFASCII": 0, "NAMEASCII": "Pyongyang", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Korea, North", "SOV_A3": "PRK", "ADM0NAME": "North Korea", "ADM0_A3": "PRK", "ADM1NAME": "P'yongyang", "ISO_A2": "KP", "NOTE": null, "LATITUDE": 39.019439, "LONGITUDE": 125.754691, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3300000, "POP_MIN": 2498797, "POP_OTHER": 2483216, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1871859.000000, "MEGANAME": "P'yongyang", "LS_NAME": "Pyongyang", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2498797.000000, "MAX_POP20": 2498797.000000, "MAX_POP50": 2498797.000000, "MAX_POP300": 2498797.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 446.000000, "MAX_AREAKM": 447.000000, "MIN_AREAMI": 172.000000, "MAX_AREAMI": 173.000000, "MIN_PERKM": 510.000000, "MAX_PERKM": 511.000000, "MIN_PERMI": 317.000000, "MAX_PERMI": 318.000000, "MIN_BBXMIN": 125.608333, "MAX_BBXMIN": 125.608333, "MIN_BBXMAX": 125.891667, "MAX_BBXMAX": 125.891667, "MIN_BBYMIN": 38.825000, "MAX_BBYMIN": 38.825000, "MIN_BBYMAX": 39.191667, "MAX_BBYMAX": 39.191667, "MEAN_BBXC": 125.742428, "MEAN_BBYC": 38.996997, "COMPARE": 0, "GN_ASCII": "Pyongyang", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 3222000.000000, "ELEVATION": 0.000000, "GTOPO30": 13.000000, "TIMEZONE": "Asia\/Pyongyang", "GEONAMESNO": "GeoNames match general.", "UN_FID": 327, "UN_ADM0": "Democratic People's Republic of Korea", "UN_LAT": 39.020000, "UN_LONG": 125.750000, "POP1950": 516.000000, "POP1955": 577.000000, "POP1960": 646.000000, "POP1965": 769.000000, "POP1970": 987.000000, "POP1975": 1348.000000, "POP1980": 1842.000000, "POP1985": 2195.000000, "POP1990": 2526.000000, "POP1995": 2838.000000, "POP2000": 3117.000000, "POP2005": 3265.000000, "POP2010": 3300.000000, "POP2015": 3346.000000, "POP2020": 3434.000000, "POP2025": 3537.000000, "POP2050": 3630.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13998731.523114, 4724735.190090 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Dar es Salaam", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dar es Salaam", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto capita", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "United Republic of Tanzania", "SOV_A3": "TZA", "ADM0NAME": "Tanzania", "ADM0_A3": "TZA", "ADM1NAME": "Dar-Es-Salaam", "ISO_A2": "TZ", "NOTE": null, "LATITUDE": -6.800013, "LONGITUDE": 39.268342, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2930000, "POP_MIN": 2698652, "POP_OTHER": 2757835, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 160263.000000, "MEGANAME": "Dar es Salaam", "LS_NAME": "Dar es Salaam", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2757507.000000, "MAX_POP20": 2757507.000000, "MAX_POP50": 2757507.000000, "MAX_POP300": 2757507.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 211.000000, "MAX_AREAKM": 211.000000, "MIN_AREAMI": 81.000000, "MAX_AREAMI": 81.000000, "MIN_PERKM": 153.000000, "MAX_PERKM": 153.000000, "MIN_PERMI": 95.000000, "MAX_PERMI": 95.000000, "MIN_BBXMIN": 39.150000, "MAX_BBXMIN": 39.150000, "MIN_BBXMAX": 39.325000, "MAX_BBXMAX": 39.325000, "MIN_BBYMIN": -6.933333, "MAX_BBYMIN": -6.933333, "MIN_BBYMAX": -6.725000, "MAX_BBYMAX": -6.725000, "MEAN_BBXC": 39.239180, "MEAN_BBYC": -6.833434, "COMPARE": 0, "GN_ASCII": "Dar es Salaam", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 23.000000, "GN_POP": 2698652.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Africa\/Dar_es_Salaam", "GEONAMESNO": "GeoNames match general.", "UN_FID": 523, "UN_ADM0": "United Republic of Tanzania", "UN_LAT": -6.810000, "UN_LONG": 39.250000, "POP1950": 67.000000, "POP1955": 110.000000, "POP1960": 162.000000, "POP1965": 233.000000, "POP1970": 357.000000, "POP1975": 572.000000, "POP1980": 836.000000, "POP1985": 1046.000000, "POP1990": 1316.000000, "POP1995": 1668.000000, "POP2000": 2116.000000, "POP2005": 2679.000000, "POP2010": 2930.000000, "POP2015": 3319.000000, "POP2020": 4020.000000, "POP2025": 4804.000000, "POP2050": 5688.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4371115.205524, -758539.143979 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Dublin", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dublin", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Ireland", "SOV_A3": "IRL", "ADM0NAME": "Ireland", "ADM0_A3": "IRL", "ADM1NAME": "Dublin", "ISO_A2": "IE", "NOTE": null, "LATITUDE": 53.333061, "LONGITUDE": -6.248906, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1059000, "POP_MIN": 968976, "POP_OTHER": 22478, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2964574.000000, "MEGANAME": "Dublin", "LS_NAME": "Dublin2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 968976.000000, "MAX_POP20": 968976.000000, "MAX_POP50": 968976.000000, "MAX_POP300": 968976.000000, "MAX_POP310": 968976.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 351.000000, "MAX_AREAKM": 351.000000, "MIN_AREAMI": 135.000000, "MAX_AREAMI": 135.000000, "MIN_PERKM": 250.000000, "MAX_PERKM": 250.000000, "MIN_PERMI": 155.000000, "MAX_PERMI": 155.000000, "MIN_BBXMIN": -6.533333, "MAX_BBXMIN": -6.533333, "MIN_BBXMAX": -6.041667, "MAX_BBXMAX": -6.041667, "MIN_BBYMIN": 53.175000, "MAX_BBYMIN": 53.175000, "MIN_BBYMAX": 53.433333, "MAX_BBYMAX": 53.433333, "MEAN_BBXC": -6.278983, "MEAN_BBYC": 53.329717, "COMPARE": 0, "GN_ASCII": "Dublin", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 1024027.000000, "ELEVATION": 0.000000, "GTOPO30": 9.000000, "TIMEZONE": "Europe\/Dublin", "GEONAMESNO": "GeoNames match general.", "UN_FID": 302, "UN_ADM0": "Ireland", "UN_LAT": 53.340000, "UN_LONG": -6.250000, "POP1950": 626.000000, "POP1955": 647.000000, "POP1960": 661.000000, "POP1965": 723.000000, "POP1970": 771.000000, "POP1975": 833.000000, "POP1980": 903.000000, "POP1985": 920.000000, "POP1990": 916.000000, "POP1995": 946.000000, "POP2000": 989.000000, "POP2005": 1037.000000, "POP2010": 1059.000000, "POP2015": 1098.000000, "POP2020": 1177.000000, "POP2025": 1257.000000, "POP2050": 1332.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -695841.610500, 7045207.162612 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Monrovia", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Monrovia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Liberia", "SOV_A3": "LBR", "ADM0NAME": "Liberia", "ADM0_A3": "LBR", "ADM1NAME": "Montserrado", "ISO_A2": "LR", "NOTE": null, "LATITUDE": 6.310557, "LONGITUDE": -10.804752, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1041000, "POP_MIN": 785662, "POP_OTHER": 806416, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2274895.000000, "MEGANAME": "Monrovia", "LS_NAME": "Monrovia", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 785662.000000, "MAX_POP20": 781295.000000, "MAX_POP50": 781295.000000, "MAX_POP300": 781295.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 141.000000, "MAX_AREAKM": 152.000000, "MIN_AREAMI": 54.000000, "MAX_AREAMI": 59.000000, "MIN_PERKM": 164.000000, "MAX_PERKM": 184.000000, "MIN_PERMI": 102.000000, "MAX_PERMI": 115.000000, "MIN_BBXMIN": -10.816667, "MAX_BBXMIN": -10.816667, "MIN_BBXMAX": -10.658333, "MAX_BBXMAX": -10.658333, "MIN_BBYMIN": 6.225000, "MAX_BBYMIN": 6.225000, "MIN_BBYMAX": 6.400000, "MAX_BBYMAX": 6.400000, "MEAN_BBXC": -10.734923, "MEAN_BBYC": 6.317829, "COMPARE": 0, "GN_ASCII": "Monrovia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 14.000000, "GN_POP": 939524.000000, "ELEVATION": 0.000000, "GTOPO30": 30.000000, "TIMEZONE": "Africa\/Monrovia", "GEONAMESNO": "GeoNames match general.", "UN_FID": 342, "UN_ADM0": "Liberia", "UN_LAT": 6.300000, "UN_LONG": -10.790000, "POP1950": 15.000000, "POP1955": 34.000000, "POP1960": 75.000000, "POP1965": 121.000000, "POP1970": 164.000000, "POP1975": 226.000000, "POP1980": 325.000000, "POP1985": 514.000000, "POP1990": 1042.000000, "POP1995": 464.000000, "POP2000": 836.000000, "POP2005": 1140.000000, "POP2010": 1041.000000, "POP2015": 1185.000000, "POP2020": 1457.000000, "POP2025": 1753.000000, "POP2050": 2083.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1202212.700562, 704363.361534 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Kuala Lumpur", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kuala Lumpur", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official and le", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Malaysia", "SOV_A3": "MYS", "ADM0NAME": "Malaysia", "ADM0_A3": "MYS", "ADM1NAME": "Selangor", "ISO_A2": "MY", "NOTE": null, "LATITUDE": 3.166666, "LONGITUDE": 101.699983, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1448000, "POP_MIN": 1448000, "POP_OTHER": 2667990, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1735161.000000, "MEGANAME": "Kuala Lumpur", "LS_NAME": "Kuala Lumpur", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2750755.000000, "MAX_POP20": 2750755.000000, "MAX_POP50": 3468789.000000, "MAX_POP300": 4983714.000000, "MAX_POP310": 4983714.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 666.000000, "MAX_AREAKM": 1700.000000, "MIN_AREAMI": 257.000000, "MAX_AREAMI": 657.000000, "MIN_PERKM": 350.000000, "MAX_PERKM": 1111.000000, "MIN_PERMI": 217.000000, "MAX_PERMI": 690.000000, "MIN_BBXMIN": 101.358333, "MAX_BBXMIN": 101.491667, "MIN_BBXMAX": 101.841667, "MAX_BBXMAX": 101.891667, "MIN_BBYMIN": 2.700000, "MAX_BBYMIN": 3.040173, "MIN_BBYMAX": 3.475000, "MAX_BBYMAX": 3.475000, "MEAN_BBXC": 101.644598, "MEAN_BBYC": 3.131431, "COMPARE": 0, "GN_ASCII": "Kuala Lumpur", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 14.000000, "GN_POP": 1453975.000000, "ELEVATION": 0.000000, "GTOPO30": 62.000000, "TIMEZONE": "Asia\/Kuala_Lumpur", "GEONAMESNO": "GeoNames match general.", "UN_FID": 348, "UN_ADM0": "Malaysia", "UN_LAT": 3.140000, "UN_LONG": 101.700000, "POP1950": 208.000000, "POP1955": 281.000000, "POP1960": 344.000000, "POP1965": 394.000000, "POP1970": 451.000000, "POP1975": 645.000000, "POP1980": 921.000000, "POP1985": 1016.000000, "POP1990": 1120.000000, "POP1995": 1213.000000, "POP2000": 1306.000000, "POP2005": 1405.000000, "POP2010": 1448.000000, "POP2015": 1519.000000, "POP2020": 1670.000000, "POP2025": 1820.000000, "POP2050": 1938.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11320973.739907, 352908.178702 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Havana", "NAMEPAR": null, "NAMEALT": "La Habana", "DIFFASCII": 0, "NAMEASCII": "Havana", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Cuba", "SOV_A3": "CUB", "ADM0NAME": "Cuba", "ADM0_A3": "CUB", "ADM1NAME": "Ciudad de la Habana", "ISO_A2": "CU", "NOTE": null, "LATITUDE": 23.131959, "LONGITUDE": -82.364182, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2174000, "POP_MIN": 1990917, "POP_OTHER": 1930305, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3553478.000000, "MEGANAME": "La Habana", "LS_NAME": "Havana", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1990917.000000, "MAX_POP20": 2051170.000000, "MAX_POP50": 2051170.000000, "MAX_POP300": 2051170.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 323.000000, "MAX_AREAKM": 362.000000, "MIN_AREAMI": 125.000000, "MAX_AREAMI": 140.000000, "MIN_PERKM": 240.000000, "MAX_PERKM": 286.000000, "MIN_PERMI": 149.000000, "MAX_PERMI": 177.000000, "MIN_BBXMIN": -82.533333, "MAX_BBXMIN": -82.533333, "MIN_BBXMAX": -82.208333, "MAX_BBXMAX": -82.208333, "MIN_BBYMIN": 22.916667, "MAX_BBYMIN": 22.975161, "MIN_BBYMAX": 23.183333, "MAX_BBYMAX": 23.183333, "MEAN_BBXC": -82.354344, "MEAN_BBYC": 23.076845, "COMPARE": 0, "GN_ASCII": "Havana", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 2.000000, "GN_POP": 2163824.000000, "ELEVATION": 0.000000, "GTOPO30": 5.000000, "TIMEZONE": "America\/Havana", "GEONAMESNO": "GeoNames match general.", "UN_FID": 172, "UN_ADM0": "Cuba", "UN_LAT": 23.040000, "UN_LONG": -82.410000, "POP1950": 1116.000000, "POP1955": 1289.000000, "POP1960": 1436.000000, "POP1965": 1598.000000, "POP1970": 1779.000000, "POP1975": 1848.000000, "POP1980": 1913.000000, "POP1985": 2005.000000, "POP1990": 2108.000000, "POP1995": 2183.000000, "POP2000": 2187.000000, "POP2005": 2189.000000, "POP2010": 2174.000000, "POP2015": 2159.000000, "POP2020": 2151.000000, "POP2025": 2150.000000, "POP2050": 2150.000000, "CITYALT": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -9168955.430907, 2648220.198172 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Prague", "NAMEPAR": "Praha", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Prague", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Czech Republic", "SOV_A3": "CZE", "ADM0NAME": "Czech Republic", "ADM0_A3": "CZE", "ADM1NAME": "Prague", "ISO_A2": "CZ", "NOTE": null, "LATITUDE": 50.083337, "LONGITUDE": 14.465980, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1162000, "POP_MIN": 2087, "POP_OTHER": 1088042, "RANK_MAX": 12, "RANK_MIN": 4, "GEONAMEID": 4548393.000000, "MEGANAME": "Praha", "LS_NAME": "Prague", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1115771.000000, "MAX_POP20": 1115771.000000, "MAX_POP50": 1115771.000000, "MAX_POP300": 1115771.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 317.000000, "MAX_AREAKM": 317.000000, "MIN_AREAMI": 122.000000, "MAX_AREAMI": 122.000000, "MIN_PERKM": 249.000000, "MAX_PERKM": 249.000000, "MIN_PERMI": 155.000000, "MAX_PERMI": 155.000000, "MIN_BBXMIN": 14.266667, "MAX_BBXMIN": 14.266667, "MIN_BBXMAX": 14.616667, "MAX_BBXMAX": 14.616667, "MIN_BBYMIN": 49.950000, "MAX_BBYMIN": 49.950000, "MIN_BBYMAX": 50.183333, "MAX_BBYMAX": 50.183333, "MEAN_BBXC": 14.445557, "MEAN_BBYC": 50.073451, "COMPARE": 0, "GN_ASCII": "Prague", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 2087.000000, "ELEVATION": 308.000000, "GTOPO30": 306.000000, "TIMEZONE": "America\/Chicago", "GEONAMESNO": "GeoNames match general.", "UN_FID": 173, "UN_ADM0": "Czech Republic", "UN_LAT": 50.100000, "UN_LONG": 14.450000, "POP1950": 935.000000, "POP1955": 967.000000, "POP1960": 1001.000000, "POP1965": 1038.000000, "POP1970": 1076.000000, "POP1975": 1126.000000, "POP1980": 1179.000000, "POP1985": 1197.000000, "POP1990": 1212.000000, "POP1995": 1194.000000, "POP2000": 1172.000000, "POP2005": 1164.000000, "POP2010": 1162.000000, "POP2015": 1160.000000, "POP2020": 1159.000000, "POP2025": 1159.000000, "POP2050": 1159.000000, "CITYALT": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 1610128.890462, 6461058.453053 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Kuwait", "NAMEPAR": null, "NAMEALT": "Al Kuwayt|Kuwait City", "DIFFASCII": 0, "NAMEASCII": "Kuwait", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Kuwait", "SOV_A3": "KWT", "ADM0NAME": "Kuwait", "ADM0_A3": "KWT", "ADM1NAME": "Al Kuwayt", "ISO_A2": "KW", "NOTE": null, "LATITUDE": 29.369718, "LONGITUDE": 47.978301, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2063000, "POP_MIN": 60064, "POP_OTHER": 1682968, "RANK_MAX": 12, "RANK_MIN": 8, "GEONAMEID": 285787.000000, "MEGANAME": "Al Kuwayt (Kuwait City)", "LS_NAME": "Kuwait", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1732952.000000, "MAX_POP20": 2142805.000000, "MAX_POP50": 2142805.000000, "MAX_POP300": 2142805.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 264.000000, "MAX_AREAKM": 366.000000, "MIN_AREAMI": 102.000000, "MAX_AREAMI": 141.000000, "MIN_PERKM": 162.000000, "MAX_PERKM": 249.000000, "MIN_PERMI": 101.000000, "MAX_PERMI": 155.000000, "MIN_BBXMIN": 47.800000, "MAX_BBXMIN": 47.821052, "MIN_BBXMAX": 48.100000, "MAX_BBXMAX": 48.150000, "MIN_BBYMIN": 29.066667, "MAX_BBYMIN": 29.225000, "MIN_BBYMAX": 29.391667, "MAX_BBYMAX": 29.391667, "MEAN_BBXC": 47.993999, "MEAN_BBYC": 29.277119, "COMPARE": 0, "GN_ASCII": "Kuwait", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 60064.000000, "ELEVATION": 0.000000, "GTOPO30": 12.000000, "TIMEZONE": "Asia\/Kuwait", "GEONAMESNO": "GeoNames match general.", "UN_FID": 339, "UN_ADM0": "Kuwait", "UN_LAT": 29.380000, "UN_LONG": 47.970000, "POP1950": 63.000000, "POP1955": 106.000000, "POP1960": 179.000000, "POP1965": 303.000000, "POP1970": 553.000000, "POP1975": 688.000000, "POP1980": 891.000000, "POP1985": 1122.000000, "POP1990": 1392.000000, "POP1995": 1190.000000, "POP2000": 1499.000000, "POP2005": 1888.000000, "POP2010": 2063.000000, "POP2015": 2305.000000, "POP2020": 2592.000000, "POP2025": 2790.000000, "POP2050": 2956.000000, "CITYALT": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 5340703.440735, 3423036.052133 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Santo Domingo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Santo Domingo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Dominican Republic", "SOV_A3": "DOM", "ADM0NAME": "Dominican Republic", "ADM0_A3": "DOM", "ADM1NAME": "Distrito Nacional", "ISO_A2": "DO", "NOTE": null, "LATITUDE": 18.470073, "LONGITUDE": -69.900085, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2154000, "POP_MIN": 2873, "POP_OTHER": 3322037, "RANK_MAX": 12, "RANK_MIN": 4, "GEONAMEID": 3668373.000000, "MEGANAME": "Santo Domingo", "LS_NAME": "Santo Domingo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 3334413.000000, "MAX_POP20": 3334413.000000, "MAX_POP50": 3334413.000000, "MAX_POP300": 3334413.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 451.000000, "MAX_AREAKM": 451.000000, "MIN_AREAMI": 174.000000, "MAX_AREAMI": 174.000000, "MIN_PERKM": 309.000000, "MAX_PERKM": 309.000000, "MIN_PERMI": 192.000000, "MAX_PERMI": 192.000000, "MIN_BBXMIN": -70.208333, "MAX_BBXMIN": -70.208333, "MIN_BBXMAX": -69.766667, "MAX_BBXMAX": -69.766667, "MIN_BBYMIN": 18.316667, "MAX_BBYMIN": 18.316667, "MIN_BBYMAX": 18.591667, "MAX_BBYMAX": 18.591667, "MEAN_BBXC": -69.980546, "MEAN_BBYC": 18.467176, "COMPARE": 0, "GN_ASCII": "Santo Domingo", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 2.000000, "GN_POP": 2873.000000, "ELEVATION": 0.000000, "GTOPO30": 2004.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 176, "UN_ADM0": "Dominican Republic", "UN_LAT": 18.480000, "UN_LONG": -69.890000, "POP1950": 219.000000, "POP1955": 312.000000, "POP1960": 446.000000, "POP1965": 613.000000, "POP1970": 833.000000, "POP1975": 1016.000000, "POP1980": 1240.000000, "POP1985": 1396.000000, "POP1990": 1522.000000, "POP1995": 1670.000000, "POP2000": 1854.000000, "POP2005": 2062.000000, "POP2010": 2154.000000, "POP2015": 2298.000000, "POP2020": 2525.000000, "POP2025": 2722.000000, "POP2050": 2885.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7781458.490025, 2092872.208014 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Accra", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Accra", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ghana", "SOV_A3": "GHA", "ADM0NAME": "Ghana", "ADM0_A3": "GHA", "ADM1NAME": "Greater Accra", "ISO_A2": "GH", "NOTE": null, "LATITUDE": 5.550035, "LONGITUDE": -0.216716, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2121000, "POP_MIN": 1963264, "POP_OTHER": 2334371, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2306104.000000, "MEGANAME": "Accra", "LS_NAME": "Accra", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2359119.000000, "MAX_POP20": 2941045.000000, "MAX_POP50": 2941045.000000, "MAX_POP300": 2941045.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 443.000000, "MAX_AREAKM": 636.000000, "MIN_AREAMI": 171.000000, "MAX_AREAMI": 245.000000, "MIN_PERKM": 244.000000, "MAX_PERKM": 345.000000, "MIN_PERMI": 152.000000, "MAX_PERMI": 214.000000, "MIN_BBXMIN": -0.350000, "MAX_BBXMIN": -0.350000, "MIN_BBXMAX": -0.098725, "MAX_BBXMAX": 0.033333, "MIN_BBYMIN": 5.516667, "MAX_BBYMIN": 5.516667, "MIN_BBYMAX": 5.775000, "MAX_BBYMAX": 5.775000, "MEAN_BBXC": -0.188893, "MEAN_BBYC": 5.637403, "COMPARE": 0, "GN_ASCII": "Accra", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 1963264.000000, "ELEVATION": 0.000000, "GTOPO30": 104.000000, "TIMEZONE": "Africa\/Accra", "GEONAMESNO": "GeoNames match general.", "UN_FID": 196, "UN_ADM0": "Ghana", "UN_LAT": 5.550000, "UN_LONG": -0.200000, "POP1950": 177.000000, "POP1955": 265.000000, "POP1960": 393.000000, "POP1965": 499.000000, "POP1970": 631.000000, "POP1975": 738.000000, "POP1980": 863.000000, "POP1985": 1013.000000, "POP1990": 1197.000000, "POP1995": 1415.000000, "POP2000": 1674.000000, "POP2005": 1984.000000, "POP2010": 2121.000000, "POP2015": 2332.000000, "POP2020": 2688.000000, "POP2025": 3041.000000, "POP2050": 3382.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -24341.297852, 619013.119732 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Tripoli", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tripoli", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Libya", "SOV_A3": "LBY", "ADM0NAME": "Libya", "ADM0_A3": "LBY", "ADM1NAME": "Tajura' wa an Nawahi al Arba", "ISO_A2": "LY", "NOTE": null, "LATITUDE": 32.892500, "LONGITUDE": 13.180012, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2189000, "POP_MIN": 229398, "POP_OTHER": 1149981, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": -1.000000, "MEGANAME": "Tarabulus", "LS_NAME": "Tripoli1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1173386.000000, "MAX_POP20": 1173386.000000, "MAX_POP50": 1173386.000000, "MAX_POP300": 1173386.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 195.000000, "MAX_AREAKM": 195.000000, "MIN_AREAMI": 75.000000, "MAX_AREAMI": 75.000000, "MIN_PERKM": 142.000000, "MAX_PERKM": 142.000000, "MIN_PERMI": 88.000000, "MAX_PERMI": 88.000000, "MIN_BBXMIN": 12.983333, "MAX_BBXMIN": 12.983333, "MIN_BBXMAX": 13.408333, "MAX_BBXMAX": 13.408333, "MIN_BBYMIN": 32.808333, "MAX_BBYMIN": 32.808333, "MIN_BBYMAX": 32.908333, "MAX_BBYMAX": 32.908333, "MEAN_BBXC": 13.193220, "MEAN_BBYC": 32.862069, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 9.000000, "GN_POP": 229398.000000, "ELEVATION": 0.000000, "GTOPO30": 31.000000, "TIMEZONE": null, "GEONAMESNO": null, "UN_FID": 344, "UN_ADM0": "Libyan Arab Jamahiriya", "UN_LAT": 34.340000, "UN_LONG": 36.000000, "POP1950": 106.000000, "POP1955": 136.000000, "POP1960": 174.000000, "POP1965": 235.000000, "POP1970": 398.000000, "POP1975": 611.000000, "POP1980": 797.000000, "POP1985": 1056.000000, "POP1990": 1500.000000, "POP1995": 1678.000000, "POP2000": 1877.000000, "POP2005": 2098.000000, "POP2010": 2189.000000, "POP2015": 2322.000000, "POP2020": 2532.000000, "POP2025": 2713.000000, "POP2050": 2855.000000, "CITYALT": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 1467192.197558, 3881043.816362 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital alt", "NAME": "Tel Aviv-Yafo", "NAMEPAR": null, "NAMEALT": "Tel Aviv-Jaffa", "DIFFASCII": 0, "NAMEASCII": "Tel Aviv-Yafo", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "While Jerulsale", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Israel", "SOV_A3": "ISR", "ADM0NAME": "Israel", "ADM0_A3": "ISR", "ADM1NAME": "Tel Aviv", "ISO_A2": "IL", "NOTE": null, "LATITUDE": 32.079991, "LONGITUDE": 34.770012, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3112000, "POP_MIN": 378358, "POP_OTHER": 2306851, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": 293394.000000, "MEGANAME": "Tel Aviv-Yafo", "LS_NAME": "Tel Aviv-Yafo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2324568.000000, "MAX_POP20": 2324568.000000, "MAX_POP50": 2324568.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 436.000000, "MAX_AREAKM": 436.000000, "MIN_AREAMI": 168.000000, "MAX_AREAMI": 168.000000, "MIN_PERKM": 386.000000, "MAX_PERKM": 386.000000, "MIN_PERMI": 240.000000, "MAX_PERMI": 240.000000, "MIN_BBXMIN": 34.716667, "MAX_BBXMIN": 34.716667, "MIN_BBXMAX": 34.958333, "MAX_BBXMAX": 34.958333, "MIN_BBYMIN": 31.850000, "MAX_BBYMIN": 31.850000, "MIN_BBYMAX": 32.208333, "MAX_BBYMAX": 32.208333, "MEAN_BBXC": 34.836735, "MEAN_BBYC": 32.030266, "COMPARE": 0, "GN_ASCII": "Tel Aviv-Yafo", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 5.000000, "GN_POP": 378358.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Asia\/Jerusalem", "GEONAMESNO": "GeoNames match general.", "UN_FID": 304, "UN_ADM0": "Israel", "UN_LAT": 32.040000, "UN_LONG": 34.760000, "POP1950": 418.000000, "POP1955": 556.000000, "POP1960": 738.000000, "POP1965": 882.000000, "POP1970": 1029.000000, "POP1975": 1206.000000, "POP1980": 1416.000000, "POP1985": 1681.000000, "POP1990": 2026.000000, "POP1995": 2442.000000, "POP2000": 2752.000000, "POP2005": 3012.000000, "POP2010": 3112.000000, "POP2015": 3256.000000, "POP2020": 3453.000000, "POP2025": 3600.000000, "POP2050": 3726.000000, "CITYALT": "Tel Aviv-Jaffa" }, "geometry": { "type": "Point", "coordinates": [ 3870363.391805, 3774070.987536 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Helsinki", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Helsinki", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Finland", "SOV_A3": "FIN", "ADM0NAME": "Finland", "ADM0_A3": "FIN", "ADM1NAME": "Southern Finland", "ISO_A2": "FI", "NOTE": null, "LATITUDE": 60.175563, "LONGITUDE": 24.934126, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1115000, "POP_MIN": 558457, "POP_OTHER": 762958, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 658225.000000, "MEGANAME": "Helsinki", "LS_NAME": "Helsinki", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 852233.000000, "MAX_POP20": 852233.000000, "MAX_POP50": 852233.000000, "MAX_POP300": 852233.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 513.000000, "MAX_AREAKM": 513.000000, "MIN_AREAMI": 198.000000, "MAX_AREAMI": 198.000000, "MIN_PERKM": 550.000000, "MAX_PERKM": 550.000000, "MIN_PERMI": 342.000000, "MAX_PERMI": 342.000000, "MIN_BBXMIN": 24.558333, "MAX_BBXMIN": 24.558333, "MIN_BBXMAX": 25.191667, "MAX_BBXMAX": 25.191667, "MIN_BBYMIN": 60.116667, "MAX_BBYMIN": 60.116667, "MIN_BBYMAX": 60.433333, "MAX_BBYMAX": 60.433333, "MEAN_BBXC": 24.910042, "MEAN_BBYC": 60.254779, "COMPARE": 0, "GN_ASCII": "Helsinki", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 13.000000, "GN_POP": 558457.000000, "ELEVATION": 0.000000, "GTOPO30": 23.000000, "TIMEZONE": "Europe\/Helsinki", "GEONAMESNO": "GeoNames match general.", "UN_FID": 183, "UN_ADM0": "Finland", "UN_LAT": 60.190000, "UN_LONG": 24.970000, "POP1950": 366.000000, "POP1955": 405.000000, "POP1960": 448.000000, "POP1965": 478.000000, "POP1970": 507.000000, "POP1975": 582.000000, "POP1980": 674.000000, "POP1985": 724.000000, "POP1990": 872.000000, "POP1995": 943.000000, "POP2000": 1019.000000, "POP2005": 1094.000000, "POP2010": 1115.000000, "POP2015": 1139.000000, "POP2020": 1169.000000, "POP2025": 1195.000000, "POP2050": 1220.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2775437.635716, 8439364.844546 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "København", "NAMEPAR": "Copenhagen", "NAMEALT": null, "DIFFASCII": 1, "NAMEASCII": "Kobenhavn", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Denmark", "SOV_A3": "DNK", "ADM0NAME": "Denmark", "ADM0_A3": "DNK", "ADM1NAME": "Hovedstaden", "ISO_A2": "DK", "NOTE": null, "LATITUDE": 55.678564, "LONGITUDE": 12.563486, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1085000, "POP_MIN": 1085000, "POP_OTHER": 1038288, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2618425.000000, "MEGANAME": "København", "LS_NAME": "Copenhagen", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1124323.000000, "MAX_POP20": 1230007.000000, "MAX_POP50": 1256924.000000, "MAX_POP300": 1256924.000000, "MAX_POP310": 1256924.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 438.000000, "MAX_AREAKM": 577.000000, "MIN_AREAMI": 169.000000, "MAX_AREAMI": 223.000000, "MIN_PERKM": 348.000000, "MAX_PERKM": 542.000000, "MIN_PERMI": 216.000000, "MAX_PERMI": 337.000000, "MIN_BBXMIN": 12.116667, "MAX_BBXMIN": 12.316667, "MIN_BBXMAX": 12.658333, "MAX_BBXMAX": 12.658333, "MIN_BBYMIN": 55.400000, "MAX_BBYMIN": 55.583333, "MIN_BBYMAX": 55.927962, "MAX_BBYMAX": 56.008333, "MEAN_BBXC": 12.437175, "MEAN_BBYC": 55.716213, "COMPARE": 0, "GN_ASCII": "Copenhagen", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 17.000000, "GN_POP": 1153615.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Europe\/Copenhagen", "GEONAMESNO": "GeoNames match general.", "UN_FID": 175, "UN_ADM0": "Denmark", "UN_LAT": 55.710000, "UN_LONG": 12.540000, "POP1950": 1216.000000, "POP1955": 1227.000000, "POP1960": 1284.000000, "POP1965": 1373.000000, "POP1970": 1380.000000, "POP1975": 1172.000000, "POP1980": 1096.000000, "POP1985": 1056.000000, "POP1990": 1035.000000, "POP1995": 1048.000000, "POP2000": 1077.000000, "POP2005": 1085.000000, "POP2010": 1085.000000, "POP2015": 1087.000000, "POP2020": 1092.000000, "POP2025": 1095.000000, "POP2050": 1096.000000, "CITYALT": "Copenhagen" }, "geometry": { "type": "Point", "coordinates": [ 1398344.223989, 7495075.373086 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Abidjan", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Abidjan", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto, admin", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ivory Coast", "SOV_A3": "CIV", "ADM0NAME": "Ivory Coast", "ADM0_A3": "CIV", "ADM1NAME": "Lagunes", "ISO_A2": "CI", "NOTE": null, "LATITUDE": 5.319997, "LONGITUDE": -4.040048, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3802000, "POP_MIN": 3190395, "POP_OTHER": 3181637, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2293538.000000, "MEGANAME": "Abidjan", "LS_NAME": "Abidjan", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3190395.000000, "MAX_POP20": 3190395.000000, "MAX_POP50": 3190395.000000, "MAX_POP300": 3190395.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 474.000000, "MAX_AREAKM": 474.000000, "MIN_AREAMI": 183.000000, "MAX_AREAMI": 183.000000, "MIN_PERKM": 304.000000, "MAX_PERKM": 304.000000, "MIN_PERMI": 189.000000, "MAX_PERMI": 189.000000, "MIN_BBXMIN": -4.191667, "MAX_BBXMIN": -4.191667, "MIN_BBXMAX": -3.866667, "MAX_BBXMAX": -3.866667, "MIN_BBYMIN": 5.241667, "MAX_BBYMIN": 5.241667, "MIN_BBYMAX": 5.550000, "MAX_BBYMAX": 5.550000, "MEAN_BBXC": -4.019846, "MEAN_BBYC": 5.373900, "COMPARE": 0, "GN_ASCII": "Abidjan", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 82.000000, "GN_POP": 3677115.000000, "ELEVATION": 0.000000, "GTOPO30": 75.000000, "TIMEZONE": "Africa\/Abidjan", "GEONAMESNO": "GeoNames match general.", "UN_FID": 310, "UN_ADM0": "Côte d'Ivoire", "UN_LAT": 5.320000, "UN_LONG": -4.020000, "POP1950": 65.000000, "POP1955": 125.000000, "POP1960": 192.000000, "POP1965": 310.000000, "POP1970": 548.000000, "POP1975": 966.000000, "POP1980": 1384.000000, "POP1985": 1716.000000, "POP1990": 2102.000000, "POP1995": 2535.000000, "POP2000": 3032.000000, "POP2005": 3564.000000, "POP2010": 3802.000000, "POP2015": 4175.000000, "POP2020": 4810.000000, "POP2025": 5432.000000, "POP2050": 6031.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -449952.727061, 593289.701030 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "Brasilia", "NAMEPAR": null, "NAMEALT": "Brasília", "DIFFASCII": 0, "NAMEASCII": "Brasilia", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Brazil", "SOV_A3": "BRA", "ADM0NAME": "Brazil", "ADM0_A3": "BRA", "ADM1NAME": "Distrito Federal", "ISO_A2": "BR", "NOTE": null, "LATITUDE": -15.783340, "LONGITUDE": -47.916052, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3716996, "POP_MIN": 2562963, "POP_OTHER": 1772679, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3469058.000000, "MEGANAME": "Brasília", "LS_NAME": "Brasilia", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1838722.000000, "MAX_POP20": 1836390.000000, "MAX_POP50": 1838722.000000, "MAX_POP300": 1838722.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 436.000000, "MAX_AREAKM": 439.000000, "MIN_AREAMI": 168.000000, "MAX_AREAMI": 169.000000, "MIN_PERKM": 311.000000, "MAX_PERKM": 318.000000, "MIN_PERMI": 193.000000, "MAX_PERMI": 197.000000, "MIN_BBXMIN": -48.158333, "MAX_BBXMIN": -48.158333, "MIN_BBXMAX": -47.783333, "MAX_BBXMAX": -47.783333, "MIN_BBYMIN": -15.941667, "MAX_BBYMIN": -15.941667, "MIN_BBYMAX": -15.700000, "MAX_BBYMAX": -15.700000, "MEAN_BBXC": -47.971400, "MEAN_BBYC": -15.824583, "COMPARE": 0, "GN_ASCII": "Brasilia", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 2207718.000000, "ELEVATION": 0.000000, "GTOPO30": 1092.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 472, "UN_ADM0": "Brazil", "UN_LAT": -15.790000, "UN_LONG": -47.890000, "POP1950": 36.000000, "POP1955": 70.000000, "POP1960": 137.000000, "POP1965": 268.000000, "POP1970": 525.000000, "POP1975": 827.000000, "POP1980": 1293.000000, "POP1985": 1559.000000, "POP1990": 1863.000000, "POP1995": 2257.000000, "POP2000": 2746.000000, "POP2005": 3341.000000, "POP2010": 3599.000000, "POP2015": 3938.000000, "POP2020": 4284.000000, "POP2025": 4463.000000, "POP2050": 4578.000000, "CITYALT": "Brasilia" }, "geometry": { "type": "Point", "coordinates": [ -5334207.153557, -1779420.786543 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Brussels", "NAMEPAR": null, "NAMEALT": "Bruxelles-Brussel", "DIFFASCII": 0, "NAMEASCII": "Brussels", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Belgium", "SOV_A3": "BEL", "ADM0NAME": "Belgium", "ADM0_A3": "BEL", "ADM1NAME": "Brussels", "ISO_A2": "BE", "NOTE": null, "LATITUDE": 50.833317, "LONGITUDE": 4.333317, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1743000, "POP_MIN": 1019022, "POP_OTHER": 1490164, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2800866.000000, "MEGANAME": "Bruxelles-Brussel", "LS_NAME": "Brussels", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 1759840.000000, "MAX_POP20": 1874437.000000, "MAX_POP50": 3576473.000000, "MAX_POP300": 3576473.000000, "MAX_POP310": 3576473.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 900.000000, "MAX_AREAKM": 2344.000000, "MIN_AREAMI": 347.000000, "MAX_AREAMI": 905.000000, "MIN_PERKM": 997.000000, "MAX_PERKM": 2982.000000, "MIN_PERMI": 620.000000, "MAX_PERMI": 1853.000000, "MIN_BBXMIN": 3.575000, "MAX_BBXMIN": 3.983529, "MIN_BBXMAX": 4.666667, "MAX_BBXMAX": 5.000000, "MIN_BBYMIN": 50.600000, "MAX_BBYMIN": 50.650000, "MIN_BBYMAX": 51.016667, "MAX_BBYMAX": 51.408333, "MEAN_BBXC": 4.329159, "MEAN_BBYC": 50.919556, "COMPARE": 0, "GN_ASCII": "Brussels", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 1019022.000000, "ELEVATION": 0.000000, "GTOPO30": 48.000000, "TIMEZONE": "Europe\/Brussels", "GEONAMESNO": "GeoNames match general.", "UN_FID": 384, "UN_ADM0": "Belgium", "UN_LAT": 50.830000, "UN_LONG": 4.360000, "POP1950": 1415.000000, "POP1955": 1449.000000, "POP1960": 1485.000000, "POP1965": 1525.000000, "POP1970": 1568.000000, "POP1975": 1610.000000, "POP1980": 1654.000000, "POP1985": 1654.000000, "POP1990": 1680.000000, "POP1995": 1715.000000, "POP2000": 1733.000000, "POP2005": 1742.000000, "POP2010": 1743.000000, "POP2015": 1744.000000, "POP2020": 1744.000000, "POP2025": 1744.000000, "POP2050": 1744.000000, "CITYALT": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 482165.986292, 6592205.213368 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Dhaka", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dhaka", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Bangladesh", "SOV_A3": "BGD", "ADM0NAME": "Bangladesh", "ADM0_A3": "BGD", "ADM1NAME": "Dhaka", "ISO_A2": "BD", "NOTE": null, "LATITUDE": 23.723060, "LONGITUDE": 90.408579, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 12797394, "POP_MIN": 7000940, "POP_OTHER": 14995538, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 1185241.000000, "MEGANAME": "Dhaka", "LS_NAME": "Dhaka", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 14548962.000000, "MAX_POP20": 21394172.000000, "MAX_POP50": 53845691.000000, "MAX_POP300": 78549234.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 3528.000000, "MAX_AREAKM": 49912.000000, "MIN_AREAMI": 1362.000000, "MAX_AREAMI": 19271.000000, "MIN_PERKM": 1439.000000, "MAX_PERKM": 19314.000000, "MIN_PERMI": 894.000000, "MAX_PERMI": 12001.000000, "MIN_BBXMIN": 88.133791, "MAX_BBXMIN": 89.900000, "MIN_BBXMAX": 90.816777, "MAX_BBXMAX": 92.908333, "MIN_BBYMIN": 22.858333, "MAX_BBYMIN": 23.482936, "MIN_BBYMAX": 24.247407, "MAX_BBYMAX": 25.583333, "MEAN_BBXC": 90.400679, "MEAN_BBYC": 24.105092, "COMPARE": 0, "GN_ASCII": "Dhaka", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 81.000000, "GN_POP": 10356500.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Asia\/Dhaka", "GEONAMESNO": "GeoNames match general.", "UN_FID": 369, "UN_ADM0": "Bangladesh", "UN_LAT": 23.700000, "UN_LONG": 90.400000, "POP1950": 336.000000, "POP1955": 409.000000, "POP1960": 508.000000, "POP1965": 821.000000, "POP1970": 1374.000000, "POP1975": 2221.000000, "POP1980": 3266.000000, "POP1985": 4660.000000, "POP1990": 6621.000000, "POP1995": 8332.000000, "POP2000": 10285.000000, "POP2005": 12576.000000, "POP2010": 13485.000000, "POP2015": 14796.000000, "POP2020": 17015.000000, "POP2025": 19422.000000, "POP2050": 22015.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 10064020.417588, 2719934.464783 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Luanda", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Luanda", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Angola", "SOV_A3": "AGO", "ADM0NAME": "Angola", "ADM0_A3": "AGO", "ADM1NAME": "Luanda", "ISO_A2": "AO", "NOTE": null, "LATITUDE": -8.838286, "LONGITUDE": 13.234427, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 5172900, "POP_MIN": 1951272, "POP_OTHER": 1951272, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 2240449.000000, "MEGANAME": "Luanda", "LS_NAME": "Luanda", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1951272.000000, "MAX_POP20": 1951272.000000, "MAX_POP50": 1951272.000000, "MAX_POP300": 1951272.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 237.000000, "MAX_AREAKM": 237.000000, "MIN_AREAMI": 91.000000, "MAX_AREAMI": 91.000000, "MIN_PERKM": 149.000000, "MAX_PERKM": 149.000000, "MIN_PERMI": 93.000000, "MAX_PERMI": 93.000000, "MIN_BBXMIN": 13.166667, "MAX_BBXMIN": 13.166667, "MIN_BBXMAX": 13.400000, "MAX_BBXMAX": 13.400000, "MIN_BBYMIN": -8.933333, "MAX_BBYMIN": -8.933333, "MIN_BBYMAX": -8.766667, "MAX_BBYMAX": -8.766667, "MEAN_BBXC": 13.282530, "MEAN_BBYC": -8.851964, "COMPARE": 0, "GN_ASCII": "Luanda", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 2776168.000000, "ELEVATION": 0.000000, "GTOPO30": 6.000000, "TIMEZONE": "Africa\/Luanda", "GEONAMESNO": "GeoNames match general.", "UN_FID": 182, "UN_ADM0": "Angola", "UN_LAT": -8.810000, "UN_LONG": 13.230000, "POP1950": 138.000000, "POP1955": 174.000000, "POP1960": 219.000000, "POP1965": 315.000000, "POP1970": 459.000000, "POP1975": 665.000000, "POP1980": 962.000000, "POP1985": 1295.000000, "POP1990": 1568.000000, "POP1995": 1953.000000, "POP2000": 2591.000000, "POP2005": 3533.000000, "POP2010": 4000.000000, "POP2015": 4775.000000, "POP2020": 6036.000000, "POP2025": 7153.000000, "POP2050": 8236.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1473033.067186, -987579.593302 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Algiers", "NAMEPAR": null, "NAMEALT": "El Djazaïr", "DIFFASCII": 0, "NAMEASCII": "Algiers", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Algeria", "SOV_A3": "DZA", "ADM0NAME": "Algeria", "ADM0_A3": "DZA", "ADM1NAME": "Alger", "ISO_A2": "DZ", "NOTE": null, "LATITUDE": 36.763065, "LONGITUDE": 3.050553, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3354000, "POP_MIN": 1977663, "POP_OTHER": 3332619, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2507480.000000, "MEGANAME": "El Djazaïr", "LS_NAME": "Algiers", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 3368320.000000, "MAX_POP20": 3698473.000000, "MAX_POP50": 4203253.000000, "MAX_POP300": 4203253.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 886.000000, "MAX_AREAKM": 1275.000000, "MIN_AREAMI": 342.000000, "MAX_AREAMI": 492.000000, "MIN_PERKM": 798.000000, "MAX_PERKM": 1192.000000, "MIN_PERMI": 496.000000, "MAX_PERMI": 741.000000, "MIN_BBXMIN": 2.641667, "MAX_BBXMIN": 2.808333, "MIN_BBXMAX": 3.548211, "MAX_BBXMAX": 3.741667, "MIN_BBYMIN": 36.450000, "MAX_BBYMIN": 36.508333, "MIN_BBYMAX": 36.816667, "MAX_BBYMAX": 36.816667, "MEAN_BBXC": 3.101671, "MEAN_BBYC": 36.673641, "COMPARE": 0, "GN_ASCII": "Algiers", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 1977663.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Africa\/Algiers", "GEONAMESNO": "GeoNames match general.", "UN_FID": 6, "UN_ADM0": "Algeria", "UN_LAT": 36.780000, "UN_LONG": 3.050000, "POP1950": 516.000000, "POP1955": 623.000000, "POP1960": 872.000000, "POP1965": 1049.000000, "POP1970": 1254.000000, "POP1975": 1499.000000, "POP1980": 1621.000000, "POP1985": 1672.000000, "POP1990": 1908.000000, "POP1995": 2295.000000, "POP2000": 2754.000000, "POP2005": 3199.000000, "POP2010": 3354.000000, "POP2015": 3574.000000, "POP2020": 3922.000000, "POP2025": 4235.000000, "POP2050": 4499.000000, "CITYALT": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 339369.342234, 4406402.722889 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 2, "NATSCALE": 200, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Rangoon", "NAMEPAR": null, "NAMEALT": "Yangon", "DIFFASCII": 0, "NAMEASCII": "Rangoon", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": "Former capital", "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Myanmar", "SOV_A3": "MMR", "ADM0NAME": "Myanmar", "ADM0_A3": "MMR", "ADM1NAME": "Yangon", "ISO_A2": "MM", "NOTE": null, "LATITUDE": 16.783354, "LONGITUDE": 96.166678, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4088000, "POP_MIN": 3301820, "POP_OTHER": 3124090, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1298824.000000, "MEGANAME": "Yangon", "LS_NAME": "Rangoon", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3301820.000000, "MAX_POP20": 3301820.000000, "MAX_POP50": 3301820.000000, "MAX_POP300": 3301820.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 345.000000, "MAX_AREAKM": 345.000000, "MIN_AREAMI": 133.000000, "MAX_AREAMI": 133.000000, "MIN_PERKM": 199.000000, "MAX_PERKM": 199.000000, "MIN_PERMI": 123.000000, "MAX_PERMI": 123.000000, "MIN_BBXMIN": 96.025000, "MAX_BBXMIN": 96.025000, "MIN_BBXMAX": 96.266667, "MAX_BBXMAX": 96.266667, "MIN_BBYMIN": 16.716667, "MAX_BBYMIN": 16.716667, "MIN_BBYMAX": 17.025000, "MAX_BBYMAX": 17.025000, "MEAN_BBXC": 96.144646, "MEAN_BBYC": 16.858640, "COMPARE": 0, "GN_ASCII": "Rangoon", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 17.000000, "GN_POP": 4477638.000000, "ELEVATION": 0.000000, "GTOPO30": 13.000000, "TIMEZONE": "Asia\/Rangoon", "GEONAMESNO": "GeoNames match general.", "UN_FID": 3, "UN_ADM0": "Myanmar", "UN_LAT": 16.870000, "UN_LONG": 96.120000, "POP1950": 1302.000000, "POP1955": 1440.000000, "POP1960": 1592.000000, "POP1965": 1760.000000, "POP1970": 1946.000000, "POP1975": 2151.000000, "POP1980": 2378.000000, "POP1985": 2629.000000, "POP1990": 2907.000000, "POP1995": 3213.000000, "POP2000": 3553.000000, "POP2005": 3928.000000, "POP2010": 4088.000000, "POP2015": 4348.000000, "POP2020": 4841.000000, "POP2025": 5361.000000, "POP2050": 5869.000000, "CITYALT": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 10705008.970978, 1895846.941771 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "San Francisco", "NAMEPAR": null, "NAMEALT": "San Francisco-Oakland", "DIFFASCII": 0, "NAMEASCII": "San Francisco", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "California", "ISO_A2": "US", "NOTE": null, "LATITUDE": 37.740008, "LONGITUDE": -122.459978, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 3450000, "POP_MIN": 732072, "POP_OTHER": 27400, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 5391959.000000, "MEGANAME": "San Francisco-Oakland", "LS_NAME": "San Francisco1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 988636.000000, "MAX_POP20": 1130999.000000, "MAX_POP50": 1371285.000000, "MAX_POP300": 4561697.000000, "MAX_POP310": 4561697.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 218.000000, "MAX_AREAKM": 1748.000000, "MIN_AREAMI": 84.000000, "MAX_AREAMI": 675.000000, "MIN_PERKM": 126.000000, "MAX_PERKM": 755.000000, "MIN_PERMI": 78.000000, "MAX_PERMI": 469.000000, "MIN_BBXMIN": -122.516667, "MAX_BBXMIN": -122.516667, "MIN_BBXMAX": -122.358333, "MAX_BBXMAX": -121.733333, "MIN_BBYMIN": 37.191667, "MAX_BBYMIN": 37.575000, "MIN_BBYMAX": 37.816667, "MAX_BBYMAX": 38.041667, "MEAN_BBXC": -122.301354, "MEAN_BBYC": 37.622288, "COMPARE": 0, "GN_ASCII": "San Francisco", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 732072.000000, "ELEVATION": 16.000000, "GTOPO30": 60.000000, "TIMEZONE": "America\/Los_Angeles", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 570, "UN_ADM0": "United States of America", "UN_LAT": 37.790000, "UN_LONG": -122.380000, "POP1950": 1855.000000, "POP1955": 2021.000000, "POP1960": 2200.000000, "POP1965": 2361.000000, "POP1970": 2529.000000, "POP1975": 2590.000000, "POP1980": 2656.000000, "POP1985": 2805.000000, "POP1990": 2961.000000, "POP1995": 3095.000000, "POP2000": 3236.000000, "POP2005": 3387.000000, "POP2010": 3450.000000, "POP2015": 3544.000000, "POP2020": 3684.000000, "POP2025": 3803.000000, "POP2050": 3898.000000, "CITYALT": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -13627416.892226, 4546872.008851 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Denver", "NAMEPAR": null, "NAMEALT": "Denver-Aurora", "DIFFASCII": 0, "NAMEASCII": "Denver", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Colorado", "ISO_A2": "US", "NOTE": null, "LATITUDE": 39.739188, "LONGITUDE": -104.984016, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2313000, "POP_MIN": 1548599, "POP_OTHER": 1521278, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 5419384.000000, "MEGANAME": "Denver-Aurora", "LS_NAME": "Denver", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1548599.000000, "MAX_POP20": 2100407.000000, "MAX_POP50": 2174327.000000, "MAX_POP300": 2174327.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 909.000000, "MAX_AREAKM": 1345.000000, "MIN_AREAMI": 351.000000, "MAX_AREAMI": 519.000000, "MIN_PERKM": 371.000000, "MAX_PERKM": 606.000000, "MIN_PERMI": 231.000000, "MAX_PERMI": 376.000000, "MIN_BBXMIN": -105.241667, "MAX_BBXMIN": -105.241667, "MIN_BBXMAX": -104.866667, "MAX_BBXMAX": -104.708333, "MIN_BBYMIN": 39.500000, "MAX_BBYMIN": 39.500000, "MIN_BBYMAX": 39.958333, "MAX_BBYMAX": 40.025000, "MEAN_BBXC": -104.993967, "MEAN_BBYC": 39.729850, "COMPARE": 0, "GN_ASCII": "Denver", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 537, "UN_ADM0": "United States of America", "UN_LAT": 39.570000, "UN_LONG": -105.070000, "POP1950": 505.000000, "POP1955": 641.000000, "POP1960": 809.000000, "POP1965": 923.000000, "POP1970": 1054.000000, "POP1975": 1198.000000, "POP1980": 1356.000000, "POP1985": 1437.000000, "POP1990": 1528.000000, "POP1995": 1747.000000, "POP2000": 1998.000000, "POP2005": 2241.000000, "POP2010": 2313.000000, "POP2015": 2396.000000, "POP2020": 2502.000000, "POP2025": 2590.000000, "POP2050": 2661.000000, "CITYALT": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -11686983.809239, 4828395.563652 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Houston", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Houston", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Texas", "ISO_A2": "US", "NOTE": null, "LATITUDE": 29.819974, "LONGITUDE": -95.339979, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4459000, "POP_MIN": 3647574, "POP_OTHER": 3607616, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 4699066.000000, "MEGANAME": "Houston", "LS_NAME": "Houston", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3647574.000000, "MAX_POP20": 4287078.000000, "MAX_POP50": 4352341.000000, "MAX_POP300": 4352341.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 2388.000000, "MAX_AREAKM": 3041.000000, "MIN_AREAMI": 922.000000, "MAX_AREAMI": 1174.000000, "MIN_PERKM": 1257.000000, "MAX_PERKM": 1773.000000, "MIN_PERMI": 781.000000, "MAX_PERMI": 1101.000000, "MIN_BBXMIN": -95.841667, "MAX_BBXMIN": -95.841667, "MIN_BBXMAX": -95.133333, "MAX_BBXMAX": -95.000000, "MIN_BBYMIN": 29.475000, "MAX_BBYMIN": 29.491667, "MIN_BBYMAX": 30.258915, "MAX_BBYMAX": 30.266667, "MEAN_BBXC": -95.431928, "MEAN_BBYC": 29.810477, "COMPARE": 0, "GN_ASCII": "Houston", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 542, "UN_ADM0": "United States of America", "UN_LAT": 29.770000, "UN_LONG": -95.400000, "POP1950": 709.000000, "POP1955": 904.000000, "POP1960": 1151.000000, "POP1965": 1396.000000, "POP1970": 1693.000000, "POP1975": 2030.000000, "POP1980": 2424.000000, "POP1985": 2658.000000, "POP1990": 2922.000000, "POP1995": 3353.000000, "POP2000": 3849.000000, "POP2005": 4324.000000, "POP2010": 4459.000000, "POP2015": 4609.000000, "POP2020": 4790.000000, "POP2025": 4936.000000, "POP2050": 5049.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -10613414.558853, 3480679.827801 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Miami", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Miami", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Florida", "ISO_A2": "US", "NOTE": null, "LATITUDE": 25.787611, "LONGITUDE": -80.224106, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 5585000, "POP_MIN": 382894, "POP_OTHER": 1037811, "RANK_MAX": 13, "RANK_MIN": 10, "GEONAMEID": 4164138.000000, "MEGANAME": "Miami", "LS_NAME": "Miami", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1122682.000000, "MAX_POP20": 1443206.000000, "MAX_POP50": 5187749.000000, "MAX_POP300": 5187749.000000, "MAX_POP310": 5187749.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 380.000000, "MAX_AREAKM": 2907.000000, "MIN_AREAMI": 147.000000, "MAX_AREAMI": 1122.000000, "MIN_PERKM": 156.000000, "MAX_PERKM": 999.000000, "MIN_PERMI": 97.000000, "MAX_PERMI": 620.000000, "MIN_BBXMIN": -80.466667, "MAX_BBXMIN": -80.441667, "MIN_BBXMAX": -80.175719, "MAX_BBXMAX": -80.025000, "MIN_BBYMIN": 25.550000, "MAX_BBYMIN": 25.725000, "MIN_BBYMAX": 26.014060, "MAX_BBYMAX": 26.991667, "MEAN_BBXC": -80.236416, "MEAN_BBYC": 26.067179, "COMPARE": 0, "GN_ASCII": "Miami", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 382894.000000, "ELEVATION": 2.000000, "GTOPO30": 2.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 550, "UN_ADM0": "United States of America", "UN_LAT": 25.830000, "UN_LONG": -80.270000, "POP1950": 622.000000, "POP1955": 924.000000, "POP1960": 1361.000000, "POP1965": 1709.000000, "POP1970": 2141.000000, "POP1975": 2590.000000, "POP1980": 3122.000000, "POP1985": 3521.000000, "POP1990": 3969.000000, "POP1995": 4431.000000, "POP2000": 4946.000000, "POP2005": 5438.000000, "POP2010": 5585.000000, "POP2015": 5755.000000, "POP2020": 5969.000000, "POP2025": 6141.000000, "POP2050": 6272.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8930723.250254, 2973039.881405 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Atlanta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Atlanta", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Georgia", "ISO_A2": "US", "NOTE": null, "LATITUDE": 33.830014, "LONGITUDE": -84.399949, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 4506000, "POP_MIN": 422908, "POP_OTHER": 2874096, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": 4180439.000000, "MEGANAME": "Atlanta", "LS_NAME": "Atlanta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2928128.000000, "MAX_POP20": 3896411.000000, "MAX_POP50": 3910939.000000, "MAX_POP300": 3910939.000000, "MAX_POP310": 3910939.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 2761.000000, "MAX_AREAKM": 4086.000000, "MIN_AREAMI": 1066.000000, "MAX_AREAMI": 1578.000000, "MIN_PERKM": 1494.000000, "MAX_PERKM": 2459.000000, "MIN_PERMI": 929.000000, "MAX_PERMI": 1528.000000, "MIN_BBXMIN": -84.875000, "MAX_BBXMIN": -84.608333, "MIN_BBXMAX": -83.879976, "MAX_BBXMAX": -83.858333, "MIN_BBYMIN": 33.383333, "MAX_BBYMIN": 33.383333, "MIN_BBYMAX": 34.202715, "MAX_BBYMAX": 34.275000, "MEAN_BBXC": -84.328739, "MEAN_BBYC": 33.851552, "COMPARE": 0, "GN_ASCII": "Atlanta", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 0.000000, "GN_POP": 422908.000000, "ELEVATION": 320.000000, "GTOPO30": 305.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames match general.", "UN_FID": 524, "UN_ADM0": "United States of America", "UN_LAT": 33.790000, "UN_LONG": -84.340000, "POP1950": 513.000000, "POP1955": 631.000000, "POP1960": 776.000000, "POP1965": 959.000000, "POP1970": 1182.000000, "POP1975": 1386.000000, "POP1980": 1625.000000, "POP1985": 1879.000000, "POP1990": 2184.000000, "POP1995": 2781.000000, "POP2000": 3542.000000, "POP2005": 4307.000000, "POP2010": 4506.000000, "POP2015": 4695.000000, "POP2020": 4888.000000, "POP2025": 5035.000000, "POP2050": 5151.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9395576.000312, 4006260.577644 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Chicago", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Chicago", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "Illinois", "ISO_A2": "US", "NOTE": null, "LATITUDE": 41.829991, "LONGITUDE": -87.750055, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 8990000, "POP_MIN": 2841952, "POP_OTHER": 3635101, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 4887398.000000, "MEGANAME": "Chicago", "LS_NAME": "Chicago", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3747798.000000, "MAX_POP20": 5069998.000000, "MAX_POP50": 8416660.000000, "MAX_POP300": 8416660.000000, "MAX_POP310": 8450289.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1345.000000, "MAX_AREAKM": 4804.000000, "MIN_AREAMI": 519.000000, "MAX_AREAMI": 1855.000000, "MIN_PERKM": 471.000000, "MAX_PERKM": 2946.000000, "MIN_PERMI": 293.000000, "MAX_PERMI": 1830.000000, "MIN_BBXMIN": -88.408333, "MAX_BBXMIN": -88.036290, "MIN_BBXMAX": -87.528138, "MAX_BBXMAX": -87.125000, "MIN_BBYMIN": 41.391667, "MAX_BBYMIN": 41.458333, "MIN_BBYMAX": 42.000972, "MAX_BBYMAX": 42.491667, "MEAN_BBXC": -87.858740, "MEAN_BBYC": 41.832719, "COMPARE": 0, "GN_ASCII": "Chicago", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 2841952.000000, "ELEVATION": 179.000000, "GTOPO30": 181.000000, "TIMEZONE": "America\/Chicago", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 531, "UN_ADM0": "United States of America", "UN_LAT": 41.820000, "UN_LONG": -87.640000, "POP1950": 4999.000000, "POP1955": 5565.000000, "POP1960": 6183.000000, "POP1965": 6639.000000, "POP1970": 7106.000000, "POP1975": 7160.000000, "POP1980": 7216.000000, "POP1985": 7285.000000, "POP1990": 7374.000000, "POP1995": 7839.000000, "POP2000": 8333.000000, "POP2005": 8820.000000, "POP2010": 8990.000000, "POP2015": 9211.000000, "POP2020": 9516.000000, "POP2025": 9756.000000, "POP2050": 9932.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -9768508.048788, 5135837.500524 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Caracas", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Caracas", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Venezuela", "SOV_A3": "VEN", "ADM0NAME": "Venezuela", "ADM0_A3": "VEN", "ADM1NAME": "Distrito Capital", "ISO_A2": "VE", "NOTE": null, "LATITUDE": 10.500999, "LONGITUDE": -66.917037, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2985000, "POP_MIN": 1815679, "POP_OTHER": 2764555, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3646738.000000, "MEGANAME": "Caracas", "LS_NAME": "Caracas", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2818500.000000, "MAX_POP20": 3351058.000000, "MAX_POP50": 3351241.000000, "MAX_POP300": 3351241.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 224.000000, "MAX_AREAKM": 370.000000, "MIN_AREAMI": 86.000000, "MAX_AREAMI": 143.000000, "MIN_PERKM": 137.000000, "MAX_PERKM": 278.000000, "MIN_PERMI": 85.000000, "MAX_PERMI": 172.000000, "MIN_BBXMIN": -67.133333, "MAX_BBXMIN": -66.993057, "MIN_BBXMAX": -66.725000, "MAX_BBXMAX": -66.725000, "MIN_BBYMIN": 10.325000, "MAX_BBYMIN": 10.408333, "MIN_BBYMAX": 10.533671, "MAX_BBYMAX": 10.541667, "MEAN_BBXC": -66.917919, "MEAN_BBYC": 10.451672, "COMPARE": 0, "GN_ASCII": "Caracas", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 25.000000, "GN_POP": 1815679.000000, "ELEVATION": 0.000000, "GTOPO30": 920.000000, "TIMEZONE": "America\/Caracas", "GEONAMESNO": "GeoNames match general.", "UN_FID": 582, "UN_ADM0": "Venezuela (Bolivarian Republic of)", "UN_LAT": 10.490000, "UN_LONG": -66.890000, "POP1950": 694.000000, "POP1955": 955.000000, "POP1960": 1316.000000, "POP1965": 1657.000000, "POP1970": 2060.000000, "POP1975": 2342.000000, "POP1980": 2575.000000, "POP1985": 2693.000000, "POP1990": 2767.000000, "POP1995": 2816.000000, "POP2000": 2864.000000, "POP2005": 2930.000000, "POP2010": 2985.000000, "POP2015": 3098.000000, "POP2020": 3306.000000, "POP2025": 3482.000000, "POP2050": 3619.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7449387.117646, 1175785.962760 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Kiev", "NAMEPAR": null, "NAMEALT": "Kyiv", "DIFFASCII": 0, "NAMEASCII": "Kiev", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ukraine", "SOV_A3": "UKR", "ADM0NAME": "Ukraine", "ADM0_A3": "UKR", "ADM1NAME": "Kiev", "ISO_A2": "UA", "NOTE": null, "LATITUDE": 50.433367, "LONGITUDE": 30.516628, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2709000, "POP_MIN": 1662508, "POP_OTHER": 1611692, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 703448.000000, "MEGANAME": "Kyiv", "LS_NAME": "Kiev", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1662508.000000, "MAX_POP20": 1662508.000000, "MAX_POP50": 1662508.000000, "MAX_POP300": 1662508.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 217.000000, "MAX_AREAKM": 217.000000, "MIN_AREAMI": 84.000000, "MAX_AREAMI": 84.000000, "MIN_PERKM": 120.000000, "MAX_PERKM": 120.000000, "MIN_PERMI": 75.000000, "MAX_PERMI": 75.000000, "MIN_BBXMIN": 30.325000, "MAX_BBXMIN": 30.325000, "MIN_BBXMAX": 30.575000, "MAX_BBXMAX": 30.575000, "MIN_BBYMIN": 50.366667, "MAX_BBYMIN": 50.366667, "MIN_BBYMAX": 50.541667, "MAX_BBYMAX": 50.541667, "MEAN_BBXC": 30.452630, "MEAN_BBYC": 50.451094, "COMPARE": 0, "GN_ASCII": "Kiev", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 12.000000, "GN_POP": 2514227.000000, "ELEVATION": 0.000000, "GTOPO30": 169.000000, "TIMEZONE": "Europe\/Kiev", "GEONAMESNO": "GeoNames match general.", "UN_FID": 511, "UN_ADM0": "Ukraine", "UN_LAT": 50.440000, "UN_LONG": 30.500000, "POP1950": 815.000000, "POP1955": 974.000000, "POP1960": 1163.000000, "POP1965": 1389.000000, "POP1970": 1655.000000, "POP1975": 1926.000000, "POP1980": 2201.000000, "POP1985": 2410.000000, "POP1990": 2574.000000, "POP1995": 2590.000000, "POP2000": 2606.000000, "POP2005": 2672.000000, "POP2010": 2709.000000, "POP2015": 2748.000000, "POP2020": 2770.000000, "POP2025": 2772.000000, "POP2050": 2772.000000, "CITYALT": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 3396878.874256, 6522008.528510 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Dubai", "NAMEPAR": "Dubayy", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dubai", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United Arab Emirates", "SOV_A3": "ARE", "ADM0NAME": "United Arab Emirates", "ADM0_A3": "ARE", "ADM1NAME": "Dubay", "ISO_A2": "AE", "NOTE": null, "LATITUDE": 25.229996, "LONGITUDE": 55.279974, "CHANGED": 1.000000, "NAMEDIFF": 1, "DIFFNOTE": "Name changed.", "POP_MAX": 1379000, "POP_MIN": 1137347, "POP_OTHER": 1166878, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 292223.000000, "MEGANAME": "Dubayy", "LS_NAME": "Dubayy", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1193251.000000, "MAX_POP20": 2244726.000000, "MAX_POP50": 2244726.000000, "MAX_POP300": 2244726.000000, "MAX_POP310": 2244726.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 187.000000, "MAX_AREAKM": 407.000000, "MIN_AREAMI": 72.000000, "MAX_AREAMI": 157.000000, "MIN_PERKM": 158.000000, "MAX_PERKM": 278.000000, "MIN_PERMI": 98.000000, "MAX_PERMI": 173.000000, "MIN_BBXMIN": 55.175000, "MAX_BBXMIN": 55.175000, "MIN_BBXMAX": 55.437142, "MAX_BBXMAX": 55.533333, "MIN_BBYMIN": 25.100000, "MAX_BBYMIN": 25.100000, "MIN_BBYMAX": 25.308333, "MAX_BBYMAX": 25.433333, "MEAN_BBXC": 55.361736, "MEAN_BBYC": 25.258666, "COMPARE": 1, "GN_ASCII": "Dubai", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 3.000000, "GN_POP": 1137347.000000, "ELEVATION": 0.000000, "GTOPO30": 9.000000, "TIMEZONE": "Asia\/Dubai", "GEONAMESNO": "GeoNames match general.", "UN_FID": 498, "UN_ADM0": "United Arab Emirates", "UN_LAT": 25.270000, "UN_LONG": 55.320000, "POP1950": 20.000000, "POP1955": 28.000000, "POP1960": 40.000000, "POP1965": 51.000000, "POP1970": 80.000000, "POP1975": 167.000000, "POP1980": 254.000000, "POP1985": 345.000000, "POP1990": 473.000000, "POP1995": 650.000000, "POP2000": 938.000000, "POP2005": 1272.000000, "POP2010": 1379.000000, "POP2015": 1516.000000, "POP2020": 1709.000000, "POP2025": 1894.000000, "POP2050": 2077.000000, "CITYALT": "Dubai" }, "geometry": { "type": "Point", "coordinates": [ 6153521.980750, 2904260.475333 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Tashkent", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tashkent", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Uzbekistan", "SOV_A3": "UZB", "ADM0NAME": "Uzbekistan", "ADM0_A3": "UZB", "ADM1NAME": "Tashkent", "ISO_A2": "UZ", "NOTE": null, "LATITUDE": 41.311702, "LONGITUDE": 69.294933, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2184000, "POP_MIN": 1978028, "POP_OTHER": 2806287, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1512569.000000, "MEGANAME": "Tashkent", "LS_NAME": "Tashkent", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2865234.000000, "MAX_POP20": 2865890.000000, "MAX_POP50": 2865890.000000, "MAX_POP300": 2865890.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 639.000000, "MAX_AREAKM": 643.000000, "MIN_AREAMI": 247.000000, "MAX_AREAMI": 248.000000, "MIN_PERKM": 377.000000, "MAX_PERKM": 383.000000, "MIN_PERMI": 234.000000, "MAX_PERMI": 238.000000, "MIN_BBXMIN": 69.050000, "MAX_BBXMIN": 69.050000, "MIN_BBXMAX": 69.436467, "MAX_BBXMAX": 69.450000, "MIN_BBYMIN": 41.141667, "MAX_BBYMIN": 41.141667, "MIN_BBYMAX": 41.483333, "MAX_BBYMAX": 41.483333, "MEAN_BBXC": 69.256717, "MEAN_BBYC": 41.318916, "COMPARE": 0, "GN_ASCII": "Tashkent", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 13.000000, "GN_POP": 1978028.000000, "ELEVATION": 0.000000, "GTOPO30": 460.000000, "TIMEZONE": "Asia\/Tashkent", "GEONAMESNO": "GeoNames match general.", "UN_FID": 580, "UN_ADM0": "Uzbekistan", "UN_LAT": 41.240000, "UN_LONG": 69.340000, "POP1950": 755.000000, "POP1955": 843.000000, "POP1960": 964.000000, "POP1965": 1165.000000, "POP1970": 1403.000000, "POP1975": 1612.000000, "POP1980": 1818.000000, "POP1985": 1958.000000, "POP1990": 2100.000000, "POP1995": 2116.000000, "POP2000": 2135.000000, "POP2005": 2158.000000, "POP2010": 2184.000000, "POP2015": 2247.000000, "POP2020": 2416.000000, "POP2025": 2636.000000, "POP2050": 2892.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 7713660.024030, 5058715.291371 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Madrid", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Madrid", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Kingdom of Spain", "SOV_A3": "ESP", "ADM0NAME": "Spain", "ADM0_A3": "ESP", "ADM1NAME": "Comunidad de Madrid", "ISO_A2": "ES", "NOTE": null, "LATITUDE": 40.400026, "LONGITUDE": -3.683352, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 5567000, "POP_MIN": 50437, "POP_OTHER": 3673427, "RANK_MAX": 13, "RANK_MIN": 8, "GEONAMEID": 3675707.000000, "MEGANAME": "Madrid", "LS_NAME": "Madrid", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3767139.000000, "MAX_POP20": 3767139.000000, "MAX_POP50": 3767139.000000, "MAX_POP300": 3767139.000000, "MAX_POP310": 3767139.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 690.000000, "MAX_AREAKM": 690.000000, "MIN_AREAMI": 266.000000, "MAX_AREAMI": 266.000000, "MIN_PERKM": 558.000000, "MAX_PERKM": 558.000000, "MIN_PERMI": 347.000000, "MAX_PERMI": 347.000000, "MIN_BBXMIN": -4.025000, "MAX_BBXMIN": -4.025000, "MIN_BBXMAX": -3.433333, "MAX_BBXMAX": -3.433333, "MIN_BBYMIN": 40.225000, "MAX_BBYMIN": 40.225000, "MIN_BBYMAX": 40.616667, "MAX_BBYMAX": 40.616667, "MEAN_BBXC": -3.749399, "MEAN_BBYC": 40.425498, "COMPARE": 0, "GN_ASCII": "Madrid", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 33.000000, "GN_POP": 50437.000000, "ELEVATION": 0.000000, "GTOPO30": 2400.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 464, "UN_ADM0": "Spain", "UN_LAT": 40.440000, "UN_LONG": -3.690000, "POP1950": 1700.000000, "POP1955": 2018.000000, "POP1960": 2392.000000, "POP1965": 2898.000000, "POP1970": 3521.000000, "POP1975": 3890.000000, "POP1980": 4253.000000, "POP1985": 4355.000000, "POP1990": 4414.000000, "POP1995": 4701.000000, "POP2000": 5045.000000, "POP2005": 5414.000000, "POP2010": 5567.000000, "POP2015": 5764.000000, "POP2020": 5918.000000, "POP2025": 5934.000000, "POP2050": 5935.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -410245.446087, 4924528.870741 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 7, "FEATURECLA": "Admin-1 capital", "NAME": "Geneva", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Geneva", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 0, "SOV0NAME": "Switzerland", "SOV_A3": "CHE", "ADM0NAME": "Switzerland", "ADM0_A3": "CHE", "ADM1NAME": "Genève", "ISO_A2": "CH", "NOTE": null, "LATITUDE": 46.210008, "LONGITUDE": 6.140028, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1240000, "POP_MIN": 192385, "POP_OTHER": 508284, "RANK_MAX": 12, "RANK_MIN": 9, "GEONAMEID": 2660646.000000, "MEGANAME": null, "LS_NAME": "Geneva", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 530422.000000, "MAX_POP20": 530422.000000, "MAX_POP50": 530422.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 179.000000, "MAX_AREAKM": 179.000000, "MIN_AREAMI": 69.000000, "MAX_AREAMI": 69.000000, "MIN_PERKM": 215.000000, "MAX_PERKM": 215.000000, "MIN_PERMI": 134.000000, "MAX_PERMI": 134.000000, "MIN_BBXMIN": 5.966667, "MAX_BBXMIN": 5.966667, "MIN_BBXMAX": 6.325000, "MAX_BBXMAX": 6.325000, "MIN_BBYMIN": 46.133333, "MAX_BBYMIN": 46.133333, "MIN_BBYMAX": 46.291667, "MAX_BBYMAX": 46.291667, "MEAN_BBXC": 6.142400, "MEAN_BBYC": 46.209427, "COMPARE": 0, "GN_ASCII": "Geneve", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 0.000000, "GN_POP": 183981.000000, "ELEVATION": 0.000000, "GTOPO30": 375.000000, "TIMEZONE": "Europe\/Zurich", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 683504.794211, 5814067.182167 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Stockholm", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Stockholm", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Sweden", "SOV_A3": "SWE", "ADM0NAME": "Sweden", "ADM0_A3": "SWE", "ADM1NAME": "Stockholm", "ISO_A2": "SE", "NOTE": null, "LATITUDE": 59.350760, "LONGITUDE": 18.097335, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 1264000, "POP_MIN": 1253309, "POP_OTHER": 0, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2673730.000000, "MEGANAME": "Stockholm", "LS_NAME": "Stockholm", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1337078.000000, "MAX_POP20": 1337078.000000, "MAX_POP50": 1337078.000000, "MAX_POP300": 1337078.000000, "MAX_POP310": 1337078.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 694.000000, "MAX_AREAKM": 694.000000, "MIN_AREAMI": 268.000000, "MAX_AREAMI": 268.000000, "MIN_PERKM": 629.000000, "MAX_PERKM": 629.000000, "MIN_PERMI": 391.000000, "MAX_PERMI": 391.000000, "MIN_BBXMIN": 17.775000, "MAX_BBXMIN": 17.775000, "MIN_BBXMAX": 18.408333, "MAX_BBXMAX": 18.408333, "MIN_BBYMIN": 59.091667, "MAX_BBYMIN": 59.091667, "MIN_BBYMAX": 59.558333, "MAX_BBYMAX": 59.558333, "MEAN_BBXC": 18.044982, "MEAN_BBYC": 59.328680, "COMPARE": 0, "GN_ASCII": "Stockholm", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 26.000000, "GN_POP": 1253309.000000, "ELEVATION": 0.000000, "GTOPO30": 20.000000, "TIMEZONE": "Europe\/Stockholm", "GEONAMESNO": "GeoNames match general.", "UN_FID": 467, "UN_ADM0": "Sweden", "UN_LAT": 59.330000, "UN_LONG": 17.990000, "POP1950": 741.000000, "POP1955": 772.000000, "POP1960": 805.000000, "POP1965": 1003.000000, "POP1970": 1035.000000, "POP1975": 1015.000000, "POP1980": 992.000000, "POP1985": 1012.000000, "POP1990": 1038.000000, "POP1995": 1138.000000, "POP2000": 1206.000000, "POP2005": 1248.000000, "POP2010": 1264.000000, "POP2015": 1285.000000, "POP2020": 1308.000000, "POP2025": 1326.000000, "POP2050": 1343.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2014369.475180, 8257013.830266 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Bangkok", "NAMEPAR": null, "NAMEALT": "Krung Thep", "DIFFASCII": 0, "NAMEASCII": "Bangkok", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Thailand", "SOV_A3": "THA", "ADM0NAME": "Thailand", "ADM0_A3": "THA", "ADM1NAME": "Bangkok Metropolis", "ISO_A2": "TH", "NOTE": null, "LATITUDE": 13.749999, "LONGITUDE": 100.516645, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 6704000, "POP_MIN": 5104476, "POP_OTHER": 5082758, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 1609350.000000, "MEGANAME": "Krung Thep", "LS_NAME": "Bangkok", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5323600.000000, "MAX_POP20": 8823534.000000, "MAX_POP50": 9210939.000000, "MAX_POP300": 9206246.000000, "MAX_POP310": 9206246.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 815.000000, "MAX_AREAKM": 2350.000000, "MIN_AREAMI": 315.000000, "MAX_AREAMI": 908.000000, "MIN_PERKM": 280.000000, "MAX_PERKM": 1354.000000, "MIN_PERMI": 174.000000, "MAX_PERMI": 841.000000, "MIN_BBXMIN": 99.991667, "MAX_BBXMIN": 100.216667, "MIN_BBXMAX": 100.844293, "MAX_BBXMAX": 101.016667, "MIN_BBYMIN": 13.500000, "MAX_BBYMIN": 13.516667, "MIN_BBYMAX": 13.872295, "MAX_BBYMAX": 14.158333, "MEAN_BBXC": 100.545047, "MEAN_BBYC": 13.761017, "COMPARE": 0, "GN_ASCII": "Bangkok", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 40.000000, "GN_POP": 5104476.000000, "ELEVATION": 0.000000, "GTOPO30": 2.000000, "TIMEZONE": "Asia\/Bangkok", "GEONAMESNO": "GeoNames match general.", "UN_FID": 496, "UN_ADM0": "Thailand", "UN_LAT": 13.750000, "UN_LONG": 100.510000, "POP1950": 1360.000000, "POP1955": 1712.000000, "POP1960": 2151.000000, "POP1965": 2584.000000, "POP1970": 3110.000000, "POP1975": 3842.000000, "POP1980": 4723.000000, "POP1985": 5279.000000, "POP1990": 5888.000000, "POP1995": 6106.000000, "POP2000": 6332.000000, "POP2005": 6582.000000, "POP2010": 6704.000000, "POP2015": 6918.000000, "POP2020": 7332.000000, "POP2025": 7807.000000, "POP2050": 8332.000000, "CITYALT": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 11189245.086953, 1545773.113991 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Lima", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lima", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Peru", "SOV_A3": "PER", "ADM0NAME": "Peru", "ADM0_A3": "PER", "ADM1NAME": "Lima", "ISO_A2": "PE", "NOTE": null, "LATITUDE": -12.048013, "LONGITUDE": -77.050062, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 8012000, "POP_MIN": 6758234, "POP_OTHER": 6068380, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 3936456.000000, "MEGANAME": "Lima", "LS_NAME": "Lima2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 6758234.000000, "MAX_POP20": 7092933.000000, "MAX_POP50": 7115614.000000, "MAX_POP300": 7115806.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 724.000000, "MAX_AREAKM": 790.000000, "MIN_AREAMI": 279.000000, "MAX_AREAMI": 305.000000, "MIN_PERKM": 315.000000, "MAX_PERKM": 384.000000, "MIN_PERMI": 196.000000, "MAX_PERMI": 239.000000, "MIN_BBXMIN": -77.166667, "MAX_BBXMIN": -77.153161, "MIN_BBXMAX": -76.850000, "MAX_BBXMAX": -76.833333, "MIN_BBYMIN": -12.316667, "MAX_BBYMIN": -12.281801, "MIN_BBYMAX": -11.808333, "MAX_BBYMAX": -11.808333, "MEAN_BBXC": -77.010199, "MEAN_BBYC": -12.041474, "COMPARE": 0, "GN_ASCII": "Lima", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 15.000000, "GN_POP": 7737002.000000, "ELEVATION": 0.000000, "GTOPO30": 108.000000, "TIMEZONE": "America\/Lima", "GEONAMESNO": "GeoNames match general.", "UN_FID": 411, "UN_ADM0": "Peru", "UN_LAT": -12.080000, "UN_LONG": -77.040000, "POP1950": 1066.000000, "POP1955": 1368.000000, "POP1960": 1756.000000, "POP1965": 2284.000000, "POP1970": 2980.000000, "POP1975": 3696.000000, "POP1980": 4438.000000, "POP1985": 5116.000000, "POP1990": 5837.000000, "POP1995": 6537.000000, "POP2000": 7116.000000, "POP2005": 7747.000000, "POP2010": 8012.000000, "POP2015": 8375.000000, "POP2020": 8857.000000, "POP2025": 9251.000000, "POP2050": 9600.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8577390.289975, -1350951.557260 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Dakar", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Dakar", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Senegal", "SOV_A3": "SEN", "ADM0NAME": "Senegal", "ADM0_A3": "SEN", "ADM1NAME": "Dakar", "ISO_A2": "SM", "NOTE": null, "LATITUDE": 14.715832, "LONGITUDE": -17.473130, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2604000, "POP_MIN": 2476400, "POP_OTHER": 2470140, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2253354.000000, "MEGANAME": "Dakar", "LS_NAME": "Dakar", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2635239.000000, "MAX_POP20": 2634882.000000, "MAX_POP50": 2660614.000000, "MAX_POP300": 2660614.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 257.000000, "MAX_AREAKM": 302.000000, "MIN_AREAMI": 99.000000, "MAX_AREAMI": 117.000000, "MIN_PERKM": 222.000000, "MAX_PERKM": 288.000000, "MIN_PERMI": 138.000000, "MAX_PERMI": 179.000000, "MIN_BBXMIN": -17.533333, "MAX_BBXMIN": -17.533333, "MIN_BBXMAX": -17.200000, "MAX_BBXMAX": -17.125000, "MIN_BBYMIN": 14.650000, "MAX_BBYMIN": 14.650000, "MIN_BBYMAX": 14.825000, "MAX_BBYMAX": 14.825000, "MEAN_BBXC": -17.343779, "MEAN_BBYC": 14.742828, "COMPARE": 0, "GN_ASCII": "Dakar", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 1.000000, "GN_POP": 2476400.000000, "ELEVATION": 0.000000, "GTOPO30": 14.000000, "TIMEZONE": "Africa\/Dakar", "GEONAMESNO": "GeoNames match general.", "UN_FID": 447, "UN_ADM0": "Senegal", "UN_LAT": 14.680000, "UN_LONG": -17.450000, "POP1950": 211.000000, "POP1955": 235.000000, "POP1960": 359.000000, "POP1965": 473.000000, "POP1970": 610.000000, "POP1975": 782.000000, "POP1980": 957.000000, "POP1985": 1162.000000, "POP1990": 1405.000000, "POP1995": 1688.000000, "POP2000": 2029.000000, "POP2005": 2434.000000, "POP2010": 2604.000000, "POP2015": 2856.000000, "POP2020": 3275.000000, "POP2025": 3726.000000, "POP2050": 4225.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -1945316.560452, 1656696.331062 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Johannesburg", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Johannesburg", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "South Africa", "SOV_A3": "ZAF", "ADM0NAME": "South Africa", "ADM0_A3": "ZAF", "ADM1NAME": "Gauteng", "ISO_A2": "ZA", "NOTE": null, "LATITUDE": -26.170045, "LONGITUDE": 28.030010, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed feature class.", "POP_MAX": 3435000, "POP_MIN": 2026469, "POP_OTHER": 3852246, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 993800.000000, "MEGANAME": "Johannesburg", "LS_NAME": "Johannesburg", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3887168.000000, "MAX_POP20": 5413549.000000, "MAX_POP50": 5413549.000000, "MAX_POP300": 5413549.000000, "MAX_POP310": 5451385.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1124.000000, "MAX_AREAKM": 1614.000000, "MIN_AREAMI": 434.000000, "MAX_AREAMI": 623.000000, "MIN_PERKM": 497.000000, "MAX_PERKM": 828.000000, "MIN_PERMI": 309.000000, "MAX_PERMI": 514.000000, "MIN_BBXMIN": 27.733333, "MAX_BBXMIN": 27.733333, "MIN_BBXMAX": 28.193693, "MAX_BBXMAX": 28.491667, "MIN_BBYMIN": -26.400000, "MAX_BBYMIN": -26.400000, "MIN_BBYMAX": -25.991667, "MAX_BBYMAX": -25.941667, "MEAN_BBXC": 28.063712, "MEAN_BBYC": -26.187259, "COMPARE": 0, "GN_ASCII": "Johannesburg", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 6.000000, "GN_POP": 2026469.000000, "ELEVATION": 0.000000, "GTOPO30": 1775.000000, "TIMEZONE": "Africa\/Johannesburg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 458, "UN_ADM0": "South Africa", "UN_LAT": -26.170000, "UN_LONG": 28.000000, "POP1950": 900.000000, "POP1955": 1016.000000, "POP1960": 1147.000000, "POP1965": 1288.000000, "POP1970": 1444.000000, "POP1975": 1547.000000, "POP1980": 1656.000000, "POP1985": 1773.000000, "POP1990": 1898.000000, "POP1995": 2265.000000, "POP2000": 2732.000000, "POP2005": 3258.000000, "POP2010": 3435.000000, "POP2015": 3618.000000, "POP2020": 3785.000000, "POP2025": 3916.000000, "POP2050": 4041.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3120069.797375, -3019915.649792 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Amsterdam", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Amsterdam", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto capita", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Kingdom of the Netherlands", "SOV_A3": "NLD", "ADM0NAME": "Netherlands", "ADM0_A3": "NLD", "ADM1NAME": "Noord-Holland", "ISO_A2": "NL", "NOTE": null, "LATITUDE": 52.349969, "LONGITUDE": 4.916640, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 1031000, "POP_MIN": 741636, "POP_OTHER": 962488, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 2759794.000000, "MEGANAME": "Amsterdam", "LS_NAME": "Amsterdam", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1072902.000000, "MAX_POP20": 1072902.000000, "MAX_POP50": 1108173.000000, "MAX_POP300": 1108173.000000, "MAX_POP310": 1108173.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 275.000000, "MAX_AREAKM": 300.000000, "MIN_AREAMI": 106.000000, "MAX_AREAMI": 116.000000, "MIN_PERKM": 293.000000, "MAX_PERKM": 343.000000, "MIN_PERMI": 182.000000, "MAX_PERMI": 213.000000, "MIN_BBXMIN": 4.725000, "MAX_BBXMIN": 4.757753, "MIN_BBXMAX": 5.058333, "MAX_BBXMAX": 5.058333, "MIN_BBYMIN": 52.183333, "MAX_BBYMIN": 52.183333, "MIN_BBYMAX": 52.508333, "MAX_BBYMAX": 52.533333, "MEAN_BBXC": 4.871429, "MEAN_BBYC": 52.348868, "COMPARE": 0, "GN_ASCII": "Amsterdam", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 741636.000000, "ELEVATION": 0.000000, "GTOPO30": -2.000000, "TIMEZONE": "Europe\/Amsterdam", "GEONAMESNO": "GeoNames match general.", "UN_FID": 379, "UN_ADM0": "Netherlands", "UN_LAT": 52.370000, "UN_LONG": 4.890000, "POP1950": 851.000000, "POP1955": 871.000000, "POP1960": 895.000000, "POP1965": 942.000000, "POP1970": 927.000000, "POP1975": 978.000000, "POP1980": 941.000000, "POP1985": 907.000000, "POP1990": 936.000000, "POP1995": 988.000000, "POP2000": 1005.000000, "POP2005": 1023.000000, "POP2010": 1031.000000, "POP2015": 1044.000000, "POP2020": 1064.000000, "POP2025": 1078.000000, "POP2050": 1089.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 547101.268817, 6864007.956377 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-1 capital", "NAME": "Casablanca", "NAMEPAR": null, "NAMEALT": "Dar-el-Beida", "DIFFASCII": 0, "NAMEASCII": "Casablanca", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Morocco", "SOV_A3": "MAR", "ADM0NAME": "Morocco", "ADM0_A3": "MAR", "ADM1NAME": "Grand Casablanca", "ISO_A2": "MA", "NOTE": null, "LATITUDE": 33.599976, "LONGITUDE": -7.616367, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3181000, "POP_MIN": 3144909, "POP_OTHER": 3718797, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2553604.000000, "MEGANAME": "Dar-el-Beida", "LS_NAME": "Casablanca", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3796279.000000, "MAX_POP20": 3796279.000000, "MAX_POP50": 3796279.000000, "MAX_POP300": 3796279.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 436.000000, "MAX_AREAKM": 436.000000, "MIN_AREAMI": 168.000000, "MAX_AREAMI": 168.000000, "MIN_PERKM": 261.000000, "MAX_PERKM": 261.000000, "MIN_PERMI": 162.000000, "MAX_PERMI": 162.000000, "MIN_BBXMIN": -7.700000, "MAX_BBXMIN": -7.700000, "MIN_BBXMAX": -7.325000, "MAX_BBXMAX": -7.325000, "MIN_BBYMIN": 33.391667, "MAX_BBYMIN": 33.391667, "MIN_BBYMAX": 33.733333, "MAX_BBYMAX": 33.733333, "MEAN_BBXC": -7.518511, "MEAN_BBYC": 33.557664, "COMPARE": 0, "GN_ASCII": "Casablanca", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 45.000000, "GN_POP": 3144909.000000, "ELEVATION": 0.000000, "GTOPO30": 17.000000, "TIMEZONE": "Africa\/Casablanca", "GEONAMESNO": "GeoNames match general.", "UN_FID": 372, "UN_ADM0": "Morocco", "UN_LAT": 33.600000, "UN_LONG": -7.630000, "POP1950": 625.000000, "POP1955": 778.000000, "POP1960": 967.000000, "POP1965": 1206.000000, "POP1970": 1505.000000, "POP1975": 1793.000000, "POP1980": 2109.000000, "POP1985": 2406.000000, "POP1990": 2682.000000, "POP1995": 2951.000000, "POP2000": 3043.000000, "POP2005": 3138.000000, "POP2010": 3181.000000, "POP2015": 3267.000000, "POP2020": 3475.000000, "POP2025": 3716.000000, "POP2050": 3949.000000, "CITYALT": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -848066.756335, 3975474.316349 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Seoul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Seoul", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Korea, South", "SOV_A3": "KOR", "ADM0NAME": "South Korea", "ADM0_A3": "KOR", "ADM1NAME": "Seoul", "ISO_A2": "KR", "NOTE": null, "LATITUDE": 37.566349, "LONGITUDE": 126.999731, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 9796000, "POP_MIN": 9796000, "POP_OTHER": 12018058, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 1835848.000000, "MEGANAME": "Seoul", "LS_NAME": "Seoul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 12322855.000000, "MAX_POP20": 13143622.000000, "MAX_POP50": 21387676.000000, "MAX_POP300": 21991959.000000, "MAX_POP310": 21991959.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 971.000000, "MAX_AREAKM": 2718.000000, "MIN_AREAMI": 375.000000, "MAX_AREAMI": 1049.000000, "MIN_PERKM": 546.000000, "MAX_PERKM": 1901.000000, "MIN_PERMI": 340.000000, "MAX_PERMI": 1181.000000, "MIN_BBXMIN": 126.550000, "MAX_BBXMIN": 126.767185, "MIN_BBXMAX": 127.266667, "MAX_BBXMAX": 127.325000, "MIN_BBYMIN": 36.750000, "MAX_BBYMIN": 37.412022, "MIN_BBYMAX": 37.791667, "MAX_BBYMAX": 37.875000, "MEAN_BBXC": 126.971295, "MEAN_BBYC": 37.485925, "COMPARE": 0, "GN_ASCII": "Seoul", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 10349312.000000, "ELEVATION": 0.000000, "GTOPO30": 46.000000, "TIMEZONE": "Asia\/Seoul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 336, "UN_ADM0": "Republic of Korea", "UN_LAT": 37.540000, "UN_LONG": 126.930000, "POP1950": 1021.000000, "POP1955": 1553.000000, "POP1960": 2361.000000, "POP1965": 3452.000000, "POP1970": 5312.000000, "POP1975": 6808.000000, "POP1980": 8258.000000, "POP1985": 9547.000000, "POP1990": 10544.000000, "POP1995": 10256.000000, "POP2000": 9917.000000, "POP2005": 9825.000000, "POP2010": 9796.000000, "POP2015": 9762.000000, "POP2020": 9740.000000, "POP2025": 9738.000000, "POP2050": 9738.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 14137328.773458, 4518618.597544 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Manila", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Manila", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official, de fa", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Philippines", "SOV_A3": "PHL", "ADM0NAME": "Philippines", "ADM0_A3": "PHL", "ADM1NAME": "Metropolitan Manila", "ISO_A2": "PH", "NOTE": null, "LATITUDE": 14.604159, "LONGITUDE": 120.982217, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11100000, "POP_MIN": 3077575, "POP_OTHER": 2381280, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 1701668.000000, "MEGANAME": "Manila", "LS_NAME": "Manila", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3077575.000000, "MAX_POP20": 3077575.000000, "MAX_POP50": 3077575.000000, "MAX_POP300": 23366503.000000, "MAX_POP310": 26749011.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 67.000000, "MAX_AREAKM": 8820.000000, "MIN_AREAMI": 26.000000, "MAX_AREAMI": 3405.000000, "MIN_PERKM": 46.000000, "MAX_PERKM": 5298.000000, "MIN_PERMI": 29.000000, "MAX_PERMI": 3292.000000, "MIN_BBXMIN": 120.141667, "MAX_BBXMIN": 120.925000, "MIN_BBXMAX": 121.038985, "MAX_BBXMAX": 121.333333, "MIN_BBYMIN": 14.016667, "MAX_BBYMIN": 14.571814, "MIN_BBYMAX": 14.702876, "MAX_BBYMAX": 16.416667, "MEAN_BBXC": 120.915044, "MEAN_BBYC": 14.823118, "COMPARE": 0, "GN_ASCII": "Manila", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 10444527.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Asia\/Manila", "GEONAMESNO": "GeoNames match general.", "UN_FID": 414, "UN_ADM0": "Philippines", "UN_LAT": 14.610000, "UN_LONG": 120.960000, "POP1950": 1544.000000, "POP1955": 1872.000000, "POP1960": 2274.000000, "POP1965": 2829.000000, "POP1970": 3534.000000, "POP1975": 4999.000000, "POP1980": 5955.000000, "POP1985": 6888.000000, "POP1990": 7973.000000, "POP1995": 9401.000000, "POP2000": 9958.000000, "POP2005": 10761.000000, "POP2010": 11100.000000, "POP2015": 11662.000000, "POP2020": 12786.000000, "POP2025": 13892.000000, "POP2050": 14808.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13467462.197542, 1643846.533365 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 2, "FEATURECLA": "Admin-1 capital", "NAME": "Monterrey", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Monterrey", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Mexico", "SOV_A3": "MEX", "ADM0NAME": "Mexico", "ADM0_A3": "MEX", "ADM1NAME": "Nuevo León", "ISO_A2": "MX", "NOTE": null, "LATITUDE": 25.669995, "LONGITUDE": -100.329985, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3712000, "POP_MIN": 1122874, "POP_OTHER": 3225636, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3995465.000000, "MEGANAME": "Monterrey", "LS_NAME": "Monterrey", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3296184.000000, "MAX_POP20": 3296184.000000, "MAX_POP50": 3296184.000000, "MAX_POP300": 3296184.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 594.000000, "MAX_AREAKM": 594.000000, "MIN_AREAMI": 229.000000, "MAX_AREAMI": 229.000000, "MIN_PERKM": 208.000000, "MAX_PERKM": 208.000000, "MIN_PERMI": 130.000000, "MAX_PERMI": 130.000000, "MIN_BBXMIN": -100.500000, "MAX_BBXMIN": -100.500000, "MIN_BBXMAX": -100.125000, "MAX_BBXMAX": -100.125000, "MIN_BBYMIN": 25.575000, "MAX_BBYMIN": 25.575000, "MIN_BBYMAX": 25.850000, "MAX_BBYMAX": 25.850000, "MEAN_BBXC": -100.290632, "MEAN_BBYC": 25.716130, "COMPARE": 0, "GN_ASCII": "Monterrey", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 19.000000, "GN_POP": 1122874.000000, "ELEVATION": 0.000000, "GTOPO30": 563.000000, "TIMEZONE": "America\/Monterrey", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 359, "UN_ADM0": "Mexico", "UN_LAT": 25.670000, "UN_LONG": -100.310000, "POP1950": 356.000000, "POP1955": 498.000000, "POP1960": 698.000000, "POP1965": 943.000000, "POP1970": 1267.000000, "POP1975": 1589.000000, "POP1980": 1992.000000, "POP1985": 2273.000000, "POP1990": 2594.000000, "POP1995": 2961.000000, "POP2000": 3266.000000, "POP2005": 3579.000000, "POP2010": 3712.000000, "POP2015": 3901.000000, "POP2020": 4140.000000, "POP2025": 4298.000000, "POP2050": 4413.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -11168899.429410, 2958505.838591 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Auckland", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Auckland", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "New Zealand", "SOV_A3": "NZL", "ADM0NAME": "New Zealand", "ADM0_A3": "NZL", "ADM1NAME": "Auckland", "ISO_A2": "NZ", "NOTE": null, "LATITUDE": -36.850013, "LONGITUDE": 174.764981, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 1245000, "POP_MIN": 274020, "POP_OTHER": 243794, "RANK_MAX": 12, "RANK_MIN": 10, "GEONAMEID": 2193733.000000, "MEGANAME": "Auckland", "LS_NAME": "Auckland", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 274020.000000, "MAX_POP20": 354233.000000, "MAX_POP50": 350364.000000, "MAX_POP300": 638000.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 169.000000, "MAX_AREAKM": 399.000000, "MIN_AREAMI": 65.000000, "MAX_AREAMI": 154.000000, "MIN_PERKM": 105.000000, "MAX_PERKM": 266.000000, "MIN_PERMI": 65.000000, "MAX_PERMI": 166.000000, "MIN_BBXMIN": 174.583333, "MAX_BBXMIN": 174.657483, "MIN_BBXMAX": 174.883333, "MAX_BBXMAX": 174.983333, "MIN_BBYMIN": -37.091667, "MAX_BBYMIN": -36.964958, "MIN_BBYMAX": -36.825000, "MAX_BBYMAX": -36.800000, "MEAN_BBXC": 174.755045, "MEAN_BBYC": -36.896818, "COMPARE": 0, "GN_ASCII": "Auckland", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 417910.000000, "ELEVATION": 0.000000, "GTOPO30": 26.000000, "TIMEZONE": "Pacific\/Auckland", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 381, "UN_ADM0": "New Zealand", "UN_LAT": -36.900000, "UN_LONG": 174.760000, "POP1950": 319.000000, "POP1955": 387.000000, "POP1960": 440.000000, "POP1965": 532.000000, "POP1970": 635.000000, "POP1975": 729.000000, "POP1980": 774.000000, "POP1985": 812.000000, "POP1990": 870.000000, "POP1995": 976.000000, "POP2000": 1063.000000, "POP2005": 1189.000000, "POP2010": 1245.000000, "POP2015": 1321.000000, "POP2020": 1398.000000, "POP2025": 1441.000000, "POP2050": 1475.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 19454532.062974, -4417950.412091 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Berlin", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Berlin", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Germany", "SOV_A3": "DEU", "ADM0NAME": "Germany", "ADM0_A3": "DEU", "ADM1NAME": "Berlin", "ISO_A2": "DE", "NOTE": null, "LATITUDE": 52.521819, "LONGITUDE": 13.401549, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 3406000, "POP_MIN": 3094014, "POP_OTHER": 3013258, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2950159.000000, "MEGANAME": "Berlin", "LS_NAME": "Berlin", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3094014.000000, "MAX_POP20": 3093307.000000, "MAX_POP50": 3503466.000000, "MAX_POP300": 3503466.000000, "MAX_POP310": 3503466.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 811.000000, "MAX_AREAKM": 1021.000000, "MIN_AREAMI": 313.000000, "MAX_AREAMI": 394.000000, "MIN_PERKM": 482.000000, "MAX_PERKM": 709.000000, "MIN_PERMI": 300.000000, "MAX_PERMI": 441.000000, "MIN_BBXMIN": 12.958333, "MAX_BBXMIN": 13.193843, "MIN_BBXMAX": 13.925000, "MAX_BBXMAX": 13.925000, "MIN_BBYMIN": 52.275000, "MAX_BBYMIN": 52.275000, "MIN_BBYMAX": 52.708333, "MAX_BBYMAX": 52.708333, "MEAN_BBXC": 13.418329, "MEAN_BBYC": 52.503658, "COMPARE": 0, "GN_ASCII": "Berlin", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 16.000000, "GN_POP": 3426354.000000, "ELEVATION": 74.000000, "GTOPO30": 35.000000, "TIMEZONE": "Europe\/Berlin", "GEONAMESNO": "GeoNames match general.", "UN_FID": 192, "UN_ADM0": "Germany", "UN_LAT": 52.510000, "UN_LONG": 13.320000, "POP1950": 3352.000000, "POP1955": 3299.000000, "POP1960": 3260.000000, "POP1965": 3232.000000, "POP1970": 3206.000000, "POP1975": 3130.000000, "POP1980": 3056.000000, "POP1985": 3060.000000, "POP1990": 3422.000000, "POP1995": 3471.000000, "POP2000": 3384.000000, "POP2005": 3391.000000, "POP2010": 3406.000000, "POP2015": 3423.000000, "POP2020": 3434.000000, "POP2025": 3436.000000, "POP2050": 3436.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1491636.956598, 6895388.533179 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Urumqi", "NAMEPAR": null, "NAMEALT": "Ürümqi|Wulumqi", "DIFFASCII": 0, "NAMEASCII": "Urumqi", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "China", "ADM0_A3": "CHN", "ADM1NAME": "Xinjiang Uygur", "ISO_A2": "CN", "NOTE": null, "LATITUDE": 43.805012, "LONGITUDE": 87.575006, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2151000, "POP_MIN": 1508225, "POP_OTHER": 2044401, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1529102.000000, "MEGANAME": "Ürümqi (Wulumqi)", "LS_NAME": "Urumqi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2066046.000000, "MAX_POP20": 2066046.000000, "MAX_POP50": 2066046.000000, "MAX_POP300": 2066046.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 361.000000, "MAX_AREAKM": 361.000000, "MIN_AREAMI": 139.000000, "MAX_AREAMI": 139.000000, "MIN_PERKM": 318.000000, "MAX_PERKM": 318.000000, "MIN_PERMI": 198.000000, "MAX_PERMI": 198.000000, "MIN_BBXMIN": 87.358333, "MAX_BBXMIN": 87.358333, "MIN_BBXMAX": 87.725000, "MAX_BBXMAX": 87.725000, "MIN_BBYMIN": 43.641667, "MAX_BBYMIN": 43.641667, "MIN_BBYMAX": 44.016667, "MAX_BBYMAX": 44.016667, "MEAN_BBXC": 87.578494, "MEAN_BBYC": 43.854525, "COMPARE": 0, "GN_ASCII": "Urumqi", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 13.000000, "GN_POP": 1508225.000000, "ELEVATION": 0.000000, "GTOPO30": 915.000000, "TIMEZONE": "Asia\/Urumqi", "GEONAMESNO": "GeoNames match general.", "UN_FID": 118, "UN_ADM0": "China", "UN_LAT": 43.780000, "UN_LONG": 87.580000, "POP1950": 253.000000, "POP1955": 312.000000, "POP1960": 384.000000, "POP1965": 472.000000, "POP1970": 581.000000, "POP1975": 715.000000, "POP1980": 881.000000, "POP1985": 1029.000000, "POP1990": 1161.000000, "POP1995": 1417.000000, "POP2000": 1730.000000, "POP2005": 2025.000000, "POP2010": 2151.000000, "POP2015": 2340.000000, "POP2020": 2620.000000, "POP2025": 2851.000000, "POP2050": 3038.000000, "CITYALT": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 9748588.423727, 5435616.939674 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Chengdu", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Chengdu", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "China", "ADM0_A3": "CHN", "ADM1NAME": "Sichuan", "ISO_A2": "CN", "NOTE": null, "LATITUDE": 30.670000, "LONGITUDE": 104.070019, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4123000, "POP_MIN": 3950437, "POP_OTHER": 11622929, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1815286.000000, "MEGANAME": "Chengdu", "LS_NAME": "Chengdu", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 9954810.000000, "MAX_POP20": 11359674.000000, "MAX_POP50": 24374217.000000, "MAX_POP300": 0.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 50.000000, "MIN_AREAKM": 5912.000000, "MAX_AREAKM": 24244.000000, "MIN_AREAMI": 2283.000000, "MAX_AREAMI": 9361.000000, "MIN_PERKM": 2296.000000, "MAX_PERKM": 11900.000000, "MIN_PERMI": 1427.000000, "MAX_PERMI": 7394.000000, "MIN_BBXMIN": 103.125000, "MAX_BBXMIN": 103.383333, "MIN_BBXMAX": 104.433333, "MAX_BBXMAX": 105.375000, "MIN_BBYMIN": 28.738768, "MAX_BBYMIN": 30.065456, "MIN_BBYMAX": 31.083333, "MAX_BBYMAX": 31.341667, "MEAN_BBXC": 104.039242, "MEAN_BBYC": 30.486458, "COMPARE": 0, "GN_ASCII": "Chengdu", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 32.000000, "GN_POP": 3950437.000000, "ELEVATION": 0.000000, "GTOPO30": 529.000000, "TIMEZONE": "Asia\/Chongqing", "GEONAMESNO": "GeoNames match general.", "UN_FID": 31, "UN_ADM0": "China", "UN_LAT": 30.670000, "UN_LONG": 104.070000, "POP1950": 768.000000, "POP1955": 922.000000, "POP1960": 1106.000000, "POP1965": 1327.000000, "POP1970": 1592.000000, "POP1975": 1911.000000, "POP1980": 2293.000000, "POP1985": 2639.000000, "POP1990": 2955.000000, "POP1995": 3403.000000, "POP2000": 3919.000000, "POP2005": 4065.000000, "POP2010": 4123.000000, "POP2015": 4266.000000, "POP2020": 4634.000000, "POP2025": 5014.000000, "POP2050": 5320.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11584804.964434, 3590217.956900 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 2, "FEATURECLA": "Admin-1 region capital", "NAME": "Osaka", "NAMEPAR": null, "NAMEALT": "Osaka-Kobe", "DIFFASCII": 0, "NAMEASCII": "Osaka", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Japan", "SOV_A3": "JPN", "ADM0NAME": "Japan", "ADM0_A3": "JPN", "ADM1NAME": "Osaka", "ISO_A2": "JP", "NOTE": null, "LATITUDE": 34.750035, "LONGITUDE": 135.460145, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed feature to Admin-0 region capital.", "POP_MAX": 11294000, "POP_MIN": 2592413, "POP_OTHER": 9630783, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 1853909.000000, "MEGANAME": "Osaka-Kobe", "LS_NAME": "Osaka", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 10169723.000000, "MAX_POP20": 10259448.000000, "MAX_POP50": 13292739.000000, "MAX_POP300": 15645640.000000, "MAX_POP310": 15645640.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1561.000000, "MAX_AREAKM": 2861.000000, "MIN_AREAMI": 603.000000, "MAX_AREAMI": 1105.000000, "MIN_PERKM": 546.000000, "MAX_PERKM": 1202.000000, "MIN_PERMI": 339.000000, "MAX_PERMI": 747.000000, "MIN_BBXMIN": 134.508333, "MAX_BBXMIN": 135.304598, "MIN_BBXMAX": 135.883333, "MAX_BBXMAX": 135.883333, "MIN_BBYMIN": 34.325000, "MAX_BBYMIN": 34.408333, "MIN_BBYMAX": 34.916667, "MAX_BBYMAX": 35.100000, "MEAN_BBXC": 135.475415, "MEAN_BBYC": 34.676719, "COMPARE": 0, "GN_ASCII": "Osaka", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 32.000000, "GN_POP": 2592413.000000, "ELEVATION": 0.000000, "GTOPO30": 4.000000, "TIMEZONE": "Asia\/Tokyo", "GEONAMESNO": "GeoNames rough area, rough name.", "UN_FID": 315, "UN_ADM0": "Japan", "UN_LAT": 34.630000, "UN_LONG": 135.510000, "POP1950": 4147.000000, "POP1955": 5120.000000, "POP1960": 6227.000000, "POP1965": 7654.000000, "POP1970": 9408.000000, "POP1975": 9844.000000, "POP1980": 9990.000000, "POP1985": 10350.000000, "POP1990": 11035.000000, "POP1995": 11052.000000, "POP2000": 11165.000000, "POP2005": 11258.000000, "POP2010": 11294.000000, "POP2015": 11337.000000, "POP2020": 11365.000000, "POP2025": 11368.000000, "POP2050": 11368.000000, "CITYALT": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 15079137.731622, 4130227.234940 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Kinshasa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kinshasa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Congo (Kinshasa)", "SOV_A3": "COD", "ADM0NAME": "Congo (Kinshasa)", "ADM0_A3": "COD", "ADM1NAME": "Kinshasa City", "ISO_A2": "CD", "NOTE": null, "LATITUDE": -4.329724, "LONGITUDE": 15.314972, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 7843000, "POP_MIN": 5565703, "POP_OTHER": 4738154, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 2314302.000000, "MEGANAME": "Kinshasa", "LS_NAME": "Kinshasa", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5565703.000000, "MAX_POP20": 5567255.000000, "MAX_POP50": 5567255.000000, "MAX_POP300": 5567255.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 346.000000, "MAX_AREAKM": 357.000000, "MIN_AREAMI": 134.000000, "MAX_AREAMI": 138.000000, "MIN_PERKM": 201.000000, "MAX_PERKM": 219.000000, "MIN_PERMI": 125.000000, "MAX_PERMI": 136.000000, "MIN_BBXMIN": 15.183333, "MAX_BBXMIN": 15.183333, "MIN_BBXMAX": 15.533333, "MAX_BBXMAX": 15.533333, "MIN_BBYMIN": -4.500000, "MAX_BBYMIN": -4.478678, "MIN_BBYMAX": -4.291667, "MAX_BBYMAX": -4.291667, "MEAN_BBXC": 15.334415, "MEAN_BBYC": -4.384467, "COMPARE": 0, "GN_ASCII": "Kinshasa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 6.000000, "GN_POP": 7785965.000000, "ELEVATION": 0.000000, "GTOPO30": 224.000000, "TIMEZONE": "Africa\/Kinshasa", "GEONAMESNO": "GeoNames match general.", "UN_FID": 168, "UN_ADM0": "Democratic Republic of the Congo", "UN_LAT": -4.320000, "UN_LONG": 15.290000, "POP1950": 202.000000, "POP1955": 292.000000, "POP1960": 443.000000, "POP1965": 717.000000, "POP1970": 1070.000000, "POP1975": 1482.000000, "POP1980": 2053.000000, "POP1985": 2793.000000, "POP1990": 3448.000000, "POP1995": 4447.000000, "POP2000": 5485.000000, "POP2005": 7108.000000, "POP2010": 7843.000000, "POP2015": 9052.000000, "POP2020": 11313.000000, "POP2025": 13875.000000, "POP2050": 16762.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 1704638.259403, -482224.834732 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "New Delhi", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "New Delhi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 0, "SOV0NAME": "India", "SOV_A3": "IND", "ADM0NAME": "India", "ADM0_A3": "IND", "ADM1NAME": "Delhi", "ISO_A2": "IN", "NOTE": null, "LATITUDE": 28.600023, "LONGITUDE": 77.199980, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 317797, "POP_MIN": 317797, "POP_OTHER": 8060107, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 1261481.000000, "MEGANAME": null, "LS_NAME": "New Delhi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 8761047.000000, "MAX_POP20": 13414375.000000, "MAX_POP50": 32426336.000000, "MAX_POP300": 32424761.000000, "MAX_POP310": 224908923.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 864.000000, "MAX_AREAKM": 186559.000000, "MIN_AREAMI": 334.000000, "MAX_AREAMI": 72030.000000, "MIN_PERKM": 244.000000, "MAX_PERKM": 130296.000000, "MIN_PERMI": 152.000000, "MAX_PERMI": 80962.000000, "MIN_BBXMIN": 71.033333, "MAX_BBXMIN": 76.943289, "MIN_BBXMAX": 77.431830, "MAX_BBXMAX": 82.566667, "MIN_BBYMIN": 24.000000, "MAX_BBYMIN": 28.152007, "MIN_BBYMAX": 28.738629, "MAX_BBYMAX": 33.466667, "MEAN_BBXC": 77.272945, "MEAN_BBYC": 28.382537, "COMPARE": 0, "GN_ASCII": "New Delhi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 317797.000000, "ELEVATION": 0.000000, "GTOPO30": 205.000000, "TIMEZONE": "Asia\/Kolkata", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.000000, "UN_LONG": 0.000000, "POP1950": 0.000000, "POP1955": 0.000000, "POP1960": 0.000000, "POP1965": 0.000000, "POP1970": 0.000000, "POP1975": 0.000000, "POP1980": 0.000000, "POP1985": 0.000000, "POP1990": 0.000000, "POP1995": 0.000000, "POP2000": 0.000000, "POP2005": 0.000000, "POP2010": 0.000000, "POP2015": 0.000000, "POP2020": 0.000000, "POP2025": 0.000000, "POP2050": 0.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8593862.465083, 3324835.758186 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Bangalore", "NAMEPAR": null, "NAMEALT": "Bengaluru", "DIFFASCII": 0, "NAMEASCII": "Bangalore", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "India", "SOV_A3": "IND", "ADM0NAME": "India", "ADM0_A3": "IND", "ADM1NAME": "Karnataka", "ISO_A2": "IN", "NOTE": null, "LATITUDE": 12.969995, "LONGITUDE": 77.560010, "CHANGED": 3.000000, "NAMEDIFF": 1, "DIFFNOTE": "Name changed. Changed scale rank.", "POP_MAX": 6787000, "POP_MIN": 5104047, "POP_OTHER": 8102712, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 1277333.000000, "MEGANAME": "Bangalore", "LS_NAME": "Bangalore", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 8181096.000000, "MAX_POP20": 8181096.000000, "MAX_POP50": 8553953.000000, "MAX_POP300": 8553953.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 2443.000000, "MAX_AREAKM": 2836.000000, "MIN_AREAMI": 943.000000, "MAX_AREAMI": 1095.000000, "MIN_PERKM": 1908.000000, "MAX_PERKM": 2412.000000, "MIN_PERMI": 1186.000000, "MAX_PERMI": 1499.000000, "MIN_BBXMIN": 77.275000, "MAX_BBXMIN": 77.275000, "MIN_BBXMAX": 77.996673, "MAX_BBXMAX": 78.150000, "MIN_BBYMIN": 12.325000, "MAX_BBYMIN": 12.325000, "MIN_BBYMAX": 13.333333, "MAX_BBYMAX": 13.333333, "MEAN_BBXC": 77.703019, "MEAN_BBYC": 12.841733, "COMPARE": 1, "GN_ASCII": "Bengaluru", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 19.000000, "GN_POP": 5104047.000000, "ELEVATION": 920.000000, "GTOPO30": 914.000000, "TIMEZONE": "Asia\/Kolkata", "GEONAMESNO": "GeoNames spatial join with similar names only.", "UN_FID": 219, "UN_ADM0": "India", "UN_LAT": 12.970000, "UN_LONG": 77.580000, "POP1950": 746.000000, "POP1955": 939.000000, "POP1960": 1166.000000, "POP1965": 1377.000000, "POP1970": 1615.000000, "POP1975": 2111.000000, "POP1980": 2812.000000, "POP1985": 3395.000000, "POP1990": 4036.000000, "POP1995": 4744.000000, "POP2000": 5567.000000, "POP2005": 6465.000000, "POP2010": 6787.000000, "POP2015": 7229.000000, "POP2020": 7967.000000, "POP2025": 8795.000000, "POP2050": 9719.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 8633724.176388, 1456526.777564 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 6, "FEATURECLA": "Admin-0 capital", "NAME": "Athens", "NAMEPAR": "Athínai", "NAMEALT": "Athinai", "DIFFASCII": 0, "NAMEASCII": "Athens", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Greece", "SOV_A3": "GRC", "ADM0NAME": "Greece", "ADM0_A3": "GRC", "ADM1NAME": "Attiki", "ISO_A2": "GR", "NOTE": null, "LATITUDE": 37.983326, "LONGITUDE": 23.733321, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3242000, "POP_MIN": 729137, "POP_OTHER": 112572, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 264371.000000, "MEGANAME": "Athínai", "LS_NAME": "Athens2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2352834.000000, "MAX_POP20": 3010089.000000, "MAX_POP50": 3010089.000000, "MAX_POP300": 3010089.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 340.000000, "MAX_AREAKM": 509.000000, "MIN_AREAMI": 131.000000, "MAX_AREAMI": 196.000000, "MIN_PERKM": 199.000000, "MAX_PERKM": 296.000000, "MIN_PERMI": 124.000000, "MAX_PERMI": 184.000000, "MIN_BBXMIN": 23.483333, "MAX_BBXMIN": 23.591667, "MIN_BBXMAX": 23.916667, "MAX_BBXMAX": 23.916667, "MIN_BBYMIN": 37.900000, "MAX_BBYMIN": 37.908333, "MIN_BBYMAX": 38.158333, "MAX_BBYMAX": 38.158333, "MEAN_BBXC": 23.741514, "MEAN_BBYC": 38.032045, "COMPARE": 0, "GN_ASCII": "Athens", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 729137.000000, "ELEVATION": 70.000000, "GTOPO30": 110.000000, "TIMEZONE": "Europe\/Athens", "GEONAMESNO": "GeoNames match general.", "UN_FID": 198, "UN_ADM0": "Greece", "UN_LAT": 37.940000, "UN_LONG": 23.650000, "POP1950": 1347.000000, "POP1955": 1563.000000, "POP1960": 1814.000000, "POP1965": 2121.000000, "POP1970": 2485.000000, "POP1975": 2738.000000, "POP1980": 2987.000000, "POP1985": 3047.000000, "POP1990": 3070.000000, "POP1995": 3122.000000, "POP2000": 3179.000000, "POP2005": 3230.000000, "POP2010": 3242.000000, "POP2015": 3256.000000, "POP2020": 3278.000000, "POP2025": 3300.000000, "POP2050": 3326.000000, "CITYALT": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 2641764.605946, 4577345.462085 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Baghdad", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Baghdad", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Iraq", "SOV_A3": "IRQ", "ADM0NAME": "Iraq", "ADM0_A3": "IRQ", "ADM1NAME": "Baghdad", "ISO_A2": "IQ", "NOTE": null, "LATITUDE": 33.338648, "LONGITUDE": 44.393869, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 5054000, "POP_MIN": 5054000, "POP_OTHER": 4959534, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 98182.000000, "MEGANAME": "Baghdad", "LS_NAME": "Baghdad", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5298025.000000, "MAX_POP20": 5298025.000000, "MAX_POP50": 5298025.000000, "MAX_POP300": 5298025.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 587.000000, "MAX_AREAKM": 587.000000, "MIN_AREAMI": 227.000000, "MAX_AREAMI": 227.000000, "MIN_PERKM": 365.000000, "MAX_PERKM": 365.000000, "MIN_PERMI": 227.000000, "MAX_PERMI": 227.000000, "MIN_BBXMIN": 44.241667, "MAX_BBXMIN": 44.241667, "MIN_BBXMAX": 44.575000, "MAX_BBXMAX": 44.575000, "MIN_BBYMIN": 33.141667, "MAX_BBYMIN": 33.141667, "MIN_BBYMAX": 33.575000, "MAX_BBYMAX": 33.575000, "MEAN_BBXC": 44.401776, "MEAN_BBYC": 33.332697, "COMPARE": 0, "GN_ASCII": "Baghdad", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 5672513.000000, "ELEVATION": 0.000000, "GTOPO30": 41.000000, "TIMEZONE": "Asia\/Baghdad", "GEONAMESNO": "GeoNames match general.", "UN_FID": 300, "UN_ADM0": "Iraq", "UN_LAT": 33.330000, "UN_LONG": 44.390000, "POP1950": 579.000000, "POP1955": 719.000000, "POP1960": 1019.000000, "POP1965": 1614.000000, "POP1970": 2070.000000, "POP1975": 2620.000000, "POP1980": 3145.000000, "POP1985": 3607.000000, "POP1990": 4092.000000, "POP1995": 4598.000000, "POP2000": 5200.000000, "POP2005": 5327.000000, "POP2010": 5054.000000, "POP2015": 5891.000000, "POP2020": 6618.000000, "POP2025": 7345.000000, "POP2050": 8060.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4941686.254183, 3940599.921219 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Addis Ababa", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Addis Ababa", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Ethiopia", "SOV_A3": "ETH", "ADM0NAME": "Ethiopia", "ADM0_A3": "ETH", "ADM1NAME": "Addis Ababa", "ISO_A2": "ET", "NOTE": null, "LATITUDE": 9.033310, "LONGITUDE": 38.700004, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3100000, "POP_MIN": 2757729, "POP_OTHER": 3013653, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 344979.000000, "MEGANAME": "Addis Ababa", "LS_NAME": "Addis Ababa", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2984087.000000, "MAX_POP20": 3176486.000000, "MAX_POP50": 3491912.000000, "MAX_POP300": 3450173.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 462.000000, "MAX_AREAKM": 1182.000000, "MIN_AREAMI": 178.000000, "MAX_AREAMI": 457.000000, "MIN_PERKM": 397.000000, "MAX_PERKM": 1325.000000, "MIN_PERMI": 247.000000, "MAX_PERMI": 823.000000, "MIN_BBXMIN": 38.575000, "MAX_BBXMIN": 38.575000, "MIN_BBXMAX": 38.966667, "MAX_BBXMAX": 39.483333, "MIN_BBYMIN": 8.033333, "MAX_BBYMIN": 8.671780, "MIN_BBYMAX": 9.125000, "MAX_BBYMAX": 9.125000, "MEAN_BBXC": 38.919464, "MEAN_BBYC": 8.825709, "COMPARE": 0, "GN_ASCII": "Addis Ababa", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 44.000000, "GN_POP": 2757729.000000, "ELEVATION": 0.000000, "GTOPO30": 2363.000000, "TIMEZONE": "Africa\/Addis_Ababa", "GEONAMESNO": "GeoNames match general.", "UN_FID": 180, "UN_ADM0": "Ethiopia", "UN_LAT": 9.020000, "UN_LONG": 38.700000, "POP1950": 392.000000, "POP1955": 451.000000, "POP1960": 519.000000, "POP1965": 597.000000, "POP1970": 729.000000, "POP1975": 926.000000, "POP1980": 1175.000000, "POP1985": 1476.000000, "POP1990": 1791.000000, "POP1995": 2157.000000, "POP2000": 2493.000000, "POP2005": 2902.000000, "POP2010": 3100.000000, "POP2015": 3453.000000, "POP2020": 4184.000000, "POP2025": 5083.000000, "POP2050": 6156.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4307848.175296, 1009994.883191 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Tehran", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tehran", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Iran", "SOV_A3": "IRN", "ADM0NAME": "Iran", "ADM0_A3": "IRN", "ADM1NAME": "Tehran", "ISO_A2": "IR", "NOTE": null, "LATITUDE": 35.671943, "LONGITUDE": 51.424344, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 7873000, "POP_MIN": 7153309, "POP_OTHER": 8209012, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 112931.000000, "MEGANAME": "Tehran", "LS_NAME": "Tehran", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 8258981.000000, "MAX_POP20": 8258981.000000, "MAX_POP50": 8258981.000000, "MAX_POP300": 8258981.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 496.000000, "MAX_AREAKM": 496.000000, "MIN_AREAMI": 191.000000, "MAX_AREAMI": 191.000000, "MIN_PERKM": 245.000000, "MAX_PERKM": 245.000000, "MIN_PERMI": 152.000000, "MAX_PERMI": 152.000000, "MIN_BBXMIN": 51.216667, "MAX_BBXMIN": 51.216667, "MIN_BBXMAX": 51.600000, "MAX_BBXMAX": 51.600000, "MIN_BBYMIN": 35.550000, "MAX_BBYMIN": 35.550000, "MIN_BBYMAX": 35.825000, "MAX_BBYMAX": 35.825000, "MEAN_BBXC": 51.416848, "MEAN_BBYC": 35.709171, "COMPARE": 0, "GN_ASCII": "Tehran", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 26.000000, "GN_POP": 7153309.000000, "ELEVATION": 0.000000, "GTOPO30": 1149.000000, "TIMEZONE": "Asia\/Tehran", "GEONAMESNO": "GeoNames match general.", "UN_FID": 297, "UN_ADM0": "Iran (Islamic Republic of)", "UN_LAT": 35.770000, "UN_LONG": 51.440000, "POP1950": 1041.000000, "POP1955": 1396.000000, "POP1960": 1873.000000, "POP1965": 2511.000000, "POP1970": 3290.000000, "POP1975": 4273.000000, "POP1980": 5079.000000, "POP1985": 5839.000000, "POP1990": 6365.000000, "POP1995": 6687.000000, "POP2000": 7128.000000, "POP2005": 7653.000000, "POP2010": 7873.000000, "POP2015": 8221.000000, "POP2020": 8832.000000, "POP2025": 9404.000000, "POP2050": 9814.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 5724315.180210, 4255841.233905 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 2, "FEATURECLA": "Populated place", "NAME": "Vancouver", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vancouver", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Canada", "SOV_A3": "CAN", "ADM0NAME": "Canada", "ADM0_A3": "CAN", "ADM1NAME": "British Columbia", "ISO_A2": "CA", "NOTE": null, "LATITUDE": 49.273417, "LONGITUDE": -123.121644, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 2313328, "POP_MIN": 603502, "POP_OTHER": 482002, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 6173331.000000, "MEGANAME": "Vancouver", "LS_NAME": "Vancouver2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1590116.000000, "MAX_POP20": 1588839.000000, "MAX_POP50": 1590116.000000, "MAX_POP300": 1590116.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 706.000000, "MAX_AREAKM": 708.000000, "MIN_AREAMI": 273.000000, "MAX_AREAMI": 273.000000, "MIN_PERKM": 398.000000, "MAX_PERKM": 405.000000, "MIN_PERMI": 248.000000, "MAX_PERMI": 251.000000, "MIN_BBXMIN": -123.283333, "MAX_BBXMIN": -123.283333, "MIN_BBXMAX": -122.708333, "MAX_BBXMAX": -122.708333, "MIN_BBYMIN": 49.100000, "MAX_BBYMIN": 49.100000, "MIN_BBYMAX": 49.383333, "MAX_BBYMAX": 49.383333, "MEAN_BBXC": -122.982768, "MEAN_BBYC": 49.228888, "COMPARE": 0, "GN_ASCII": "Vancouver", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 2.000000, "GN_POP": 1837969.000000, "ELEVATION": 0.000000, "GTOPO30": 63.000000, "TIMEZONE": "America\/Vancouver", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 15, "UN_ADM0": "Canada", "UN_LAT": 49.270000, "UN_LONG": -122.960000, "POP1950": 556.000000, "POP1955": 588.000000, "POP1960": 620.000000, "POP1965": 836.000000, "POP1970": 1045.000000, "POP1975": 1150.000000, "POP1980": 1247.000000, "POP1985": 1359.000000, "POP1990": 1559.000000, "POP1995": 1789.000000, "POP2000": 1959.000000, "POP2005": 2093.000000, "POP2010": 2146.000000, "POP2015": 2219.000000, "POP2020": 2310.000000, "POP2025": 2380.000000, "POP2050": 2444.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -13706055.351943, 6321714.456608 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 2, "FEATURECLA": "Admin-1 capital", "NAME": "Toronto", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Toronto", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Canada", "SOV_A3": "CAN", "ADM0NAME": "Canada", "ADM0_A3": "CAN", "ADM1NAME": "Ontario", "ISO_A2": "CA", "NOTE": null, "LATITUDE": 43.699980, "LONGITUDE": -79.420021, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 5213000, "POP_MIN": 3934421, "POP_OTHER": 3749229, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 6167865.000000, "MEGANAME": "Toronto", "LS_NAME": "Toronto", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3934421.000000, "MAX_POP20": 4377344.000000, "MAX_POP50": 5190755.000000, "MAX_POP300": 5190755.000000, "MAX_POP310": 5190755.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1432.000000, "MAX_AREAKM": 2286.000000, "MIN_AREAMI": 553.000000, "MAX_AREAMI": 883.000000, "MIN_PERKM": 464.000000, "MAX_PERKM": 1161.000000, "MIN_PERMI": 289.000000, "MAX_PERMI": 721.000000, "MIN_BBXMIN": -80.008333, "MAX_BBXMIN": -79.806554, "MIN_BBXMAX": -79.130272, "MAX_BBXMAX": -78.608333, "MIN_BBYMIN": 43.141667, "MAX_BBYMIN": 43.475000, "MIN_BBYMAX": 44.090162, "MAX_BBYMAX": 44.125000, "MEAN_BBXC": -79.464213, "MEAN_BBYC": 43.712937, "COMPARE": 0, "GN_ASCII": "Toronto", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 8.000000, "GN_POP": 4612191.000000, "ELEVATION": 0.000000, "GTOPO30": 173.000000, "TIMEZONE": "America\/Toronto", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 14, "UN_ADM0": "Canada", "UN_LAT": 43.720000, "UN_LONG": -79.410000, "POP1950": 1068.000000, "POP1955": 1365.000000, "POP1960": 1744.000000, "POP1965": 2093.000000, "POP1970": 2535.000000, "POP1975": 2770.000000, "POP1980": 3008.000000, "POP1985": 3355.000000, "POP1990": 3807.000000, "POP1995": 4197.000000, "POP2000": 4607.000000, "POP2005": 5035.000000, "POP2010": 5213.000000, "POP2015": 5447.000000, "POP2020": 5687.000000, "POP2025": 5827.000000, "POP2050": 5946.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -8841212.885611, 5419429.781051 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Buenos Aires", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Buenos Aires", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Argentina", "SOV_A3": "ARG", "ADM0NAME": "Argentina", "ADM0_A3": "ARG", "ADM1NAME": "Ciudad de Buenos Aires", "ISO_A2": "AR", "NOTE": null, "LATITUDE": -34.602502, "LONGITUDE": -58.397531, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 12795000, "POP_MIN": 10929146, "POP_OTHER": 10271457, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 3435910.000000, "MEGANAME": "Buenos Aires", "LS_NAME": "Buenos Aires", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 10929146.000000, "MAX_POP20": 10991915.000000, "MAX_POP50": 12611862.000000, "MAX_POP300": 12611862.000000, "MAX_POP310": 12611862.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1675.000000, "MAX_AREAKM": 2447.000000, "MIN_AREAMI": 647.000000, "MAX_AREAMI": 945.000000, "MIN_PERKM": 570.000000, "MAX_PERKM": 1064.000000, "MIN_PERMI": 354.000000, "MAX_PERMI": 661.000000, "MIN_BBXMIN": -59.016667, "MAX_BBXMIN": -58.757731, "MIN_BBXMAX": -58.175000, "MAX_BBXMAX": -57.816667, "MIN_BBYMIN": -35.008333, "MAX_BBYMIN": -35.008333, "MIN_BBYMAX": -34.375000, "MAX_BBYMAX": -34.366667, "MEAN_BBXC": -58.508450, "MEAN_BBYC": -34.681331, "COMPARE": 0, "GN_ASCII": "Buenos Aires", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 7.000000, "GN_POP": 13076300.000000, "ELEVATION": 0.000000, "GTOPO30": 13.000000, "TIMEZONE": "America\/Argentina\/Buenos_Aires", "GEONAMESNO": "GeoNames match general.", "UN_FID": 201, "UN_ADM0": "Argentina", "UN_LAT": -34.620000, "UN_LONG": -58.440000, "POP1950": 5098.000000, "POP1955": 5799.000000, "POP1960": 6598.000000, "POP1965": 7317.000000, "POP1970": 8105.000000, "POP1975": 8745.000000, "POP1980": 9422.000000, "POP1985": 9959.000000, "POP1990": 10513.000000, "POP1995": 11154.000000, "POP2000": 11847.000000, "POP2005": 12553.000000, "POP2010": 12795.000000, "POP2015": 13089.000000, "POP2020": 13432.000000, "POP2025": 13653.000000, "POP2050": 13768.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -6501000.068096, -4109729.892427 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Kabul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kabul", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "Afghanistan", "SOV_A3": "AFG", "ADM0NAME": "Afghanistan", "ADM0_A3": "AFG", "ADM1NAME": "Kabul", "ISO_A2": "AF", "NOTE": null, "LATITUDE": 34.516690, "LONGITUDE": 69.183260, "CHANGED": 5.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3277000, "POP_MIN": 3043532, "POP_OTHER": 3475519, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 1138958.000000, "MEGANAME": "Kabul", "LS_NAME": "Kabul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3720671.000000, "MAX_POP20": 3720671.000000, "MAX_POP50": 4803365.000000, "MAX_POP300": 4793793.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 594.000000, "MAX_AREAKM": 1471.000000, "MIN_AREAMI": 229.000000, "MAX_AREAMI": 568.000000, "MIN_PERKM": 409.000000, "MAX_PERKM": 1100.000000, "MIN_PERMI": 254.000000, "MAX_PERMI": 683.000000, "MIN_BBXMIN": 68.866667, "MAX_BBXMIN": 68.866667, "MIN_BBXMAX": 69.308333, "MAX_BBXMAX": 69.783333, "MIN_BBYMIN": 34.433333, "MAX_BBYMIN": 34.433333, "MIN_BBYMAX": 34.768813, "MAX_BBYMAX": 35.166667, "MEAN_BBXC": 69.144173, "MEAN_BBYC": 34.688498, "COMPARE": 0, "GN_ASCII": "Kabul", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 13.000000, "GN_POP": 3043532.000000, "ELEVATION": 0.000000, "GTOPO30": 1808.000000, "TIMEZONE": "Asia\/Kabul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 320, "UN_ADM0": "Afghanistan", "UN_LAT": 34.530000, "UN_LONG": 69.130000, "POP1950": 129.000000, "POP1955": 184.000000, "POP1960": 263.000000, "POP1965": 369.000000, "POP1970": 472.000000, "POP1975": 674.000000, "POP1980": 978.000000, "POP1985": 1160.000000, "POP1990": 1306.000000, "POP1995": 1616.000000, "POP2000": 1963.000000, "POP2005": 2994.000000, "POP2010": 3277.000000, "POP2015": 3768.000000, "POP2020": 4730.000000, "POP2025": 5836.000000, "POP2050": 7175.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 7701228.668118, 4098656.613776 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 7, "FEATURECLA": "Admin-0 capital", "NAME": "Vienna", "NAMEPAR": "Wien", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Vienna", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Austria", "SOV_A3": "AUT", "ADM0NAME": "Austria", "ADM0_A3": "AUT", "ADM1NAME": "Wien", "ISO_A2": "AT", "NOTE": null, "LATITUDE": 48.200015, "LONGITUDE": 16.366639, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 2400000, "POP_MIN": 1731000, "POP_OTHER": 1480886, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2761369.000000, "MEGANAME": "Wien", "LS_NAME": "Vienna", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1561335.000000, "MAX_POP20": 1610331.000000, "MAX_POP50": 1610331.000000, "MAX_POP300": 1610331.000000, "MAX_POP310": 1610331.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 488.000000, "MAX_AREAKM": 533.000000, "MIN_AREAMI": 189.000000, "MAX_AREAMI": 206.000000, "MIN_PERKM": 444.000000, "MAX_PERKM": 497.000000, "MIN_PERMI": 276.000000, "MAX_PERMI": 309.000000, "MIN_BBXMIN": 16.133333, "MAX_BBXMIN": 16.133333, "MIN_BBXMAX": 16.583333, "MAX_BBXMAX": 16.583333, "MIN_BBYMIN": 47.916667, "MAX_BBYMIN": 48.008333, "MIN_BBYMAX": 48.383333, "MAX_BBYMAX": 48.383333, "MEAN_BBXC": 16.351672, "MEAN_BBYC": 48.182470, "COMPARE": 0, "GN_ASCII": "Vienna", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 1691468.000000, "ELEVATION": 171.000000, "GTOPO30": 164.000000, "TIMEZONE": "Europe\/Vienna", "GEONAMESNO": "GeoNames match general.", "UN_FID": 321, "UN_ADM0": "Austria", "UN_LAT": 48.200000, "UN_LONG": 16.320000, "POP1950": 2086.000000, "POP1955": 2087.000000, "POP1960": 2089.000000, "POP1965": 2080.000000, "POP1970": 2070.000000, "POP1975": 2059.000000, "POP1980": 2049.000000, "POP1985": 2069.000000, "POP1990": 2096.000000, "POP1995": 2127.000000, "POP2000": 2158.000000, "POP2005": 2264.000000, "POP2010": 2315.000000, "POP2015": 2385.000000, "POP2020": 2451.000000, "POP2025": 2476.000000, "POP2050": 2496.000000, "CITYALT": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 1821709.302517, 6140519.980618 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 3, "FEATURECLA": "Admin-1 capital", "NAME": "Melbourne", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Melbourne", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Australia", "SOV_A3": "AUS", "ADM0NAME": "Australia", "ADM0_A3": "AUS", "ADM1NAME": "Victoria", "ISO_A2": "AU", "NOTE": null, "LATITUDE": -37.820031, "LONGITUDE": 144.975016, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed feature class. Changed scale rank.", "POP_MAX": 4170000, "POP_MIN": 93625, "POP_OTHER": 1805353, "RANK_MAX": 12, "RANK_MIN": 8, "GEONAMEID": 2158177.000000, "MEGANAME": "Melbourne", "LS_NAME": "Melbourne2", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 1904377.000000, "MAX_POP20": 2545035.000000, "MAX_POP50": 2564188.000000, "MAX_POP300": 2564188.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1010.000000, "MAX_AREAKM": 1554.000000, "MIN_AREAMI": 390.000000, "MAX_AREAMI": 600.000000, "MIN_PERKM": 360.000000, "MAX_PERKM": 843.000000, "MIN_PERMI": 224.000000, "MAX_PERMI": 524.000000, "MIN_BBXMIN": 144.608333, "MAX_BBXMIN": 144.728637, "MIN_BBXMAX": 145.327432, "MAX_BBXMAX": 145.400000, "MIN_BBYMIN": -38.208333, "MAX_BBYMIN": -38.010500, "MIN_BBYMAX": -37.589905, "MAX_BBYMAX": -37.566667, "MEAN_BBXC": 145.053821, "MEAN_BBYC": -37.835257, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 3730206.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames rough area, rough name, requires further research.", "UN_FID": 274, "UN_ADM0": "Australia", "UN_LAT": -37.850000, "UN_LONG": 145.070000, "POP1950": 1332.000000, "POP1955": 1574.000000, "POP1960": 1851.000000, "POP1965": 2068.000000, "POP1970": 2334.000000, "POP1975": 2561.000000, "POP1980": 2765.000000, "POP1985": 2935.000000, "POP1990": 3117.000000, "POP1995": 3257.000000, "POP2000": 3433.000000, "POP2005": 3641.000000, "POP2010": 3728.000000, "POP2015": 3851.000000, "POP2020": 4013.000000, "POP2025": 4137.000000, "POP2050": 4238.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 16138328.372983, -4553759.166562 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 1, "NATSCALE": 300, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Taipei", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Taipei", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Taiwan", "SOV_A3": "TWN", "ADM0NAME": "Taiwan", "ADM0_A3": "TWN", "ADM1NAME": "Taipei City", "ISO_A2": "TW", "NOTE": null, "LATITUDE": 25.035833, "LONGITUDE": 121.568333, "CHANGED": 1.000000, "NAMEDIFF": 0, "DIFFNOTE": "Corrected coordinates.", "POP_MAX": 6900273, "POP_MIN": 2618772, "POP_OTHER": 5698241, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 1668341.000000, "MEGANAME": "Taipei", "LS_NAME": "Taipei", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5920742.000000, "MAX_POP20": 8275696.000000, "MAX_POP50": 8647783.000000, "MAX_POP300": 9212245.000000, "MAX_POP310": 9212245.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 536.000000, "MAX_AREAKM": 1708.000000, "MIN_AREAMI": 207.000000, "MAX_AREAMI": 660.000000, "MIN_PERKM": 288.000000, "MAX_PERKM": 1087.000000, "MIN_PERMI": 179.000000, "MAX_PERMI": 675.000000, "MIN_BBXMIN": 120.741667, "MAX_BBXMIN": 121.325000, "MIN_BBXMAX": 121.622484, "MAX_BBXMAX": 121.816667, "MIN_BBYMIN": 24.466667, "MAX_BBYMIN": 24.900000, "MIN_BBYMAX": 25.233333, "MAX_BBYMAX": 25.233333, "MEAN_BBXC": 121.292375, "MEAN_BBYC": 24.965116, "COMPARE": 0, "GN_ASCII": "Taipei", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 3.000000, "GN_POP": 7871900.000000, "ELEVATION": 0.000000, "GTOPO30": 10.000000, "TIMEZONE": "Asia\/Taipei", "GEONAMESNO": "GeoNames match general.", "UN_FID": 111, "UN_ADM0": "China", "UN_LAT": 25.030000, "UN_LONG": 121.500000, "POP1950": 604.000000, "POP1955": 760.000000, "POP1960": 955.000000, "POP1965": 1230.000000, "POP1970": 1741.000000, "POP1975": 2023.000000, "POP1980": 2217.000000, "POP1985": 2446.000000, "POP1990": 2711.000000, "POP1995": 2676.000000, "POP2000": 2640.000000, "POP2005": 2606.000000, "POP2010": 2603.000000, "POP2015": 2651.000000, "POP2020": 2862.000000, "POP2025": 3104.000000, "POP2050": 3305.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13532924.963253, 2880146.584156 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Los Angeles", "NAMEPAR": null, "NAMEALT": "Los Angeles-Long Beach-Santa Ana", "DIFFASCII": 0, "NAMEASCII": "Los Angeles", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "California", "ISO_A2": "US", "NOTE": null, "LATITUDE": 33.989978, "LONGITUDE": -118.179981, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 12500000, "POP_MIN": 3694820, "POP_OTHER": 142265, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 5368361.000000, "MEGANAME": "Los Angeles-Long Beach-Santa Ana", "LS_NAME": "Los Angeles1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 4976870.000000, "MAX_POP20": 6558538.000000, "MAX_POP50": 14868745.000000, "MAX_POP300": 14870543.000000, "MAX_POP310": 14903021.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1338.000000, "MAX_AREAKM": 5803.000000, "MIN_AREAMI": 517.000000, "MAX_AREAMI": 2241.000000, "MIN_PERKM": 534.000000, "MAX_PERKM": 2202.000000, "MIN_PERMI": 332.000000, "MAX_PERMI": 1369.000000, "MIN_BBXMIN": -118.991667, "MAX_BBXMIN": -118.966667, "MIN_BBXMAX": -117.857183, "MAX_BBXMAX": -117.008333, "MIN_BBYMIN": 33.391667, "MAX_BBYMIN": 33.862631, "MIN_BBYMAX": 34.241667, "MAX_BBYMAX": 34.333333, "MEAN_BBXC": -118.107478, "MEAN_BBYC": 33.980609, "COMPARE": 0, "GN_ASCII": "Los Angeles", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 3694820.000000, "ELEVATION": 89.000000, "GTOPO30": 115.000000, "TIMEZONE": "America\/Los_Angeles", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 547, "UN_ADM0": "United States of America", "UN_LAT": 34.000000, "UN_LONG": -118.250000, "POP1950": 4046.000000, "POP1955": 5154.000000, "POP1960": 6530.000000, "POP1965": 7408.000000, "POP1970": 8378.000000, "POP1975": 8926.000000, "POP1980": 9512.000000, "POP1985": 10181.000000, "POP1990": 10883.000000, "POP1995": 11339.000000, "POP2000": 11814.000000, "POP2005": 12307.000000, "POP2010": 12500.000000, "POP2015": 12773.000000, "POP2020": 13160.000000, "POP2025": 13461.000000, "POP2050": 13672.000000, "CITYALT": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -13155951.864469, 4027717.682794 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "Washington, D.C.", "NAMEPAR": null, "NAMEALT": "Washington D.C.", "DIFFASCII": 0, "NAMEASCII": "Washington, D.C.", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "District of Columbia", "ISO_A2": "US", "NOTE": null, "LATITUDE": 38.899549, "LONGITUDE": -77.009419, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 4338000, "POP_MIN": 552433, "POP_OTHER": 2175991, "RANK_MAX": 12, "RANK_MIN": 11, "GEONAMEID": 4140963.000000, "MEGANAME": "Washington, D.C.", "LS_NAME": "Washington, D.C.", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 2182723.000000, "MAX_POP20": 2240256.000000, "MAX_POP50": 3764385.000000, "MAX_POP300": 5678280.000000, "MAX_POP310": 5678280.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1114.000000, "MAX_AREAKM": 3447.000000, "MIN_AREAMI": 430.000000, "MAX_AREAMI": 1331.000000, "MIN_PERKM": 548.000000, "MAX_PERKM": 1898.000000, "MIN_PERMI": 341.000000, "MAX_PERMI": 1179.000000, "MIN_BBXMIN": -77.533333, "MAX_BBXMIN": -77.308333, "MIN_BBXMAX": -76.752653, "MAX_BBXMAX": -76.400000, "MIN_BBYMIN": 38.666667, "MAX_BBYMIN": 38.754222, "MIN_BBYMAX": 39.241667, "MAX_BBYMAX": 39.533333, "MEAN_BBXC": -77.002668, "MEAN_BBYC": 39.007587, "COMPARE": 0, "GN_ASCII": "Washington", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 552433.000000, "ELEVATION": 7.000000, "GTOPO30": 11.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames match general.", "UN_FID": 577, "UN_ADM0": "United States of America", "UN_LAT": 38.890000, "UN_LONG": -76.950000, "POP1950": 1298.000000, "POP1955": 1539.000000, "POP1960": 1823.000000, "POP1965": 2135.000000, "POP1970": 2488.000000, "POP1975": 2626.000000, "POP1980": 2777.000000, "POP1985": 3063.000000, "POP1990": 3376.000000, "POP1995": 3651.000000, "POP2000": 3949.000000, "POP2005": 4241.000000, "POP2010": 4338.000000, "POP2015": 4464.000000, "POP2020": 4636.000000, "POP2025": 4778.000000, "POP2050": 4889.000000, "CITYALT": "Washington D.C." }, "geometry": { "type": "Point", "coordinates": [ -8572865.874693, 4707571.416160 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "New York", "NAMEPAR": null, "NAMEALT": "New York-Newark", "DIFFASCII": 0, "NAMEASCII": "New York", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": "UN Headquarters", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United States", "SOV_A3": "USA", "ADM0NAME": "United States of America", "ADM0_A3": "USA", "ADM1NAME": "New York", "ISO_A2": "US", "NOTE": null, "LATITUDE": 40.749979, "LONGITUDE": -73.980017, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 19040000, "POP_MIN": 8008278, "POP_OTHER": 9292603, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 5128581.000000, "MEGANAME": "New York-Newark", "LS_NAME": "New York", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 9376946.000000, "MAX_POP20": 11947707.000000, "MAX_POP50": 18788144.000000, "MAX_POP300": 18788144.000000, "MAX_POP310": 18924578.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1137.000000, "MAX_AREAKM": 8185.000000, "MIN_AREAMI": 439.000000, "MAX_AREAMI": 3160.000000, "MIN_PERKM": 497.000000, "MAX_PERKM": 4993.000000, "MIN_PERMI": 309.000000, "MAX_PERMI": 3102.000000, "MIN_BBXMIN": -74.750000, "MAX_BBXMIN": -74.091431, "MIN_BBXMAX": -73.574946, "MAX_BBXMAX": -72.716667, "MIN_BBYMIN": 39.808333, "MAX_BBYMIN": 40.566667, "MIN_BBYMAX": 41.057237, "MAX_BBYMAX": 41.941667, "MEAN_BBXC": -73.815782, "MEAN_BBYC": 40.813006, "COMPARE": 0, "GN_ASCII": "New York City", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 8008278.000000, "ELEVATION": 10.000000, "GTOPO30": 2.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames spatial join with similar names only.", "UN_FID": 555, "UN_ADM0": "United States of America", "UN_LAT": 40.700000, "UN_LONG": -73.900000, "POP1950": 12338.000000, "POP1955": 13219.000000, "POP1960": 14164.000000, "POP1965": 15177.000000, "POP1970": 16191.000000, "POP1975": 15880.000000, "POP1980": 15601.000000, "POP1985": 15827.000000, "POP1990": 16086.000000, "POP1995": 16943.000000, "POP2000": 17846.000000, "POP2005": 18732.000000, "POP2010": 19040.000000, "POP2015": 19441.000000, "POP2020": 19974.000000, "POP2025": 20370.000000, "POP2050": 20628.000000, "CITYALT": "New York" }, "geometry": { "type": "Point", "coordinates": [ -8235634.425381, 4975819.220637 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "London", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "London", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "United Kingdom", "SOV_A3": "GBR", "ADM0NAME": "United Kingdom", "ADM0_A3": "GBR", "ADM1NAME": "Westminster", "ISO_A2": "GB", "NOTE": null, "LATITUDE": 51.499995, "LONGITUDE": -0.116722, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 8567000, "POP_MIN": 7421209, "POP_OTHER": 326670, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 2643743.000000, "MEGANAME": "London", "LS_NAME": "London2", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 7721282.000000, "MAX_POP20": 8370578.000000, "MAX_POP50": 10011551.000000, "MAX_POP300": 10011551.000000, "MAX_POP310": 10011551.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1914.000000, "MAX_AREAKM": 3198.000000, "MIN_AREAMI": 739.000000, "MAX_AREAMI": 1235.000000, "MIN_PERKM": 994.000000, "MAX_PERKM": 2440.000000, "MIN_PERMI": 618.000000, "MAX_PERMI": 1516.000000, "MIN_BBXMIN": -1.091667, "MAX_BBXMIN": -0.546866, "MIN_BBXMAX": 0.307108, "MAX_BBXMAX": 0.816667, "MIN_BBYMIN": 51.133333, "MAX_BBYMIN": 51.208333, "MIN_BBYMAX": 51.825000, "MAX_BBYMAX": 51.825000, "MEAN_BBXC": -0.169651, "MEAN_BBYC": 51.489624, "COMPARE": 0, "GN_ASCII": "London", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 7421209.000000, "ELEVATION": 0.000000, "GTOPO30": 21.000000, "TIMEZONE": "Europe\/London", "GEONAMESNO": "GeoNames match general.", "UN_FID": 519, "UN_ADM0": "United Kingdom", "UN_LAT": 51.480000, "UN_LONG": -0.170000, "POP1950": 8361.000000, "POP1955": 8278.000000, "POP1960": 8196.000000, "POP1965": 7869.000000, "POP1970": 7509.000000, "POP1975": 7546.000000, "POP1980": 7660.000000, "POP1985": 7667.000000, "POP1990": 7654.000000, "POP1995": 7908.000000, "POP2000": 8225.000000, "POP2005": 8505.000000, "POP2010": 8567.000000, "POP2015": 8607.000000, "POP2020": 8618.000000, "POP2025": 8618.000000, "POP2050": 8618.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -13210.028213, 6710566.111051 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-1 capital", "NAME": "Istanbul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Istanbul", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Turkey", "SOV_A3": "TUR", "ADM0NAME": "Turkey", "ADM0_A3": "TUR", "ADM1NAME": "Istanbul", "ISO_A2": "TR", "NOTE": null, "LATITUDE": 41.104996, "LONGITUDE": 29.010002, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 10061000, "POP_MIN": 9945610, "POP_OTHER": 9651488, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 745044.000000, "MEGANAME": "Istanbul", "LS_NAME": "Istanbul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 9945610.000000, "MAX_POP20": 9945243.000000, "MAX_POP50": 10140950.000000, "MAX_POP300": 10140950.000000, "MAX_POP310": 10140950.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1249.000000, "MAX_AREAKM": 1327.000000, "MIN_AREAMI": 482.000000, "MAX_AREAMI": 512.000000, "MIN_PERKM": 852.000000, "MAX_PERKM": 926.000000, "MIN_PERMI": 529.000000, "MAX_PERMI": 575.000000, "MIN_BBXMIN": 28.200000, "MAX_BBXMIN": 28.257268, "MIN_BBXMAX": 29.450000, "MAX_BBXMAX": 29.558333, "MIN_BBYMIN": 40.750000, "MAX_BBYMIN": 40.750000, "MIN_BBYMAX": 41.258333, "MAX_BBYMAX": 41.258333, "MEAN_BBXC": 29.008987, "MEAN_BBYC": 41.004964, "COMPARE": 0, "GN_ASCII": "Istanbul", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 34.000000, "GN_POP": 11174257.000000, "ELEVATION": 0.000000, "GTOPO30": 28.000000, "TIMEZONE": "Europe\/Istanbul", "GEONAMESNO": "GeoNames match general.", "UN_FID": 504, "UN_ADM0": "Turkey", "UN_LAT": 41.060000, "UN_LONG": 29.000000, "POP1950": 967.000000, "POP1955": 1249.000000, "POP1960": 1453.000000, "POP1965": 2001.000000, "POP1970": 2772.000000, "POP1975": 3600.000000, "POP1980": 4397.000000, "POP1985": 5407.000000, "POP1990": 6552.000000, "POP1995": 7665.000000, "POP2000": 8744.000000, "POP2005": 9709.000000, "POP2010": 10061.000000, "POP2015": 10530.000000, "POP2020": 11177.000000, "POP2025": 11695.000000, "POP2050": 12102.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 3229161.992432, 5028128.406019 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Riyadh", "NAMEPAR": null, "NAMEALT": "Ar-Riyadh", "DIFFASCII": 0, "NAMEASCII": "Riyadh", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Saudi Arabia", "SOV_A3": "SAU", "ADM0NAME": "Saudi Arabia", "ADM0_A3": "SAU", "ADM1NAME": "Ar Riyad", "ISO_A2": "SA", "NOTE": null, "LATITUDE": 24.640833, "LONGITUDE": 46.772742, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 4465000, "POP_MIN": 4205961, "POP_OTHER": 5148778, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 108410.000000, "MEGANAME": "Ar-Riyadh", "LS_NAME": "Riyadh", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 5322753.000000, "MAX_POP20": 5322753.000000, "MAX_POP50": 5322753.000000, "MAX_POP300": 5322753.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 854.000000, "MAX_AREAKM": 854.000000, "MIN_AREAMI": 330.000000, "MAX_AREAMI": 330.000000, "MIN_PERKM": 459.000000, "MAX_PERKM": 459.000000, "MIN_PERMI": 285.000000, "MAX_PERMI": 285.000000, "MIN_BBXMIN": 46.516667, "MAX_BBXMIN": 46.516667, "MIN_BBXMAX": 46.933333, "MAX_BBXMAX": 46.933333, "MIN_BBYMIN": 24.516667, "MAX_BBYMIN": 24.516667, "MIN_BBYMAX": 24.833333, "MAX_BBYMAX": 24.833333, "MEAN_BBXC": 46.740447, "MEAN_BBYC": 24.678984, "COMPARE": 0, "GN_ASCII": "Riyadh", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 10.000000, "GN_POP": 4205961.000000, "ELEVATION": 0.000000, "GTOPO30": 618.000000, "TIMEZONE": "Asia\/Riyadh", "GEONAMESNO": "GeoNames match general.", "UN_FID": 444, "UN_ADM0": "Saudi Arabia", "UN_LAT": 24.650000, "UN_LONG": 46.770000, "POP1950": 111.000000, "POP1955": 131.000000, "POP1960": 156.000000, "POP1965": 227.000000, "POP1970": 408.000000, "POP1975": 710.000000, "POP1980": 1055.000000, "POP1985": 1566.000000, "POP1990": 2325.000000, "POP1995": 3035.000000, "POP2000": 3567.000000, "POP2005": 4193.000000, "POP2010": 4465.000000, "POP2015": 4856.000000, "POP2020": 5405.000000, "POP2025": 5866.000000, "POP2050": 6275.000000, "CITYALT": "Riyadh" }, "geometry": { "type": "Point", "coordinates": [ 5206501.172306, 2831931.448466 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Cape Town", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Cape Town", "ADM0CAP": 1.000000, "CAPALT": 1.000000, "CAPIN": "Legislative cap", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "South Africa", "SOV_A3": "ZAF", "ADM0NAME": "South Africa", "ADM0_A3": "ZAF", "ADM1NAME": "Western Cape", "ISO_A2": "ZA", "NOTE": null, "LATITUDE": -33.920011, "LONGITUDE": 18.434988, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3215000, "POP_MIN": 2432858, "POP_OTHER": 2401318, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 3369157.000000, "MEGANAME": "Cape Town", "LS_NAME": "Cape Town", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2432858.000000, "MAX_POP20": 2443605.000000, "MAX_POP50": 2443605.000000, "MAX_POP300": 2443605.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 534.000000, "MAX_AREAKM": 542.000000, "MIN_AREAMI": 206.000000, "MAX_AREAMI": 209.000000, "MIN_PERKM": 295.000000, "MAX_PERKM": 300.000000, "MIN_PERMI": 183.000000, "MAX_PERMI": 187.000000, "MIN_BBXMIN": 18.375000, "MAX_BBXMIN": 18.375000, "MIN_BBXMAX": 18.724745, "MAX_BBXMAX": 18.741667, "MIN_BBYMIN": -34.108333, "MAX_BBYMIN": -34.108333, "MIN_BBYMAX": -33.808333, "MAX_BBYMAX": -33.808333, "MEAN_BBXC": 18.557208, "MEAN_BBYC": -33.954979, "COMPARE": 0, "GN_ASCII": "Cape Town", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 11.000000, "GN_POP": 3433441.000000, "ELEVATION": 0.000000, "GTOPO30": 7.000000, "TIMEZONE": "Africa\/Johannesburg", "GEONAMESNO": "GeoNames match general.", "UN_FID": 455, "UN_ADM0": "South Africa", "UN_LAT": -33.970000, "UN_LONG": 18.480000, "POP1950": 618.000000, "POP1955": 705.000000, "POP1960": 803.000000, "POP1965": 945.000000, "POP1970": 1114.000000, "POP1975": 1339.000000, "POP1980": 1609.000000, "POP1985": 1925.000000, "POP1990": 2155.000000, "POP1995": 2394.000000, "POP2000": 2715.000000, "POP2005": 3087.000000, "POP2010": 3215.000000, "POP2015": 3357.000000, "POP2020": 3504.000000, "POP2025": 3627.000000, "POP2050": 3744.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 2051956.882520, -4017805.470945 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Moscow", "NAMEPAR": "Moskva", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Moscow", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Russia", "SOV_A3": "RUS", "ADM0NAME": "Russia", "ADM0_A3": "RUS", "ADM1NAME": "Moskva", "ISO_A2": "RU", "NOTE": null, "LATITUDE": 55.752164, "LONGITUDE": 37.615523, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 10452000, "POP_MIN": 10452000, "POP_OTHER": 10585385, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 524901.000000, "MEGANAME": "Moskva", "LS_NAME": "Moscow", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 11029015.000000, "MAX_POP20": 11030955.000000, "MAX_POP50": 11547877.000000, "MAX_POP300": 11547877.000000, "MAX_POP310": 11547877.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1434.000000, "MAX_AREAKM": 1639.000000, "MIN_AREAMI": 554.000000, "MAX_AREAMI": 633.000000, "MIN_PERKM": 875.000000, "MAX_PERKM": 1135.000000, "MIN_PERMI": 544.000000, "MAX_PERMI": 705.000000, "MIN_BBXMIN": 37.233333, "MAX_BBXMIN": 37.233333, "MIN_BBXMAX": 38.075401, "MAX_BBXMAX": 38.300000, "MIN_BBYMIN": 55.341667, "MAX_BBYMIN": 55.533007, "MIN_BBYMAX": 56.075000, "MAX_BBYMAX": 56.075000, "MEAN_BBXC": 37.643636, "MEAN_BBYC": 55.754996, "COMPARE": 0, "GN_ASCII": "Moscow", "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 0.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames match general + researched.", "UN_FID": 426, "UN_ADM0": "Russian Federation", "UN_LAT": 55.740000, "UN_LONG": 37.700000, "POP1950": 5356.000000, "POP1955": 5749.000000, "POP1960": 6170.000000, "POP1965": 6622.000000, "POP1970": 7106.000000, "POP1975": 7623.000000, "POP1980": 8136.000000, "POP1985": 8580.000000, "POP1990": 8987.000000, "POP1995": 9201.000000, "POP2000": 10016.000000, "POP2005": 10416.000000, "POP2010": 10452.000000, "POP2015": 10495.000000, "POP2020": 10524.000000, "POP2025": 10526.000000, "POP2050": 10526.000000, "CITYALT": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 4187124.234910, 7509620.824145 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Mexico City", "NAMEPAR": null, "NAMEALT": "Ciudad de México", "DIFFASCII": 0, "NAMEASCII": "Mexico City", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Mexico", "SOV_A3": "MEX", "ADM0NAME": "Mexico", "ADM0_A3": "MEX", "ADM1NAME": "Distrito Federal", "ISO_A2": "MX", "NOTE": null, "LATITUDE": 19.442442, "LONGITUDE": -99.130988, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 19028000, "POP_MIN": 10811002, "POP_OTHER": 10018444, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 3530597.000000, "MEGANAME": "Ciudad de México", "LS_NAME": "Mexico City", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 10811002.000000, "MAX_POP20": 17250245.000000, "MAX_POP50": 18948089.000000, "MAX_POP300": 18948089.000000, "MAX_POP310": 18948089.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 895.000000, "MAX_AREAKM": 2080.000000, "MIN_AREAMI": 345.000000, "MAX_AREAMI": 803.000000, "MIN_PERKM": 256.000000, "MAX_PERKM": 889.000000, "MIN_PERMI": 159.000000, "MAX_PERMI": 552.000000, "MIN_BBXMIN": -99.366667, "MAX_BBXMIN": -99.366667, "MIN_BBXMAX": -99.018165, "MAX_BBXMAX": -98.808333, "MIN_BBYMIN": 19.200000, "MAX_BBYMIN": 19.233333, "MIN_BBYMAX": 19.640315, "MAX_BBYMAX": 19.908333, "MEAN_BBXC": -99.116655, "MEAN_BBYC": 19.473748, "COMPARE": 0, "GN_ASCII": "Mexico City", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 9.000000, "GN_POP": 11285654.000000, "ELEVATION": 0.000000, "GTOPO30": 2216.000000, "TIMEZONE": "America\/Mexico_City", "GEONAMESNO": "GeoNames match general.", "UN_FID": 352, "UN_ADM0": "Mexico", "UN_LAT": 19.420000, "UN_LONG": -99.120000, "POP1950": 2883.000000, "POP1955": 3801.000000, "POP1960": 5012.000000, "POP1965": 6653.000000, "POP1970": 8769.000000, "POP1975": 10690.000000, "POP1980": 13010.000000, "POP1985": 14109.000000, "POP1990": 15312.000000, "POP1995": 16811.000000, "POP2000": 18022.000000, "POP2005": 18735.000000, "POP2010": 19028.000000, "POP2015": 19485.000000, "POP2020": 20189.000000, "POP2025": 20695.000000, "POP2050": 21009.000000, "CITYALT": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -11035427.740435, 2207325.950261 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital alt", "NAME": "Lagos", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lagos", "ADM0CAP": 0.000000, "CAPALT": 1.000000, "CAPIN": "Former capital", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Nigeria", "SOV_A3": "NGA", "ADM0NAME": "Nigeria", "ADM0_A3": "NGA", "ADM1NAME": "Lagos", "ISO_A2": "NG", "NOTE": null, "LATITUDE": 6.443262, "LONGITUDE": 3.391531, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 9466000, "POP_MIN": 1536, "POP_OTHER": 6567892, "RANK_MAX": 13, "RANK_MIN": 3, "GEONAMEID": 735497.000000, "MEGANAME": "Lagos", "LS_NAME": "Lagos", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 7147910.000000, "MAX_POP20": 7105663.000000, "MAX_POP50": 7411389.000000, "MAX_POP300": 7453740.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 1035.000000, "MAX_AREAKM": 1332.000000, "MIN_AREAMI": 400.000000, "MAX_AREAMI": 514.000000, "MIN_PERKM": 638.000000, "MAX_PERKM": 882.000000, "MIN_PERMI": 397.000000, "MAX_PERMI": 548.000000, "MIN_BBXMIN": 2.925412, "MAX_BBXMIN": 2.996332, "MIN_BBXMAX": 3.475000, "MAX_BBXMAX": 3.475000, "MIN_BBYMIN": 6.400000, "MAX_BBYMIN": 6.400000, "MIN_BBYMAX": 6.800870, "MAX_BBYMAX": 6.966667, "MEAN_BBXC": 3.231132, "MEAN_BBYC": 6.585848, "COMPARE": 0, "GN_ASCII": "Lagos", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 1536.000000, "ELEVATION": 0.000000, "GTOPO30": 89.000000, "TIMEZONE": "Europe\/Athens", "GEONAMESNO": "GeoNames match general.", "UN_FID": 392, "UN_ADM0": "Nigeria", "UN_LAT": 6.450000, "UN_LONG": 3.300000, "POP1950": 305.000000, "POP1955": 468.000000, "POP1960": 762.000000, "POP1965": 1135.000000, "POP1970": 1414.000000, "POP1975": 1890.000000, "POP1980": 2572.000000, "POP1985": 3500.000000, "POP1990": 4764.000000, "POP1995": 5966.000000, "POP2000": 7233.000000, "POP2005": 8767.000000, "POP2010": 9466.000000, "POP2015": 10572.000000, "POP2020": 12403.000000, "POP2025": 14134.000000, "POP2050": 15796.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 377326.899866, 718995.184806 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Rome", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Rome", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Italy", "SOV_A3": "ITA", "ADM0NAME": "Italy", "ADM0_A3": "ITA", "ADM1NAME": "Lazio", "ISO_A2": "IT", "NOTE": null, "LATITUDE": 41.895956, "LONGITUDE": 12.483258, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 3339000, "POP_MIN": 35452, "POP_OTHER": 2050212, "RANK_MAX": 12, "RANK_MIN": 7, "GEONAMEID": 4219762.000000, "MEGANAME": "Rome", "LS_NAME": "Rome", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2143900.000000, "MAX_POP20": 2143900.000000, "MAX_POP50": 2666328.000000, "MAX_POP300": 2666328.000000, "MAX_POP310": 2666328.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 505.000000, "MAX_AREAKM": 683.000000, "MIN_AREAMI": 195.000000, "MAX_AREAMI": 264.000000, "MIN_PERKM": 382.000000, "MAX_PERKM": 500.000000, "MIN_PERMI": 238.000000, "MAX_PERMI": 311.000000, "MIN_BBXMIN": 12.333333, "MAX_BBXMIN": 12.450494, "MIN_BBXMAX": 12.766667, "MAX_BBXMAX": 12.766667, "MIN_BBYMIN": 41.666667, "MAX_BBYMIN": 41.666667, "MIN_BBYMAX": 42.033333, "MAX_BBYMAX": 42.050000, "MEAN_BBXC": 12.561474, "MEAN_BBYC": 41.864442, "COMPARE": 0, "GN_ASCII": "Rome", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 0.000000, "GN_POP": 35452.000000, "ELEVATION": 187.000000, "GTOPO30": 183.000000, "TIMEZONE": "America\/New_York", "GEONAMESNO": "GeoNames match general.", "UN_FID": 308, "UN_ADM0": "Italy", "UN_LAT": 41.870000, "UN_LONG": 12.510000, "POP1950": 1884.000000, "POP1955": 2143.000000, "POP1960": 2456.000000, "POP1965": 2780.000000, "POP1970": 3135.000000, "POP1975": 3300.000000, "POP1980": 3390.000000, "POP1985": 3429.000000, "POP1990": 3450.000000, "POP1995": 3425.000000, "POP2000": 3385.000000, "POP2005": 3348.000000, "POP2010": 3339.000000, "POP2015": 3333.000000, "POP2020": 3330.000000, "POP2025": 3330.000000, "POP2050": 3330.000000, "CITYALT": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 1389413.358930, 5145697.829829 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "Beijing", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Beijing", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "China", "ADM0_A3": "CHN", "ADM1NAME": "Beijing", "ISO_A2": "CN", "NOTE": null, "LATITUDE": 39.928892, "LONGITUDE": 116.388286, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11106000, "POP_MIN": 7480601, "POP_OTHER": 9033231, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 1816670.000000, "MEGANAME": "Beijing", "LS_NAME": "Beijing", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 10190861.000000, "MAX_POP20": 11120470.000000, "MAX_POP50": 16510327.000000, "MAX_POP300": 23647944.000000, "MAX_POP310": 137121250.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 2512.000000, "MAX_AREAKM": 118844.000000, "MIN_AREAMI": 970.000000, "MAX_AREAMI": 45886.000000, "MIN_PERKM": 1837.000000, "MAX_PERKM": 93615.000000, "MIN_PERMI": 1141.000000, "MAX_PERMI": 58169.000000, "MIN_BBXMIN": 111.441667, "MAX_BBXMIN": 116.058333, "MIN_BBXMAX": 117.208333, "MAX_BBXMAX": 117.325000, "MIN_BBYMIN": 31.883333, "MAX_BBYMIN": 39.658333, "MIN_BBYMAX": 40.433333, "MAX_BBYMAX": 40.466667, "MEAN_BBXC": 115.929521, "MEAN_BBYC": 38.837783, "COMPARE": 0, "GN_ASCII": "Beijing", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 22.000000, "GN_POP": 7480601.000000, "ELEVATION": 0.000000, "GTOPO30": 63.000000, "TIMEZONE": "Asia\/Harbin", "GEONAMESNO": "GeoNames match general.", "UN_FID": 24, "UN_ADM0": "China", "UN_LAT": 39.900000, "UN_LONG": 116.380000, "POP1950": 4331.000000, "POP1955": 4628.000000, "POP1960": 4945.000000, "POP1965": 5284.000000, "POP1970": 5646.000000, "POP1975": 6034.000000, "POP1980": 6448.000000, "POP1985": 6890.000000, "POP1990": 7362.000000, "POP1995": 8486.000000, "POP2000": 9782.000000, "POP2005": 10717.000000, "POP2010": 11106.000000, "POP2015": 11741.000000, "POP2020": 12842.000000, "POP2025": 13807.000000, "POP2050": 14545.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 12956068.084685, 4855896.943275 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Nairobi", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Nairobi", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Kenya", "SOV_A3": "KEN", "ADM0NAME": "Kenya", "ADM0_A3": "KEN", "ADM1NAME": "Nairobi", "ISO_A2": "KE", "NOTE": null, "LATITUDE": -1.283347, "LONGITUDE": 36.816657, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 3010000, "POP_MIN": 2750547, "POP_OTHER": 3400962, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 184745.000000, "MEGANAME": "Nairobi", "LS_NAME": "Nairobi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3401842.000000, "MAX_POP20": 3401842.000000, "MAX_POP50": 3418532.000000, "MAX_POP300": 3418532.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 698.000000, "MAX_AREAKM": 719.000000, "MIN_AREAMI": 269.000000, "MAX_AREAMI": 277.000000, "MIN_PERKM": 554.000000, "MAX_PERKM": 571.000000, "MIN_PERMI": 344.000000, "MAX_PERMI": 355.000000, "MIN_BBXMIN": 36.608333, "MAX_BBXMIN": 36.608333, "MIN_BBXMAX": 37.066667, "MAX_BBXMAX": 37.066667, "MIN_BBYMIN": -1.433333, "MAX_BBYMIN": -1.433333, "MIN_BBYMAX": -1.083333, "MAX_BBYMAX": -1.083333, "MEAN_BBXC": 36.804283, "MEAN_BBYC": -1.249679, "COMPARE": 0, "GN_ASCII": "Nairobi", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 5.000000, "GN_POP": 2750547.000000, "ELEVATION": 0.000000, "GTOPO30": 1724.000000, "TIMEZONE": "Africa\/Nairobi", "GEONAMESNO": "GeoNames match general.", "UN_FID": 324, "UN_ADM0": "Kenya", "UN_LAT": -1.260000, "UN_LONG": 36.800000, "POP1950": 137.000000, "POP1955": 201.000000, "POP1960": 293.000000, "POP1965": 404.000000, "POP1970": 531.000000, "POP1975": 677.000000, "POP1980": 862.000000, "POP1985": 1090.000000, "POP1990": 1380.000000, "POP1995": 1755.000000, "POP2000": 2233.000000, "POP2005": 2787.000000, "POP2010": 3010.000000, "POP2015": 3363.000000, "POP2020": 4052.000000, "POP2025": 4881.000000, "POP2050": 5871.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 4098194.882274, -142656.786622 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-0 capital", "NAME": "Jakarta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Jakarta", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Indonesia", "SOV_A3": "IDN", "ADM0NAME": "Indonesia", "ADM0_A3": "IDN", "ADM1NAME": "Jakarta Raya", "ISO_A2": "ID", "NOTE": null, "LATITUDE": -6.174418, "LONGITUDE": 106.829438, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 9125000, "POP_MIN": 8540121, "POP_OTHER": 9129613, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 1642911.000000, "MEGANAME": "Jakarta", "LS_NAME": "Jakarta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 9664972.000000, "MAX_POP20": 15074060.000000, "MAX_POP50": 22017580.000000, "MAX_POP300": 22031364.000000, "MAX_POP310": 44354170.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1303.000000, "MAX_AREAKM": 19435.000000, "MIN_AREAMI": 503.000000, "MAX_AREAMI": 7504.000000, "MIN_PERKM": 318.000000, "MAX_PERKM": 10224.000000, "MIN_PERMI": 197.000000, "MAX_PERMI": 6353.000000, "MIN_BBXMIN": 105.891667, "MAX_BBXMIN": 106.473854, "MIN_BBXMAX": 106.932506, "MAX_BBXMAX": 109.808333, "MIN_BBYMIN": -7.716667, "MAX_BBYMIN": -6.383127, "MIN_BBYMAX": -6.016667, "MAX_BBYMAX": -5.875000, "MEAN_BBXC": 106.989399, "MEAN_BBYC": -6.313824, "COMPARE": 0, "GN_ASCII": "Jakarta", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 4.000000, "GN_POP": 8540121.000000, "ELEVATION": 0.000000, "GTOPO30": 2.000000, "TIMEZONE": "Asia\/Jakarta", "GEONAMESNO": "GeoNames match general.", "UN_FID": 280, "UN_ADM0": "Indonesia", "UN_LAT": -6.160000, "UN_LONG": 106.800000, "POP1950": 1452.000000, "POP1955": 1972.000000, "POP1960": 2679.000000, "POP1965": 3297.000000, "POP1970": 3915.000000, "POP1975": 4813.000000, "POP1980": 5984.000000, "POP1985": 7009.000000, "POP1990": 8175.000000, "POP1995": 8322.000000, "POP2000": 8390.000000, "POP2005": 8843.000000, "POP2010": 9125.000000, "POP2015": 9703.000000, "POP2020": 10792.000000, "POP2025": 11689.000000, "POP2050": 12363.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11891981.985720, -688449.375052 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 5, "FEATURECLA": "Admin-0 capital", "NAME": "Bogota", "NAMEPAR": null, "NAMEALT": "Bogotá", "DIFFASCII": 0, "NAMEASCII": "Bogota", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Colombia", "SOV_A3": "COL", "ADM0NAME": "Colombia", "ADM0_A3": "COL", "ADM1NAME": "Bogota", "ISO_A2": "CO", "NOTE": null, "LATITUDE": 4.596424, "LONGITUDE": -74.083344, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 7772000, "POP_MIN": 6333661, "POP_OTHER": 5754084, "RANK_MAX": 13, "RANK_MIN": 13, "GEONAMEID": 3688689.000000, "MEGANAME": "Bogotá", "LS_NAME": "Bogota", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 6333661.000000, "MAX_POP20": 6333154.000000, "MAX_POP50": 6333154.000000, "MAX_POP300": 6333154.000000, "MAX_POP310": 6333154.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 523.000000, "MAX_AREAKM": 523.000000, "MIN_AREAMI": 202.000000, "MAX_AREAMI": 202.000000, "MIN_PERKM": 186.000000, "MAX_PERKM": 186.000000, "MIN_PERMI": 116.000000, "MAX_PERMI": 116.000000, "MIN_BBXMIN": -74.266667, "MAX_BBXMIN": -74.266667, "MIN_BBXMAX": -74.008333, "MAX_BBXMAX": -74.008333, "MIN_BBYMIN": 4.483333, "MAX_BBYMIN": 4.483333, "MIN_BBYMAX": 4.800000, "MAX_BBYMAX": 4.800000, "MEAN_BBXC": -74.116517, "MEAN_BBYC": 4.643227, "COMPARE": 0, "GN_ASCII": "Bogota", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 34.000000, "GN_POP": 7102602.000000, "ELEVATION": 0.000000, "GTOPO30": 2620.000000, "TIMEZONE": "America\/Bogota", "GEONAMESNO": "GeoNames match general.", "UN_FID": 161, "UN_ADM0": "Colombia", "UN_LAT": 4.630000, "UN_LONG": -74.080000, "POP1950": 630.000000, "POP1955": 894.000000, "POP1960": 1269.000000, "POP1965": 1780.000000, "POP1970": 2383.000000, "POP1975": 3040.000000, "POP1980": 3525.000000, "POP1985": 4087.000000, "POP1990": 4740.000000, "POP1995": 5494.000000, "POP2000": 6356.000000, "POP2005": 7353.000000, "POP2010": 7772.000000, "POP2015": 8320.000000, "POP2020": 8916.000000, "POP2025": 9299.000000, "POP2050": 9600.000000, "CITYALT": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -8247136.737341, 512438.552491 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Cairo", "NAMEPAR": null, "NAMEALT": "Al-Qahirah", "DIFFASCII": 0, "NAMEASCII": "Cairo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Egypt", "SOV_A3": "EGY", "ADM0NAME": "Egypt", "ADM0_A3": "EGY", "ADM1NAME": "Al Qahirah", "ISO_A2": "EG", "NOTE": null, "LATITUDE": 30.049960, "LONGITUDE": 31.249968, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11893000, "POP_MIN": 7734614, "POP_OTHER": 13720557, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 360630.000000, "MEGANAME": "Al-Qahirah", "LS_NAME": "Cairo", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 14936123.000000, "MAX_POP20": 15091561.000000, "MAX_POP50": 29872827.000000, "MAX_POP300": 30682197.000000, "MAX_POP310": 30696820.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1479.000000, "MAX_AREAKM": 4900.000000, "MIN_AREAMI": 571.000000, "MAX_AREAMI": 1892.000000, "MIN_PERKM": 1365.000000, "MAX_PERKM": 5010.000000, "MIN_PERMI": 848.000000, "MAX_PERMI": 3113.000000, "MIN_BBXMIN": 30.641667, "MAX_BBXMIN": 30.991693, "MIN_BBXMAX": 31.672096, "MAX_BBXMAX": 31.733333, "MIN_BBYMIN": 29.300000, "MAX_BBYMIN": 29.800000, "MIN_BBYMAX": 30.531354, "MAX_BBYMAX": 31.158333, "MEAN_BBXC": 31.273845, "MEAN_BBYC": 30.353647, "COMPARE": 0, "GN_ASCII": "Cairo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 11.000000, "GN_POP": 7734614.000000, "ELEVATION": 0.000000, "GTOPO30": 23.000000, "TIMEZONE": "Africa\/Cairo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 515, "UN_ADM0": "Egypt", "UN_LAT": 30.070000, "UN_LONG": 31.250000, "POP1950": 2494.000000, "POP1955": 3029.000000, "POP1960": 3680.000000, "POP1965": 4738.000000, "POP1970": 5585.000000, "POP1975": 6450.000000, "POP1980": 7349.000000, "POP1985": 8328.000000, "POP1990": 9061.000000, "POP1995": 9707.000000, "POP2000": 10534.000000, "POP2005": 11487.000000, "POP2010": 11893.000000, "POP2015": 12503.000000, "POP2020": 13465.000000, "POP2025": 14451.000000, "POP2050": 15561.000000, "CITYALT": "Cairo" }, "geometry": { "type": "Point", "coordinates": [ 3478513.937537, 3510223.648597 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Shanghai", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Shanghai", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "China", "ADM0_A3": "CHN", "ADM1NAME": "Shanghai", "ISO_A2": "CN", "NOTE": null, "LATITUDE": 31.216452, "LONGITUDE": 121.436505, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 14987000, "POP_MIN": 14608512, "POP_OTHER": 16803572, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 1796236.000000, "MEGANAME": "Shanghai", "LS_NAME": "Shanghai", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 16172884.000000, "MAX_POP20": 16172884.000000, "MAX_POP50": 26630672.000000, "MAX_POP300": 26631586.000000, "MAX_POP310": 40576904.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 3792.000000, "MAX_AREAKM": 16400.000000, "MIN_AREAMI": 1464.000000, "MAX_AREAMI": 6332.000000, "MIN_PERKM": 2219.000000, "MAX_PERKM": 12342.000000, "MIN_PERMI": 1379.000000, "MAX_PERMI": 7669.000000, "MIN_BBXMIN": 119.016667, "MAX_BBXMIN": 121.013757, "MIN_BBXMAX": 121.900000, "MAX_BBXMAX": 121.900000, "MIN_BBYMIN": 30.191667, "MAX_BBYMIN": 30.700000, "MIN_BBYMAX": 31.650000, "MAX_BBYMAX": 32.308333, "MEAN_BBXC": 121.053901, "MEAN_BBYC": 31.253289, "COMPARE": 0, "GN_ASCII": "Shanghai", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 23.000000, "GN_POP": 14608512.000000, "ELEVATION": 0.000000, "GTOPO30": 6.000000, "TIMEZONE": "Asia\/Shanghai", "GEONAMESNO": "GeoNames match general.", "UN_FID": 98, "UN_ADM0": "China", "UN_LAT": 31.240000, "UN_LONG": 121.470000, "POP1950": 6066.000000, "POP1955": 6299.000000, "POP1960": 6542.000000, "POP1965": 6793.000000, "POP1970": 7055.000000, "POP1975": 7326.000000, "POP1980": 7608.000000, "POP1985": 7901.000000, "POP1990": 8205.000000, "POP1995": 10423.000000, "POP2000": 13243.000000, "POP2005": 14503.000000, "POP2010": 14987.000000, "POP2015": 15789.000000, "POP2020": 17214.000000, "POP2025": 18466.000000, "POP2050": 19412.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 13518033.252528, 3661144.920720 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 2, "FEATURECLA": "Admin-0 capital", "NAME": "Tokyo", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Tokyo", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "De facto capita", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Japan", "SOV_A3": "JPN", "ADM0NAME": "Japan", "ADM0_A3": "JPN", "ADM1NAME": "Tokyo", "ISO_A2": "JP", "NOTE": null, "LATITUDE": 35.685017, "LONGITUDE": 139.751407, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 35676000, "POP_MIN": 8336599, "POP_OTHER": 12945252, "RANK_MAX": 14, "RANK_MIN": 13, "GEONAMEID": 1850147.000000, "MEGANAME": "Tokyo", "LS_NAME": "Tokyo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 13762740.000000, "MAX_POP20": 24218878.000000, "MAX_POP50": 31303497.000000, "MAX_POP300": 31303497.000000, "MAX_POP310": 31303497.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 2130.000000, "MAX_AREAKM": 5750.000000, "MIN_AREAMI": 823.000000, "MAX_AREAMI": 2220.000000, "MIN_PERKM": 838.000000, "MAX_PERKM": 2284.000000, "MIN_PERMI": 521.000000, "MAX_PERMI": 1419.000000, "MIN_BBXMIN": 139.166667, "MAX_BBXMIN": 139.536465, "MIN_BBXMAX": 140.433333, "MAX_BBXMAX": 140.433333, "MIN_BBYMIN": 35.175000, "MAX_BBYMIN": 35.486247, "MIN_BBYMAX": 36.050000, "MAX_BBYMAX": 36.241667, "MEAN_BBXC": 139.751020, "MEAN_BBYC": 35.743469, "COMPARE": 0, "GN_ASCII": "Tokyo", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 40.000000, "GN_POP": 8336599.000000, "ELEVATION": 0.000000, "GTOPO30": 40.000000, "TIMEZONE": "Asia\/Tokyo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 318, "UN_ADM0": "Japan", "UN_LAT": 35.680000, "UN_LONG": 139.800000, "POP1950": 11275.000000, "POP1955": 13713.000000, "POP1960": 16679.000000, "POP1965": 20284.000000, "POP1970": 23298.000000, "POP1975": 26615.000000, "POP1980": 28549.000000, "POP1985": 30304.000000, "POP1990": 32530.000000, "POP1995": 33587.000000, "POP2000": 34450.000000, "POP2005": 35327.000000, "POP2010": 35676.000000, "POP2015": 36094.000000, "POP2020": 36371.000000, "POP2025": 36399.000000, "POP2050": 36400.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 15556838.900667, 4257632.982114 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Mumbai", "NAMEPAR": "Bombay", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Mumbai", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "India", "SOV_A3": "IND", "ADM0NAME": "India", "ADM0_A3": "IND", "ADM1NAME": "Maharashtra", "ISO_A2": "IN", "NOTE": null, "LATITUDE": 19.016990, "LONGITUDE": 72.856989, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 18978000, "POP_MIN": 12691836, "POP_OTHER": 12426085, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 1275339.000000, "MEGANAME": "Mumbai", "LS_NAME": "Mumbai", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 12814908.000000, "MAX_POP20": 20149761.000000, "MAX_POP50": 20149761.000000, "MAX_POP300": 20149761.000000, "MAX_POP310": 20149761.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 442.000000, "MAX_AREAKM": 1479.000000, "MIN_AREAMI": 171.000000, "MAX_AREAMI": 571.000000, "MIN_PERKM": 244.000000, "MAX_PERKM": 1021.000000, "MIN_PERMI": 152.000000, "MAX_PERMI": 634.000000, "MIN_BBXMIN": 72.758333, "MAX_BBXMIN": 72.775000, "MIN_BBXMAX": 72.983154, "MAX_BBXMAX": 73.266667, "MIN_BBYMIN": 18.891667, "MAX_BBYMIN": 18.891667, "MIN_BBYMAX": 19.308333, "MAX_BBYMAX": 19.491667, "MEAN_BBXC": 72.959776, "MEAN_BBYC": 19.189154, "COMPARE": 0, "GN_ASCII": "Mumbai", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 16.000000, "GN_POP": 12691836.000000, "ELEVATION": 0.000000, "GTOPO30": 12.000000, "TIMEZONE": "Asia\/Kolkata", "GEONAMESNO": "GeoNames match general.", "UN_FID": 253, "UN_ADM0": "India", "UN_LAT": 19.070000, "UN_LONG": 72.820000, "POP1950": 2857.000000, "POP1955": 3432.000000, "POP1960": 4060.000000, "POP1965": 4854.000000, "POP1970": 5811.000000, "POP1975": 7082.000000, "POP1980": 8658.000000, "POP1985": 10341.000000, "POP1990": 12308.000000, "POP1995": 14111.000000, "POP2000": 16086.000000, "POP2005": 18202.000000, "POP2010": 18978.000000, "POP2015": 20072.000000, "POP2020": 21946.000000, "POP2025": 24051.000000, "POP2050": 26385.000000, "CITYALT": "Bombay" }, "geometry": { "type": "Point", "coordinates": [ 8110186.337325, 2157165.476737 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Paris", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Paris", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "French Republic", "SOV_A3": "FRA", "ADM0NAME": "France", "ADM0_A3": "FRA", "ADM1NAME": "Île-de-France", "ISO_A2": "FR", "NOTE": null, "LATITUDE": 48.866693, "LONGITUDE": 2.333335, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 9904000, "POP_MIN": 11177, "POP_OTHER": 7142744, "RANK_MAX": 13, "RANK_MIN": 6, "GEONAMEID": 6942553.000000, "MEGANAME": "Paris", "LS_NAME": "Paris", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 7454172.000000, "MAX_POP20": 7970513.000000, "MAX_POP50": 9960588.000000, "MAX_POP300": 9960588.000000, "MAX_POP310": 9960588.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1121.000000, "MAX_AREAKM": 2415.000000, "MIN_AREAMI": 433.000000, "MAX_AREAMI": 932.000000, "MIN_PERKM": 542.000000, "MAX_PERKM": 1891.000000, "MIN_PERMI": 337.000000, "MAX_PERMI": 1175.000000, "MIN_BBXMIN": 1.658333, "MAX_BBXMIN": 2.152754, "MIN_BBXMAX": 2.658336, "MAX_BBXMAX": 2.925000, "MIN_BBYMIN": 48.491667, "MAX_BBYMIN": 48.591667, "MIN_BBYMAX": 49.183333, "MAX_BBYMAX": 49.183333, "MEAN_BBXC": 2.352277, "MEAN_BBYC": 48.839027, "COMPARE": 0, "GN_ASCII": "Paris", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 8.000000, "GN_POP": 11177.000000, "ELEVATION": 0.000000, "GTOPO30": 228.000000, "TIMEZONE": "America\/Toronto", "GEONAMESNO": "GeoNames match general.", "UN_FID": 189, "UN_ADM0": "France", "UN_LAT": 48.880000, "UN_LONG": 2.430000, "POP1950": 6522.000000, "POP1955": 6796.000000, "POP1960": 7411.000000, "POP1965": 7968.000000, "POP1970": 8350.000000, "POP1975": 8558.000000, "POP1980": 8669.000000, "POP1985": 8956.000000, "POP1990": 9330.000000, "POP1995": 9510.000000, "POP2000": 9692.000000, "POP2005": 9852.000000, "POP2010": 9904.000000, "POP2015": 9958.000000, "POP2020": 10007.000000, "POP2025": 10031.000000, "POP2050": 10036.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 259529.088321, 6252601.467208 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-0 capital", "NAME": "Santiago", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Santiago", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": "Official, admin", "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Chile", "SOV_A3": "CHL", "ADM0NAME": "Chile", "ADM0_A3": "CHL", "ADM1NAME": "Región Metropolitana de Santiago", "ISO_A2": "CL", "NOTE": null, "LATITUDE": -33.450014, "LONGITUDE": -70.667041, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 5720000, "POP_MIN": 46611, "POP_OTHER": 3066651, "RANK_MAX": 13, "RANK_MIN": 7, "GEONAMEID": 3449741.000000, "MEGANAME": "Santiago", "LS_NAME": "Santiago3", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3540014.000000, "MAX_POP20": 5157058.000000, "MAX_POP50": 5157058.000000, "MAX_POP300": 5157058.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 570.000000, "MAX_AREAKM": 903.000000, "MIN_AREAMI": 220.000000, "MAX_AREAMI": 349.000000, "MIN_PERKM": 310.000000, "MAX_PERKM": 558.000000, "MIN_PERMI": 193.000000, "MAX_PERMI": 347.000000, "MIN_BBXMIN": -70.958333, "MAX_BBXMIN": -70.800000, "MIN_BBXMAX": -70.458333, "MAX_BBXMAX": -70.458333, "MIN_BBYMIN": -33.700000, "MAX_BBYMIN": -33.556142, "MIN_BBYMAX": -33.175000, "MAX_BBYMAX": -33.175000, "MEAN_BBXC": -70.661270, "MEAN_BBYC": -33.461735, "COMPARE": 0, "GN_ASCII": "Santiago", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 23.000000, "GN_POP": 46611.000000, "ELEVATION": 0.000000, "GTOPO30": 441.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 17, "UN_ADM0": "Chile", "UN_LAT": 8.100000, "UN_LONG": -80.960000, "POP1950": 1322.000000, "POP1955": 1618.000000, "POP1960": 1980.000000, "POP1965": 2294.000000, "POP1970": 2647.000000, "POP1975": 3138.000000, "POP1980": 3721.000000, "POP1985": 4201.000000, "POP1990": 4616.000000, "POP1995": 4964.000000, "POP2000": 5275.000000, "POP2005": 5599.000000, "POP2010": 5720.000000, "POP2015": 5879.000000, "POP2020": 6084.000000, "POP2025": 6224.000000, "POP2050": 6310.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -7866835.615787, -3954929.633151 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Kolkata", "NAMEPAR": "Calcutta", "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kolkata", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 0.000000, "MEGACITY": 1, "SOV0NAME": "India", "SOV_A3": "IND", "ADM0NAME": "India", "ADM0_A3": "IND", "ADM1NAME": "West Bengal", "ISO_A2": "IN", "NOTE": null, "LATITUDE": 22.494969, "LONGITUDE": 88.324676, "CHANGED": 4.000000, "NAMEDIFF": 1, "DIFFNOTE": "Name changed. Changed scale rank.", "POP_MAX": 14787000, "POP_MIN": 4631392, "POP_OTHER": 7783716, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 1275004.000000, "MEGANAME": "Kolkata", "LS_NAME": "Calcutta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 8143162.000000, "MAX_POP20": 18577087.000000, "MAX_POP50": 48715672.000000, "MAX_POP300": 87652060.000000, "MAX_POP310": 0.000000, "MAX_NATSCA": 100.000000, "MIN_AREAKM": 2490.000000, "MAX_AREAKM": 53331.000000, "MIN_AREAMI": 962.000000, "MAX_AREAMI": 20591.000000, "MIN_PERKM": 0.000000, "MAX_PERKM": 35493.000000, "MIN_PERMI": 0.000000, "MAX_PERMI": 22054.000000, "MIN_BBXMIN": 85.483333, "MAX_BBXMIN": 87.714444, "MIN_BBXMAX": 88.850000, "MAX_BBXMAX": 89.455426, "MIN_BBYMIN": 19.866667, "MAX_BBYMIN": 22.056849, "MIN_BBYMAX": 22.575491, "MAX_BBYMAX": 25.259961, "MEAN_BBXC": 88.040398, "MEAN_BBYC": 22.616509, "COMPARE": 1, "GN_ASCII": "Calcutta", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 28.000000, "GN_POP": 4631392.000000, "ELEVATION": 0.000000, "GTOPO30": 16.000000, "TIMEZONE": "Asia\/Kolkata", "GEONAMESNO": "GeoNames match general.", "UN_FID": 245, "UN_ADM0": "India", "UN_LAT": 22.540000, "UN_LONG": 88.330000, "POP1950": 4513.000000, "POP1955": 5055.000000, "POP1960": 5652.000000, "POP1965": 6261.000000, "POP1970": 6926.000000, "POP1975": 7888.000000, "POP1980": 9030.000000, "POP1985": 9946.000000, "POP1990": 10890.000000, "POP1995": 11924.000000, "POP2000": 13058.000000, "POP2005": 14282.000000, "POP2010": 14787.000000, "POP2015": 15577.000000, "POP2020": 17039.000000, "POP2025": 18707.000000, "POP2050": 20560.000000, "CITYALT": "Calcutta" }, "geometry": { "type": "Point", "coordinates": [ 9832041.306752, 2571291.354412 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Populated place", "NAME": "Rio de Janeiro", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Rio de Janeiro", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Brazil", "SOV_A3": "BRA", "ADM0NAME": "Brazil", "ADM0_A3": "BRA", "ADM1NAME": "Rio de Janeiro", "ISO_A2": "BR", "NOTE": null, "LATITUDE": -22.925023, "LONGITUDE": -43.225021, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11748000, "POP_MIN": 2010175, "POP_OTHER": 1821489, "RANK_MAX": 14, "RANK_MIN": 12, "GEONAMEID": 3451190.000000, "MEGANAME": "Rio de Janeiro", "LS_NAME": "Rio de Janeiro", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2010175.000000, "MAX_POP20": 8118691.000000, "MAX_POP50": 8889292.000000, "MAX_POP300": 8889292.000000, "MAX_POP310": 8889292.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 316.000000, "MAX_AREAKM": 1472.000000, "MIN_AREAMI": 122.000000, "MAX_AREAMI": 568.000000, "MIN_PERKM": 203.000000, "MAX_PERKM": 691.000000, "MIN_PERMI": 126.000000, "MAX_PERMI": 429.000000, "MIN_BBXMIN": -43.750000, "MAX_BBXMIN": -43.499182, "MIN_BBXMAX": -43.158333, "MAX_BBXMAX": -43.150000, "MIN_BBYMIN": -23.033333, "MAX_BBYMIN": -23.033333, "MIN_BBYMAX": -22.837896, "MAX_BBYMAX": -22.575000, "MEAN_BBXC": -43.407551, "MEAN_BBYC": -22.856463, "COMPARE": 0, "GN_ASCII": "Rio de Janeiro", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 21.000000, "GN_POP": 6023699.000000, "ELEVATION": 0.000000, "GTOPO30": 19.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 489, "UN_ADM0": "Brazil", "UN_LAT": -22.720000, "UN_LONG": -43.450000, "POP1950": 2950.000000, "POP1955": 3592.000000, "POP1960": 4374.000000, "POP1965": 5387.000000, "POP1970": 6637.000000, "POP1975": 7557.000000, "POP1980": 8583.000000, "POP1985": 9086.000000, "POP1990": 9595.000000, "POP1995": 10174.000000, "POP2000": 10803.000000, "POP2005": 11469.000000, "POP2010": 11748.000000, "POP2015": 12171.000000, "POP2020": 12775.000000, "POP2025": 13179.000000, "POP2050": 13413.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ -4812003.916332, -2622718.786988 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 1, "FEATURECLA": "Admin-1 capital", "NAME": "Sao Paulo", "NAMEPAR": null, "NAMEALT": "Sao Paulo|São Paulo", "DIFFASCII": 0, "NAMEASCII": "Sao Paulo", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Brazil", "SOV_A3": "BRA", "ADM0NAME": "Brazil", "ADM0_A3": "BRA", "ADM1NAME": "São Paulo", "ISO_A2": "BR", "NOTE": null, "LATITUDE": -23.558680, "LONGITUDE": -46.625020, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 18845000, "POP_MIN": 10021295, "POP_OTHER": 11522944, "RANK_MAX": 14, "RANK_MIN": 14, "GEONAMEID": 3448439.000000, "MEGANAME": "São Paulo", "LS_NAME": "Sao Paolo", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 12495084.000000, "MAX_POP20": 17425624.000000, "MAX_POP50": 18203351.000000, "MAX_POP300": 18203351.000000, "MAX_POP310": 18203351.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1434.000000, "MAX_AREAKM": 2667.000000, "MIN_AREAMI": 554.000000, "MAX_AREAMI": 1030.000000, "MIN_PERKM": 532.000000, "MAX_PERKM": 1086.000000, "MIN_PERMI": 330.000000, "MAX_PERMI": 675.000000, "MIN_BBXMIN": -47.058333, "MAX_BBXMIN": -47.056372, "MIN_BBXMAX": -46.383333, "MAX_BBXMAX": -46.108333, "MIN_BBYMIN": -23.891667, "MAX_BBYMIN": -23.842331, "MIN_BBYMAX": -23.358333, "MAX_BBYMAX": -23.241667, "MEAN_BBXC": -46.651489, "MEAN_BBYC": -23.558961, "COMPARE": 0, "GN_ASCII": "Sao Paulo", "FEATURE_CL": "P", "FEATURE_CO": "PPLA", "ADMIN1_COD": 27.000000, "GN_POP": 10021295.000000, "ELEVATION": 0.000000, "GTOPO30": 631.000000, "TIMEZONE": "America\/Sao_Paulo", "GEONAMESNO": "GeoNames match general.", "UN_FID": 491, "UN_ADM0": "Brazil", "UN_LAT": -23.580000, "UN_LONG": -46.620000, "POP1950": 2334.000000, "POP1955": 3044.000000, "POP1960": 3970.000000, "POP1965": 5494.000000, "POP1970": 7620.000000, "POP1975": 9614.000000, "POP1980": 12089.000000, "POP1985": 13395.000000, "POP1990": 14776.000000, "POP1995": 15948.000000, "POP2000": 17099.000000, "POP2005": 18333.000000, "POP2010": 18845.000000, "POP2015": 19582.000000, "POP2020": 20544.000000, "POP2025": 21124.000000, "POP2050": 21428.000000, "CITYALT": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -5190490.094438, -2699486.460265 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 3, "FEATURECLA": "Admin-1 capital", "NAME": "Sydney", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sydney", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Australia", "SOV_A3": "AUS", "ADM0NAME": "Australia", "ADM0_A3": "AUS", "ADM1NAME": "New South Wales", "ISO_A2": "AU", "NOTE": null, "LATITUDE": -33.920011, "LONGITUDE": 151.185180, "CHANGED": 4.000000, "NAMEDIFF": 0, "DIFFNOTE": "Changed feature class.", "POP_MAX": 4630000, "POP_MIN": 3641422, "POP_OTHER": 2669348, "RANK_MAX": 12, "RANK_MIN": 12, "GEONAMEID": 2147714.000000, "MEGANAME": "Sydney", "LS_NAME": "Sydney1", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2731457.000000, "MAX_POP20": 2731457.000000, "MAX_POP50": 3164008.000000, "MAX_POP300": 3164008.000000, "MAX_POP310": 3164008.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 1078.000000, "MAX_AREAKM": 1409.000000, "MIN_AREAMI": 416.000000, "MAX_AREAMI": 544.000000, "MIN_PERKM": 468.000000, "MAX_PERKM": 717.000000, "MIN_PERMI": 291.000000, "MAX_PERMI": 445.000000, "MIN_BBXMIN": 150.533333, "MAX_BBXMIN": 150.831963, "MIN_BBXMAX": 151.308333, "MAX_BBXMAX": 151.341667, "MIN_BBYMIN": -34.091667, "MAX_BBYMIN": -34.091667, "MIN_BBYMAX": -33.641667, "MAX_BBYMAX": -33.600000, "MEAN_BBXC": 151.051024, "MEAN_BBYC": -33.846724, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.000000, "GN_POP": 4394576.000000, "ELEVATION": 0.000000, "GTOPO30": 0.000000, "TIMEZONE": null, "GEONAMESNO": "GeoNames rough area, rough name, requires further research.", "UN_FID": 276, "UN_ADM0": "Australia", "UN_LAT": -33.880000, "UN_LONG": 151.020000, "POP1950": 1690.000000, "POP1955": 1906.000000, "POP1960": 2135.000000, "POP1965": 2390.000000, "POP1970": 2667.000000, "POP1975": 2960.000000, "POP1980": 3227.000000, "POP1985": 3432.000000, "POP1990": 3632.000000, "POP1995": 3839.000000, "POP2000": 4078.000000, "POP2005": 4260.000000, "POP2010": 4327.000000, "POP2015": 4427.000000, "POP2020": 4582.000000, "POP2025": 4716.000000, "POP2050": 4826.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 16829640.619810, -4017805.470945 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 0, "FEATURECLA": "Admin-0 capital", "NAME": "Singapore", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Singapore", "ADM0CAP": 1.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "Singapore", "SOV_A3": "SGP", "ADM0NAME": "Singapore", "ADM0_A3": "SGP", "ADM1NAME": null, "ISO_A2": "SG", "NOTE": null, "LATITUDE": 1.293033, "LONGITUDE": 103.855821, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 5183700, "POP_MIN": 3289529, "POP_OTHER": 3314179, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 1880252.000000, "MEGANAME": "Singapore", "LS_NAME": "Singapore", "LS_MATCH": 1, "CHECKME": 5, "MAX_POP10": 3289529.000000, "MAX_POP20": 4207001.000000, "MAX_POP50": 4207001.000000, "MAX_POP300": 4207001.000000, "MAX_POP310": 4207001.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 305.000000, "MAX_AREAKM": 456.000000, "MIN_AREAMI": 118.000000, "MAX_AREAMI": 176.000000, "MIN_PERKM": 173.000000, "MAX_PERKM": 288.000000, "MIN_PERMI": 108.000000, "MAX_PERMI": 179.000000, "MIN_BBXMIN": 103.633333, "MAX_BBXMIN": 103.658333, "MIN_BBXMAX": 104.000000, "MAX_BBXMAX": 104.000000, "MIN_BBYMIN": 1.250000, "MAX_BBYMIN": 1.250000, "MIN_BBYMAX": 1.425000, "MAX_BBYMAX": 1.475000, "MEAN_BBXC": 103.821508, "MEAN_BBYC": 1.352586, "COMPARE": 0, "GN_ASCII": "Singapore", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 3547809.000000, "ELEVATION": 0.000000, "GTOPO30": 1.000000, "TIMEZONE": "Asia\/Singapore", "GEONAMESNO": "GeoNames match general.", "UN_FID": 450, "UN_ADM0": "Singapore", "UN_LAT": 1.260000, "UN_LONG": 103.830000, "POP1950": 1016.000000, "POP1955": 1306.000000, "POP1960": 1634.000000, "POP1965": 1880.000000, "POP1970": 2075.000000, "POP1975": 2263.000000, "POP1980": 2415.000000, "POP1985": 2709.000000, "POP1990": 3016.000000, "POP1995": 3478.000000, "POP2000": 4017.000000, "POP2005": 4327.000000, "POP2010": 4436.000000, "POP2015": 4592.000000, "POP2020": 4809.000000, "POP2025": 4965.000000, "POP2050": 5104.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 11560960.461770, 144168.713978 ] } },
{ "type": "Feature", "properties": { "SCALERANK": 0, "NATSCALE": 600, "LABELRANK": 0, "FEATURECLA": "Admin-0 region capital", "NAME": "Hong Kong", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Hong Kong", "ADM0CAP": 0.000000, "CAPALT": 0.000000, "CAPIN": null, "WORLDCITY": 1.000000, "MEGACITY": 1, "SOV0NAME": "China", "SOV_A3": "CHN", "ADM0NAME": "Hong Kong S.A.R.", "ADM0_A3": "HKG", "ADM1NAME": null, "ISO_A2": "HK", "NOTE": null, "LATITUDE": 22.304981, "LONGITUDE": 114.185009, "CHANGED": 0.000000, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 7206000, "POP_MIN": 4551579, "POP_OTHER": 4549026, "RANK_MAX": 13, "RANK_MIN": 12, "GEONAMEID": 1819729.000000, "MEGANAME": "Hong Kong", "LS_NAME": "Hong Kong", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 4551579.000000, "MAX_POP20": 15779579.000000, "MAX_POP50": 16718429.000000, "MAX_POP300": 16718429.000000, "MAX_POP310": 42594594.000000, "MAX_NATSCA": 300.000000, "MIN_AREAKM": 202.000000, "MAX_AREAKM": 10661.000000, "MIN_AREAMI": 78.000000, "MAX_AREAMI": 4116.000000, "MIN_PERKM": 219.000000, "MAX_PERKM": 7493.000000, "MIN_PERMI": 136.000000, "MAX_PERMI": 4656.000000, "MIN_BBXMIN": 112.533333, "MAX_BBXMIN": 113.983333, "MIN_BBXMAX": 114.300000, "MAX_BBXMAX": 114.775000, "MIN_BBYMIN": 21.925000, "MAX_BBYMIN": 22.200000, "MIN_BBYMAX": 22.400000, "MAX_BBYMAX": 24.033333, "MEAN_BBXC": 114.035195, "MEAN_BBYC": 22.679605, "COMPARE": 0, "GN_ASCII": "Hong Kong", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 0.000000, "GN_POP": 7012738.000000, "ELEVATION": 0.000000, "GTOPO30": -9999.000000, "TIMEZONE": "Asia\/Hong_Kong", "GEONAMESNO": "GeoNames match general.", "UN_FID": 210, "UN_ADM0": "China, Hong Kong Special Administrative Region", "UN_LAT": 22.270000, "UN_LONG": 114.170000, "POP1950": 1682.000000, "POP1955": 2121.000000, "POP1960": 2620.000000, "POP1965": 3191.000000, "POP1970": 3458.000000, "POP1975": 3943.000000, "POP1980": 4609.000000, "POP1985": 5070.000000, "POP1990": 5677.000000, "POP1995": 6206.000000, "POP2000": 6662.000000, "POP2005": 7057.000000, "POP2010": 7206.000000, "POP2015": 7419.000000, "POP2020": 7744.000000, "POP2025": 8040.000000, "POP2050": 8305.000000, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 12710800.481412, 2548415.568022 ] } }
]
}

View File

@ -3,7 +3,7 @@
"center": "16.875000,44.951199,5",
"description": "tests/epsg-3857/out/-yNAME_-z5_-sEPSG@3857.json.check.mbtiles",
"format": "pbf",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ] }",
"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"NAME\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 243,\"geometry\": \"Point\",\"attributeCount\": 1,\"attributes\": [{\"attribute\": \"NAME\",\"count\": 243,\"type\": \"string\",\"values\": [\"Abidjan\",\"Abu Dhabi\",\"Abuja\",\"Accra\",\"Addis Ababa\",\"Algiers\",\"Amman\",\"Amsterdam\",\"Andorra\",\"Ankara\",\"Antananarivo\",\"Apia\",\"Ashgabat\",\"Asmara\",\"Astana\",\"Asuncion\",\"Athens\",\"Atlanta\",\"Auckland\",\"Baghdad\",\"Baguio City\",\"Baku\",\"Bamako\",\"Bandar Seri Begawan\",\"Bangalore\",\"Bangkok\",\"Bangui\",\"Banjul\",\"Basseterre\",\"Beijing\",\"Beirut\",\"Belgrade\",\"Belmopan\",\"Berlin\",\"Bern\",\"Bir Lehlou\",\"Bishkek\",\"Bissau\",\"Bloemfontein\",\"Bogota\",\"Brasilia\",\"Bratislava\",\"Brazzaville\",\"Bridgetown\",\"Brussels\",\"Bucharest\",\"Budapest\",\"Buenos Aires\",\"Bujumbura\",\"Cairo\",\"Canberra\",\"Cape Town\",\"Caracas\",\"Casablanca\",\"Castries\",\"Chengdu\",\"Chicago\",\"Chisinau\",\"Colombo\",\"Conakry\",\"Cotonou\",\"Dakar\",\"Damascus\",\"Dar es Salaam\",\"Denver\",\"Dhaka\",\"Dili\",\"Djibouti\",\"Dodoma\",\"Doha\",\"Dubai\",\"Dublin\",\"Dushanbe\",\"Freetown\",\"Funafuti\",\"Gaborone\",\"Geneva\",\"Georgetown\",\"Guatemala\",\"Hanoi\",\"Harare\",\"Hargeysa\",\"Havana\",\"Helsinki\",\"Hong Kong\",\"Honiara\",\"Houston\",\"Islamabad\",\"Istanbul\",\"Jakarta\",\"Jerusalem\",\"Johannesburg\",\"Juba\",\"Kabul\",\"Kampala\",\"Kathmandu\",\"Khartoum\",\"Kiev\",\"Kigali\",\"Kingston\"]}]}]}}",
"maxzoom": "5",
"minzoom": "0",
"name": "tests/epsg-3857/out/-yNAME_-z5_-sEPSG@3857.json.check.mbtiles",
@ -14,9 +14,9 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.325122 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.460938, 6.402648 ] } }
{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.701172, 3.776559 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.873047, 4.915833 ] } }
{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.292969, -4.302591 ] } }
] }
] }
,
@ -30,27 +30,29 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.296472 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.554688, 14.944785 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } }
{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.710938, 9.535749 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 1 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.249023, -4.214943 ] } }
{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.723633, 0.351560 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.292969, -4.302591 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.916992, -9.405710 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 1, "x": 1, "y": 0 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.722656, 59.933000 ] } }
{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } }
{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.108398, 46.225453 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.833984, 40.413496 ] } }
{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.745117, 3.776559 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.916992, 4.915833 ] } }
{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.944336, 29.382175 ] } }
] }
] }
,
@ -63,6 +65,8 @@
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 0, "y": 1 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Vancouver" }, "geometry": { "type": "Point", "coordinates": [ -123.134766, 49.282140 ] } }
,
{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.731381 ] } }
] }
] }
,
@ -74,13 +78,13 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 1, "y": 1 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.758789, 41.836828 ] } }
{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.549316, 14.626109 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.355957, 18.562947 ] } }
{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.731381 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.532715, 14.923554 ] } }
{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.060809 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.538086, 12.382928 ] } }
{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.688965, 9.535749 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.197754 ] } }
] }
@ -88,43 +92,47 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 2 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.270996, -4.236856 ] } }
{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.723633, 0.351560 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.212891, -25.700938 ] } }
{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.292969, -4.324501 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.220215, -11.695273 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 2, "y": 1 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.538086, 12.382928 ] } }
{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.131836, 51.508742 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } }
{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.130371, 46.210250 ] } }
,
{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.945372 ] } }
{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 41.918629 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.082031, 56.956957 ] } }
{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.850098, 47.010226 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.504883, 6.402648 ] } }
{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.767090, 3.754634 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.200195, 31.784217 ] } }
{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.574707, 4.850154 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.413496 ] } }
{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.966309, 29.382175 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.146973, 33.706063 ] } }
{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.936523, 6.904614 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 2 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.809082, -6.162401 ] } }
{ "type": "Feature", "properties": { "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.842773, 1.296276 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 2, "x": 3, "y": 1 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Ulaanbaatar" }, "geometry": { "type": "Point", "coordinates": [ 106.896973, 47.931066 ] } }
{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.626465, 27.488781 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.916992, 4.893941 ] } }
{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.689453, 3.184394 ] } }
] }
] }
,
@ -137,6 +145,10 @@
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 1, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.538330, 14.626109 ] } }
,
{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.720708 ] } }
] }
] }
,
@ -156,15 +168,17 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 2, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.407959, 33.833920 ] } }
{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.538330, 14.626109 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Belmopan" }, "geometry": { "type": "Point", "coordinates": [ -88.769531, 17.256236 ] } }
{ "type": "Feature", "properties": { "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.375488, 23.140360 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.344971, 18.552532 ] } }
{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.720708 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } }
{ "type": "Feature", "properties": { "NAME": "Basseterre" }, "geometry": { "type": "Point", "coordinates": [ -62.720947, 17.308688 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.172607, 6.806444 ] } }
{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.060809 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.173340, 5.845545 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.508301, -0.208740 ] } }
] }
@ -186,9 +200,11 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Praia" }, "geometry": { "type": "Point", "coordinates": [ -23.521729, 14.923554 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } }
{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.624512, 33.605470 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.382928 ] } }
{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.688965, 9.535749 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.284424, 6.828261 ] } }
] }
] }
,
@ -200,47 +216,51 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 4 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.247812 ] } }
{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.723633, 0.340574 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } }
{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.303955, -4.324501 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.976715 ] } }
{ "type": "Feature", "properties": { "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.355469, -3.370856 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Pretoria" }, "geometry": { "type": "Point", "coordinates": [ 28.223877, -25.700938 ] } }
{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.231201, -11.695273 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Maputo" }, "geometry": { "type": "Point", "coordinates": [ 32.585449, -25.948166 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } }
{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.561315 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } }
{ "type": "Feature", "properties": { "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.906849 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Ndjamena" }, "geometry": { "type": "Point", "coordinates": [ 15.040283, 12.125264 ] } }
{ "type": "Feature", "properties": { "NAME": "Malabo" }, "geometry": { "type": "Point", "coordinates": [ 8.778076, 3.754634 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.173808 ] } }
{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.987504 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.200195, 31.784217 ] } }
{ "type": "Feature", "properties": { "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.496826, 33.879537 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.197998, 15.358356 ] } }
{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.574707, 4.839207 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 4, "y": 2 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Oslo" }, "geometry": { "type": "Point", "coordinates": [ 10.744629, 59.921990 ] } }
{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.508742 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } }
{ "type": "Feature", "properties": { "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.910889, 52.355474 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.458008, 50.085344 ] } }
{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.130371, 46.210250 ] } }
,
{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } }
{ "type": "Feature", "properties": { "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.392334, 52.529590 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.456543, 44.824708 ] } }
{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.447510, 41.910453 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.093018, 56.950966 ] } }
{ "type": "Feature", "properties": { "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.159668, 42.674359 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.441624 ] } }
{ "type": "Feature", "properties": { "NAME": "Vilnius" }, "geometry": { "type": "Point", "coordinates": [ 25.312500, 54.686534 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.850098, 47.010226 ] } }
] }
] }
,
@ -252,45 +272,45 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.197998, 15.358356 ] } }
{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.505615, 40.187267 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } }
{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.319076 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Kuwait" }, "geometry": { "type": "Point", "coordinates": [ 47.966309, 29.372602 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Abu Dhabi" }, "geometry": { "type": "Point", "coordinates": [ 54.360352, 24.467151 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.157959, 33.706063 ] } }
{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.189941, 28.603814 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } }
{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 5, "y": 2 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.422119, 51.186230 ] } }
{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.780273, 41.730330 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Baku" }, "geometry": { "type": "Point", "coordinates": [ 49.855957, 40.405131 ] } }
{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.319076 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 4 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Jakarta" }, "geometry": { "type": "Point", "coordinates": [ 106.820068, -6.162401 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Dili" }, "geometry": { "type": "Point", "coordinates": [ 125.573730, -8.559294 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 6, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } }
{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.479035 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.842285, 21.043491 ] } }
{ "type": "Feature", "properties": { "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.794024 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Shanghai" }, "geometry": { "type": "Point", "coordinates": [ 121.431885, 31.222197 ] } }
{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.689453, 3.173425 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.893941 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } }
{ "type": "Feature", "properties": { "NAME": "Pyongyang" }, "geometry": { "type": "Point", "coordinates": [ 125.749512, 39.027719 ] } }
] }
] }
,
@ -310,15 +330,15 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Port Moresby" }, "geometry": { "type": "Point", "coordinates": [ 147.183838, -9.459899 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Funafuti" }, "geometry": { "type": "Point", "coordinates": [ 179.208984, -8.515836 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Wellington" }, "geometry": { "type": "Point", "coordinates": [ 174.781494, -41.294317 ] } }
{ "type": "Feature", "properties": { "NAME": "Honiara" }, "geometry": { "type": "Point", "coordinates": [ 159.938965, -9.427387 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 3, "x": 7, "y": 3 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.450439, 34.759666 ] } }
{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.493196 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Tokyo" }, "geometry": { "type": "Point", "coordinates": [ 139.746094, 35.692995 ] } }
] }
] }
,
@ -331,6 +351,8 @@
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 2, "y": 6 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "San Francisco" }, "geometry": { "type": "Point", "coordinates": [ -122.420654, 37.770715 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Los Angeles" }, "geometry": { "type": "Point", "coordinates": [ -118.185425, 33.993473 ] } }
] }
] }
,
@ -343,6 +365,8 @@
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 3, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Mexico City" }, "geometry": { "type": "Point", "coordinates": [ -99.135132, 19.445874 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Guatemala" }, "geometry": { "type": "Point", "coordinates": [ -90.532837, 14.626109 ] } }
] }
] }
,
@ -350,7 +374,7 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Denver" }, "geometry": { "type": "Point", "coordinates": [ -104.990845, 39.745210 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Houston" }, "geometry": { "type": "Point", "coordinates": [ -95.344849, 29.826348 ] } }
{ "type": "Feature", "properties": { "NAME": "Monterrey" }, "geometry": { "type": "Point", "coordinates": [ -100.332642, 25.676187 ] } }
] }
] }
,
@ -374,12 +398,10 @@
,
{ "type": "Feature", "properties": { "NAME": "San Salvador" }, "geometry": { "type": "Point", "coordinates": [ -89.208984, 13.715372 ] } }
,
{ "type": "Feature", "properties": { "NAME": "San Jose" }, "geometry": { "type": "Point", "coordinates": [ -84.089355, 9.941798 ] } }
{ "type": "Feature", "properties": { "NAME": "Panama City" }, "geometry": { "type": "Point", "coordinates": [ -79.535522, 8.971897 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Port-au-Prince" }, "geometry": { "type": "Point", "coordinates": [ -72.339478, 18.547325 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bogota" }, "geometry": { "type": "Point", "coordinates": [ -74.086304, 4.603803 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Quito" }, "geometry": { "type": "Point", "coordinates": [ -78.502808, -0.208740 ] } }
] }
] }
@ -388,9 +410,9 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Atlanta" }, "geometry": { "type": "Point", "coordinates": [ -84.402466, 33.833920 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Miami" }, "geometry": { "type": "Point", "coordinates": [ -80.227661, 25.790000 ] } }
{ "type": "Feature", "properties": { "NAME": "Havana" }, "geometry": { "type": "Point", "coordinates": [ -82.369995, 23.135309 ] } }
,
{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } }
{ "type": "Feature", "properties": { "NAME": "Washington, D.C." }, "geometry": { "type": "Point", "coordinates": [ -77.014160, 38.903858 ] } }
] }
] }
,
@ -398,9 +420,7 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Chicago" }, "geometry": { "type": "Point", "coordinates": [ -87.753296, 41.832735 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Ottawa" }, "geometry": { "type": "Point", "coordinates": [ -75.706787, 45.421588 ] } }
,
{ "type": "Feature", "properties": { "NAME": "New York" }, "geometry": { "type": "Point", "coordinates": [ -73.987427, 40.755580 ] } }
{ "type": "Feature", "properties": { "NAME": "Toronto" }, "geometry": { "type": "Point", "coordinates": [ -79.425659, 43.703622 ] } }
] }
] }
,
@ -408,7 +428,7 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Asuncion" }, "geometry": { "type": "Point", "coordinates": [ -57.645264, -25.294371 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Sao Paulo" }, "geometry": { "type": "Point", "coordinates": [ -46.631470, -23.553917 ] } }
{ "type": "Feature", "properties": { "NAME": "Montevideo" }, "geometry": { "type": "Point", "coordinates": [ -56.173096, -34.854383 ] } }
] }
] }
,
@ -424,11 +444,11 @@
,
{ "type": "Feature", "properties": { "NAME": "Roseau" }, "geometry": { "type": "Point", "coordinates": [ -61.391602, 15.305380 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Kingstown" }, "geometry": { "type": "Point", "coordinates": [ -61.215820, 13.149027 ] } }
{ "type": "Feature", "properties": { "NAME": "Saint George's" }, "geometry": { "type": "Point", "coordinates": [ -61.743164, 12.055437 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Caracas" }, "geometry": { "type": "Point", "coordinates": [ -66.923218, 10.504016 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Georgetown" }, "geometry": { "type": "Point", "coordinates": [ -58.167114, 6.806444 ] } }
{ "type": "Feature", "properties": { "NAME": "Paramaribo" }, "geometry": { "type": "Point", "coordinates": [ -55.167847, 5.840081 ] } }
] }
] }
,
@ -448,13 +468,15 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Dakar" }, "geometry": { "type": "Point", "coordinates": [ -17.479248, 14.721761 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Banjul" }, "geometry": { "type": "Point", "coordinates": [ -16.594849, 13.459080 ] } }
{ "type": "Feature", "properties": { "NAME": "Nouakchott" }, "geometry": { "type": "Point", "coordinates": [ -15.979614, 18.088423 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Conakry" }, "geometry": { "type": "Point", "coordinates": [ -13.683472, 9.535749 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Ouagadougou" }, "geometry": { "type": "Point", "coordinates": [ -1.527100, 12.377563 ] } }
{ "type": "Feature", "properties": { "NAME": "Bamako" }, "geometry": { "type": "Point", "coordinates": [ -8.003540, 12.656418 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Yamoussoukro" }, "geometry": { "type": "Point", "coordinates": [ -5.278931, 6.822807 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } }
] }
] }
,
@ -464,7 +486,7 @@
,
{ "type": "Feature", "properties": { "NAME": "Casablanca" }, "geometry": { "type": "Point", "coordinates": [ -7.619019, 33.605470 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Madrid" }, "geometry": { "type": "Point", "coordinates": [ -3.685913, 40.405131 ] } }
{ "type": "Feature", "properties": { "NAME": "Bir Lehlou" }, "geometry": { "type": "Point", "coordinates": [ -9.656982, 26.120918 ] } }
] }
] }
,
@ -488,15 +510,15 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 8 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Brazzaville" }, "geometry": { "type": "Point", "coordinates": [ 15.281982, -4.253290 ] } }
{ "type": "Feature", "properties": { "NAME": "Sao Tome" }, "geometry": { "type": "Point", "coordinates": [ 6.729126, 0.335081 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Luanda" }, "geometry": { "type": "Point", "coordinates": [ 13.227539, -8.836223 ] } }
{ "type": "Feature", "properties": { "NAME": "Kinshasa" }, "geometry": { "type": "Point", "coordinates": [ 15.309448, -4.324501 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Niamey" }, "geometry": { "type": "Point", "coordinates": [ 2.109375, 13.523179 ] } }
{ "type": "Feature", "properties": { "NAME": "Accra" }, "geometry": { "type": "Point", "coordinates": [ -0.219727, 5.555848 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Cotonou" }, "geometry": { "type": "Point", "coordinates": [ 2.515869, 6.402648 ] } }
,
@ -512,35 +534,37 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Algiers" }, "geometry": { "type": "Point", "coordinates": [ 3.043213, 36.765292 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Tripoli" }, "geometry": { "type": "Point", "coordinates": [ 13.178101, 32.893426 ] } }
{ "type": "Feature", "properties": { "NAME": "Tunis" }, "geometry": { "type": "Point", "coordinates": [ 10.178833, 36.804887 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Valletta" }, "geometry": { "type": "Point", "coordinates": [ 14.512939, 35.902400 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 8, "y": 5 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "The Hague" }, "geometry": { "type": "Point", "coordinates": [ 4.268188, 52.082882 ] } }
{ "type": "Feature", "properties": { "NAME": "London" }, "geometry": { "type": "Point", "coordinates": [ -0.120850, 51.505323 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Brussels" }, "geometry": { "type": "Point", "coordinates": [ 4.328613, 50.837167 ] } }
{ "type": "Feature", "properties": { "NAME": "Amsterdam" }, "geometry": { "type": "Point", "coordinates": [ 4.910889, 52.352119 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Paris" }, "geometry": { "type": "Point", "coordinates": [ 2.329102, 48.871941 ] } }
{ "type": "Feature", "properties": { "NAME": "Luxembourg" }, "geometry": { "type": "Point", "coordinates": [ 6.124878, 49.614269 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bern" }, "geometry": { "type": "Point", "coordinates": [ 7.465210, 46.920255 ] } }
{ "type": "Feature", "properties": { "NAME": "Geneva" }, "geometry": { "type": "Point", "coordinates": [ 6.135864, 46.210250 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Monaco" }, "geometry": { "type": "Point", "coordinates": [ 7.404785, 43.743321 ] } }
{ "type": "Feature", "properties": { "NAME": "Vaduz" }, "geometry": { "type": "Point", "coordinates": [ 9.514160, 47.137425 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Prague" }, "geometry": { "type": "Point", "coordinates": [ 14.463501, 50.085344 ] } }
{ "type": "Feature", "properties": { "NAME": "Berlin" }, "geometry": { "type": "Point", "coordinates": [ 13.397827, 52.526248 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Vienna" }, "geometry": { "type": "Point", "coordinates": [ 16.364136, 48.202710 ] } }
{ "type": "Feature", "properties": { "NAME": "Warsaw" }, "geometry": { "type": "Point", "coordinates": [ 20.994873, 52.254709 ] } }
,
{ "type": "Feature", "properties": { "NAME": "San Marino" }, "geometry": { "type": "Point", "coordinates": [ 12.436523, 43.937462 ] } }
{ "type": "Feature", "properties": { "NAME": "Zagreb" }, "geometry": { "type": "Point", "coordinates": [ 15.996094, 45.801999 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Rome" }, "geometry": { "type": "Point", "coordinates": [ 12.480469, 41.898188 ] } }
{ "type": "Feature", "properties": { "NAME": "Vatican City" }, "geometry": { "type": "Point", "coordinates": [ 12.453003, 41.906365 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Sarajevo" }, "geometry": { "type": "Point", "coordinates": [ 18.380127, 43.850374 ] } }
{ "type": "Feature", "properties": { "NAME": "Budapest" }, "geometry": { "type": "Point", "coordinates": [ 19.077759, 47.502359 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Belgrade" }, "geometry": { "type": "Point", "coordinates": [ 20.462036, 44.820812 ] } }
{ "type": "Feature", "properties": { "NAME": "Podgorica" }, "geometry": { "type": "Point", "coordinates": [ 19.264526, 42.468045 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Skopje" }, "geometry": { "type": "Point", "coordinates": [ 21.428833, 42.000325 ] } }
{ "type": "Feature", "properties": { "NAME": "Pristina" }, "geometry": { "type": "Point", "coordinates": [ 21.165161, 42.670320 ] } }
] }
] }
,
@ -566,13 +590,13 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Kigali" }, "geometry": { "type": "Point", "coordinates": [ 30.053101, -1.949697 ] } }
{ "type": "Feature", "properties": { "NAME": "Bujumbura" }, "geometry": { "type": "Point", "coordinates": [ 29.355469, -3.370856 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Lusaka" }, "geometry": { "type": "Point", "coordinates": [ 28.278809, -15.411319 ] } }
{ "type": "Feature", "properties": { "NAME": "Harare" }, "geometry": { "type": "Point", "coordinates": [ 31.041870, -17.811456 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Nairobi" }, "geometry": { "type": "Point", "coordinates": [ 36.809692, -1.279801 ] } }
{ "type": "Feature", "properties": { "NAME": "Dar es Salaam" }, "geometry": { "type": "Point", "coordinates": [ 39.265137, -6.795535 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Lilongwe" }, "geometry": { "type": "Point", "coordinates": [ 33.782959, -13.982046 ] } }
{ "type": "Feature", "properties": { "NAME": "Moroni" }, "geometry": { "type": "Point", "coordinates": [ 43.236694, -11.700652 ] } }
] }
] }
,
@ -580,27 +604,27 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Khartoum" }, "geometry": { "type": "Point", "coordinates": [ 32.530518, 15.591293 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Kampala" }, "geometry": { "type": "Point", "coordinates": [ 32.579956, 0.324095 ] } }
{ "type": "Feature", "properties": { "NAME": "Juba" }, "geometry": { "type": "Point", "coordinates": [ 31.574707, 4.833733 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Sanaa" }, "geometry": { "type": "Point", "coordinates": [ 44.203491, 15.358356 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Hargeysa" }, "geometry": { "type": "Point", "coordinates": [ 44.060669, 9.562834 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Mogadishu" }, "geometry": { "type": "Point", "coordinates": [ 45.362549, 2.070472 ] } }
{ "type": "Feature", "properties": { "NAME": "Addis Ababa" }, "geometry": { "type": "Point", "coordinates": [ 38.693848, 9.037003 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 9, "y": 6 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Istanbul" }, "geometry": { "type": "Point", "coordinates": [ 29.003906, 41.108330 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Athens" }, "geometry": { "type": "Point", "coordinates": [ 23.730469, 37.987504 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Nicosia" }, "geometry": { "type": "Point", "coordinates": [ 33.365479, 35.169318 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Tel Aviv-Yafo" }, "geometry": { "type": "Point", "coordinates": [ 34.766235, 32.082575 ] } }
{ "type": "Feature", "properties": { "NAME": "Beirut" }, "geometry": { "type": "Point", "coordinates": [ 35.502319, 33.874976 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Yerevan" }, "geometry": { "type": "Point", "coordinates": [ 44.511108, 40.187267 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Jerusalem" }, "geometry": { "type": "Point", "coordinates": [ 35.205688, 31.779547 ] } }
{ "type": "Feature", "properties": { "NAME": "Amman" }, "geometry": { "type": "Point", "coordinates": [ 35.930786, 31.952162 ] } }
] }
] }
,
@ -610,7 +634,7 @@
,
{ "type": "Feature", "properties": { "NAME": "Kiev" }, "geometry": { "type": "Point", "coordinates": [ 30.514526, 50.436516 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bucharest" }, "geometry": { "type": "Point", "coordinates": [ 26.092529, 44.437702 ] } }
{ "type": "Feature", "properties": { "NAME": "Chisinau" }, "geometry": { "type": "Point", "coordinates": [ 28.855591, 47.006480 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } }
] }
@ -620,8 +644,6 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Helsinki" }, "geometry": { "type": "Point", "coordinates": [ 24.927979, 60.179770 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Riga" }, "geometry": { "type": "Point", "coordinates": [ 24.098511, 56.950966 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Moscow" }, "geometry": { "type": "Point", "coordinates": [ 37.611694, 55.754941 ] } }
] }
] }
@ -630,7 +652,7 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Victoria" }, "geometry": { "type": "Point", "coordinates": [ 55.447998, -4.614753 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Port Louis" }, "geometry": { "type": "Point", "coordinates": [ 57.496948, -20.164255 ] } }
{ "type": "Feature", "properties": { "NAME": "Antananarivo" }, "geometry": { "type": "Point", "coordinates": [ 47.510376, -18.911483 ] } }
] }
] }
,
@ -654,11 +676,17 @@
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 10, "y": 5 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Tbilisi" }, "geometry": { "type": "Point", "coordinates": [ 44.785767, 41.730330 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 11, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Mumbai" }, "geometry": { "type": "Point", "coordinates": [ 72.850342, 19.020577 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Male" }, "geometry": { "type": "Point", "coordinates": [ 73.498535, 4.171115 ] } }
{ "type": "Feature", "properties": { "NAME": "Bangalore" }, "geometry": { "type": "Point", "coordinates": [ 77.557983, 12.972442 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Sri Jawewardenepura Kotte" }, "geometry": { "type": "Point", "coordinates": [ 79.947510, 6.904614 ] } }
] }
@ -668,9 +696,11 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Dushanbe" }, "geometry": { "type": "Point", "coordinates": [ 68.768921, 38.561053 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Islamabad" }, "geometry": { "type": "Point", "coordinates": [ 73.163452, 33.706063 ] } }
{ "type": "Feature", "properties": { "NAME": "Kabul" }, "geometry": { "type": "Point", "coordinates": [ 69.180908, 34.520136 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Kathmandu" }, "geometry": { "type": "Point", "coordinates": [ 85.314331, 27.722436 ] } }
{ "type": "Feature", "properties": { "NAME": "New Delhi" }, "geometry": { "type": "Point", "coordinates": [ 77.195435, 28.603814 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Kolkata" }, "geometry": { "type": "Point", "coordinates": [ 88.319092, 22.497332 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } }
] }
@ -680,7 +710,9 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Astana" }, "geometry": { "type": "Point", "coordinates": [ 71.427612, 51.182786 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bishkek" }, "geometry": { "type": "Point", "coordinates": [ 74.580688, 42.875964 ] } }
{ "type": "Feature", "properties": { "NAME": "Tashkent" }, "geometry": { "type": "Point", "coordinates": [ 69.290771, 41.314950 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Urumqi" }, "geometry": { "type": "Point", "coordinates": [ 87.572021, 43.810747 ] } }
] }
] }
,
@ -694,16 +726,20 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Naypyidaw" }, "geometry": { "type": "Point", "coordinates": [ 96.113892, 19.771873 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bangkok" }, "geometry": { "type": "Point", "coordinates": [ 100.513916, 13.752725 ] } }
{ "type": "Feature", "properties": { "NAME": "Rangoon" }, "geometry": { "type": "Point", "coordinates": [ 96.163330, 16.788765 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Hanoi" }, "geometry": { "type": "Point", "coordinates": [ 105.847778, 21.038364 ] } }
{ "type": "Feature", "properties": { "NAME": "Vientiane" }, "geometry": { "type": "Point", "coordinates": [ 102.595825, 17.968283 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Putrajaya" }, "geometry": { "type": "Point", "coordinates": [ 101.700439, 2.915611 ] } }
{ "type": "Feature", "properties": { "NAME": "Kuala Lumpur" }, "geometry": { "type": "Point", "coordinates": [ 101.694946, 3.173425 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Singapore" }, "geometry": { "type": "Point", "coordinates": [ 103.853760, 1.296276 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 12, "y": 6 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Thimphu" }, "geometry": { "type": "Point", "coordinates": [ 89.637451, 27.474161 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Dhaka" }, "geometry": { "type": "Point", "coordinates": [ 90.406494, 23.725012 ] } }
] }
] }
@ -722,9 +758,11 @@
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 13, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Baguio City" }, "geometry": { "type": "Point", "coordinates": [ 120.569458, 16.430816 ] } }
{ "type": "Feature", "properties": { "NAME": "Hong Kong" }, "geometry": { "type": "Point", "coordinates": [ 114.180908, 22.309426 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Bandar Seri Begawan" }, "geometry": { "type": "Point", "coordinates": [ 114.927979, 4.888467 ] } }
{ "type": "Feature", "properties": { "NAME": "Manila" }, "geometry": { "type": "Point", "coordinates": [ 120.975952, 14.610163 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } }
] }
] }
,
@ -741,8 +779,6 @@
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 9 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Melbourne" }, "geometry": { "type": "Point", "coordinates": [ 144.970093, -37.814124 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Canberra" }, "geometry": { "type": "Point", "coordinates": [ 149.128418, -35.281501 ] } }
] }
] }
,
@ -752,6 +788,12 @@
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 7 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Melekeok" }, "geometry": { "type": "Point", "coordinates": [ 134.626465, 7.487750 ] } }
] }
] }
,
{ "type": "FeatureCollection", "properties": { "zoom": 4, "x": 14, "y": 6 }, "features": [
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Osaka" }, "geometry": { "type": "Point", "coordinates": [ 135.455933, 34.755153 ] } }
@ -786,7 +828,7 @@
{ "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [
{ "type": "Feature", "properties": { "NAME": "Palikir" }, "geometry": { "type": "Point", "coordinates": [ 158.148193, 6.920974 ] } }
,
{ "type": "Feature", "properties": { "NAME": "Tarawa" }, "geometry": { "type": "Point", "coordinates": [ 173.012695, 1.340210 ] } }
{ "type": "Feature", "properties": { "NAME": "Majuro" }, "geometry": { "type": "Point", "coordinates": [ 171.375732, 7.106344 ] } }
] }
] }
,

133
tests/feature-filter/filter Normal file
View File

@ -0,0 +1,133 @@
{
"layer2850085303": ["==", "foo", "bar"],
"notlayer2850085303": [ "none", ["==", "foo", "bar"] ]
,
"layer1948775714": ["==", "foo", 0],
"notlayer1948775714": [ "none", ["==", "foo", 0] ]
,
"layer220442869": ["==", "foo", null],
"notlayer220442869": [ "none", ["==", "foo", null] ]
,
"layer1675768827": ["==", "$type", "LineString"],
"notlayer1675768827": [ "none", ["==", "$type", "LineString"] ]
,
"layer827905613": ["==", "$id", 1234],
"notlayer827905613": [ "none", ["==", "$id", 1234] ]
,
"layer442294443": ["!=", "foo", "bar"],
"notlayer442294443": [ "none", ["!=", "foo", "bar"] ]
,
"layer1479822166": ["!=", "foo", 0],
"notlayer1479822166": [ "none", ["!=", "foo", 0] ]
,
"layer1780490201": ["!=", "foo", null],
"notlayer1780490201": [ "none", ["!=", "foo", null] ]
,
"layer1549998271": ["!=", "$type", "LineString"],
"notlayer1549998271": [ "none", ["!=", "$type", "LineString"] ]
,
"layer2624681884": ["<", "foo", 0],
"notlayer2624681884": [ "none", ["<", "foo", 0] ]
,
"layer2596070344": ["<", "foo", "0"],
"notlayer2596070344": [ "none", ["<", "foo", "0"] ]
,
"layer4079511021": ["<=", "foo", 0],
"notlayer4079511021": [ "none", ["<=", "foo", 0] ]
,
"layer1392333553": ["<=", "foo", "0"],
"notlayer1392333553": [ "none", ["<=", "foo", "0"] ]
,
"layer4018549566": [">", "foo", 0],
"notlayer4018549566": [ "none", [">", "foo", 0] ]
,
"layer3835447578": [">", "foo", "0"],
"notlayer3835447578": [ "none", [">", "foo", "0"] ]
,
"layer4113007703": [">=", "foo", 0],
"notlayer4113007703": [ "none", [">=", "foo", 0] ]
,
"layer4650955": [">=", "foo", "0"],
"notlayer4650955": [ "none", [">=", "foo", "0"] ]
,
"layer1510660139": ["in", "foo"],
"notlayer1510660139": [ "none", ["in", "foo"] ]
,
"layer2681700979": ["in", "foo", "0"],
"notlayer2681700979": [ "none", ["in", "foo", "0"] ]
,
"layer328238911": ["in", "foo", 0],
"notlayer328238911": [ "none", ["in", "foo", 0] ]
,
"layer584721662": ["in", "foo", null],
"notlayer584721662": [ "none", ["in", "foo", null] ]
,
"layer464719784": ["in", "foo", 0, 1],
"notlayer464719784": [ "none", ["in", "foo", 0, 1] ]
,
"layer1359089124": ["in", "$type", "LineString", "Polygon"],
"notlayer1359089124": [ "none", ["in", "$type", "LineString", "Polygon"] ]
,
"layer3115744778": ["in", "$type", "Polygon", "LineString", "Point"],
"notlayer3115744778": [ "none", ["in", "$type", "Polygon", "LineString", "Point"] ]
,
"layer262236988": ["!in", "foo"],
"notlayer262236988": [ "none", ["!in", "foo"] ]
,
"layer3444677016": ["!in", "foo", "0"],
"notlayer3444677016": [ "none", ["!in", "foo", "0"] ]
,
"layer3048837612": ["!in", "foo", 0],
"notlayer3048837612": [ "none", ["!in", "foo", 0] ]
,
"layer3045031255": ["!in", "foo", null],
"notlayer3045031255": [ "none", ["!in", "foo", null] ]
,
"layer2925029377": ["!in", "foo", 0, 1],
"notlayer2925029377": [ "none", ["!in", "foo", 0, 1] ]
,
"layer2275670193": ["!in", "$type", "LineString", "Polygon"],
"notlayer2275670193": [ "none", ["!in", "$type", "LineString", "Polygon"] ]
,
"layer4098096220": ["any"],
"notlayer4098096220": [ "none", ["any"] ]
,
"layer3603116915": ["any", ["==", "foo", 1]],
"notlayer3603116915": [ "none", ["any", ["==", "foo", 1]] ]
,
"layer3603115546": ["any", ["==", "foo", 0]],
"notlayer3603115546": [ "none", ["any", ["==", "foo", 0]] ]
,
"layer4070554881": ["any", ["==", "foo", 0], ["==", "foo", 1]],
"notlayer4070554881": [ "none", ["any", ["==", "foo", 0], ["==", "foo", 1]] ]
,
"layer4097977117": ["all"],
"notlayer4097977117": [ "none", ["all"] ]
,
"layer2333216076": ["all", ["==", "foo", 1]],
"notlayer2333216076": [ "none", ["all", ["==", "foo", 1]] ]
,
"layer2333214707": ["all", ["==", "foo", 0]],
"notlayer2333214707": [ "none", ["all", ["==", "foo", 0]] ]
,
"layer1619469362": ["all", ["==", "foo", 0], ["==", "foo", 1]],
"notlayer1619469362": [ "none", ["all", ["==", "foo", 0], ["==", "foo", 1]] ]
,
"layer2208582832": ["none"],
"notlayer2208582832": [ "none", ["none"] ]
,
"layer3425959847": ["none", ["==", "foo", 1]],
"notlayer3425959847": [ "none", ["none", ["==", "foo", 1]] ]
,
"layer3425958478": ["none", ["==", "foo", 0]],
"notlayer3425958478": [ "none", ["none", ["==", "foo", 0]] ]
,
"layer253198869": ["none", ["==", "foo", 0], ["==", "foo", 1]],
"notlayer253198869": [ "none", ["none", ["==", "foo", 0], ["==", "foo", 1]] ]
,
"layer938200568": ["has", "foo"],
"notlayer938200568": [ "none", ["has", "foo"] ]
,
"layer1991184237": ["!has", "foo"],
"notlayer1991184237": [ "none", ["!has", "foo"] ]
}

View File

@ -0,0 +1,368 @@
{ "type": "Feature", "tippecanoe": { "layer": "layer2850085303" }, "properties": {"foo": "bar", "rule": "\"properties\": {\"foo\": \"bar\"}, [\"==\", \"foo\", \"bar\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2850085303" }, "properties": {"foo": "bar", "rule": "\"properties\": {\"foo\": \"bar\"}, [\"==\", \"foo\", \"bar\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2850085303" }, "properties": {"foo": "baz", "rule": "not \"properties\": {\"foo\": \"baz\"}, [\"==\", \"foo\", \"bar\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2850085303" }, "properties": {"foo": "baz", "rule": "not \"properties\": {\"foo\": \"baz\"}, [\"==\", \"foo\", \"bar\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1948775714" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1948775714" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1948775714" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1948775714" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1948775714" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1948775714" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1948775714" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1948775714" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1948775714" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1948775714" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1948775714" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1948775714" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1948775714" }, "properties": { "rule": "not \"properties\": {}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1948775714" }, "properties": { "rule": "not \"properties\": {}, [\"==\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer220442869" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer220442869" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer220442869" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer220442869" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer220442869" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer220442869" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer220442869" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer220442869" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer220442869" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer220442869" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer220442869" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer220442869" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer220442869" }, "properties": { "rule": "not \"properties\": {}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer220442869" }, "properties": { "rule": "not \"properties\": {}, [\"==\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1675768827" }, "properties": { "rule": "not type: 1, [\"==\", \"$type\", \"LineString\"]" }, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1675768827" }, "properties": { "rule": "not type: 1, [\"==\", \"$type\", \"LineString\"]" }, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1675768827" }, "properties": { "rule": "type: 2, [\"==\", \"$type\", \"LineString\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ 0, 0 ], [ 1, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1675768827" }, "properties": { "rule": "type: 2, [\"==\", \"$type\", \"LineString\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ -100, 0 ], [ -101, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer827905613" }, "id": 1234, "properties": { "rule": "\"id\": 1234, [\"==\", \"$id\", 1234]" }, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer827905613" }, "id": 1234, "properties": { "rule": "\"id\": 1234, [\"==\", \"$id\", 1234]" }, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer827905613" }, "id": "1234", "properties": { "rule": "not \"id\": \"1234\", [\"==\", \"$id\", 1234]" }, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer827905613" }, "id": "1234", "properties": { "rule": "not \"id\": \"1234\", [\"==\", \"$id\", 1234]" }, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer827905613" }, "properties": {"id": 1234, "rule": "not \"properties\": {\"id\": 1234}, [\"==\", \"$id\", 1234]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer827905613" }, "properties": {"id": 1234, "rule": "not \"properties\": {\"id\": 1234}, [\"==\", \"$id\", 1234]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer442294443" }, "properties": {"foo": "bar", "rule": "not \"properties\": {\"foo\": \"bar\"}, [\"!=\", \"foo\", \"bar\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer442294443" }, "properties": {"foo": "bar", "rule": "not \"properties\": {\"foo\": \"bar\"}, [\"!=\", \"foo\", \"bar\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer442294443" }, "properties": {"foo": "baz", "rule": "\"properties\": {\"foo\": \"baz\"}, [\"!=\", \"foo\", \"bar\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer442294443" }, "properties": {"foo": "baz", "rule": "\"properties\": {\"foo\": \"baz\"}, [\"!=\", \"foo\", \"bar\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1479822166" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1479822166" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1479822166" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1479822166" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1479822166" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1479822166" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1479822166" }, "properties": {"foo": true, "rule": "\"properties\": {\"foo\": true}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1479822166" }, "properties": {"foo": true, "rule": "\"properties\": {\"foo\": true}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1479822166" }, "properties": {"foo": false, "rule": "\"properties\": {\"foo\": false}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1479822166" }, "properties": {"foo": false, "rule": "\"properties\": {\"foo\": false}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1479822166" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1479822166" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1479822166" }, "properties": { "rule": "\"properties\": {}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1479822166" }, "properties": { "rule": "\"properties\": {}, [\"!=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1780490201" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1780490201" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1780490201" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1780490201" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1780490201" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1780490201" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1780490201" }, "properties": {"foo": true, "rule": "\"properties\": {\"foo\": true}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1780490201" }, "properties": {"foo": true, "rule": "\"properties\": {\"foo\": true}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1780490201" }, "properties": {"foo": false, "rule": "\"properties\": {\"foo\": false}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1780490201" }, "properties": {"foo": false, "rule": "\"properties\": {\"foo\": false}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1780490201" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1780490201" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1780490201" }, "properties": { "rule": "\"properties\": {}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1780490201" }, "properties": { "rule": "\"properties\": {}, [\"!=\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1549998271" }, "properties": { "rule": "type: 1, [\"!=\", \"$type\", \"LineString\"]" }, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1549998271" }, "properties": { "rule": "type: 1, [\"!=\", \"$type\", \"LineString\"]" }, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1549998271" }, "properties": { "rule": "not type: 2, [\"!=\", \"$type\", \"LineString\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ 0, 0 ], [ 1, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1549998271" }, "properties": { "rule": "not type: 2, [\"!=\", \"$type\", \"LineString\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ -100, 0 ], [ -101, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": {"foo": -1, "rule": "\"properties\": {\"foo\": -1}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": {"foo": -1, "rule": "\"properties\": {\"foo\": -1}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2624681884" }, "properties": { "rule": "not \"properties\": {}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2624681884" }, "properties": { "rule": "not \"properties\": {}, [\"<\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2596070344" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2596070344" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2596070344" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2596070344" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2596070344" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2596070344" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2596070344" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2596070344" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2596070344" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2596070344" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2596070344" }, "properties": {"foo": "-1", "rule": "\"properties\": {\"foo\": \"-1\"}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2596070344" }, "properties": {"foo": "-1", "rule": "\"properties\": {\"foo\": \"-1\"}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2596070344" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2596070344" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2596070344" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2596070344" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2596070344" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2596070344" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"<\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": {"foo": -1, "rule": "\"properties\": {\"foo\": -1}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": {"foo": -1, "rule": "\"properties\": {\"foo\": -1}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4079511021" }, "properties": { "rule": "not \"properties\": {}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4079511021" }, "properties": { "rule": "not \"properties\": {}, [\"<=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1392333553" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1392333553" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1392333553" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1392333553" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1392333553" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1392333553" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1392333553" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1392333553" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1392333553" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1392333553" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1392333553" }, "properties": {"foo": "-1", "rule": "\"properties\": {\"foo\": \"-1\"}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1392333553" }, "properties": {"foo": "-1", "rule": "\"properties\": {\"foo\": \"-1\"}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1392333553" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1392333553" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1392333553" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1392333553" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1392333553" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1392333553" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"<=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4018549566" }, "properties": { "rule": "not \"properties\": {}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4018549566" }, "properties": { "rule": "not \"properties\": {}, [\">\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3835447578" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3835447578" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3835447578" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3835447578" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3835447578" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3835447578" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3835447578" }, "properties": {"foo": "1", "rule": "\"properties\": {\"foo\": \"1\"}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3835447578" }, "properties": {"foo": "1", "rule": "\"properties\": {\"foo\": \"1\"}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3835447578" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3835447578" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3835447578" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3835447578" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3835447578" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3835447578" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3835447578" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3835447578" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3835447578" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3835447578" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\">\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": {"foo": "1", "rule": "not \"properties\": {\"foo\": \"1\"}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4113007703" }, "properties": { "rule": "not \"properties\": {}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4113007703" }, "properties": { "rule": "not \"properties\": {}, [\">=\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4650955" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4650955" }, "properties": {"foo": -1, "rule": "not \"properties\": {\"foo\": -1}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4650955" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4650955" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4650955" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4650955" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4650955" }, "properties": {"foo": "1", "rule": "\"properties\": {\"foo\": \"1\"}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4650955" }, "properties": {"foo": "1", "rule": "\"properties\": {\"foo\": \"1\"}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4650955" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4650955" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4650955" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4650955" }, "properties": {"foo": "-1", "rule": "not \"properties\": {\"foo\": \"-1\"}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4650955" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4650955" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4650955" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4650955" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4650955" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4650955" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\">=\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1510660139" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"in\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1510660139" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"in\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2681700979" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2681700979" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2681700979" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2681700979" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2681700979" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2681700979" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2681700979" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2681700979" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2681700979" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2681700979" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2681700979" }, "properties": { "rule": "not \"properties\": {}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2681700979" }, "properties": { "rule": "not \"properties\": {}, [\"in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer328238911" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer328238911" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer328238911" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer328238911" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer328238911" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer328238911" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer328238911" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer328238911" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer328238911" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer328238911" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer584721662" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer584721662" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer584721662" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer584721662" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer584721662" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer584721662" }, "properties": {"foo": true, "rule": "not \"properties\": {\"foo\": true}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer584721662" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer584721662" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer584721662" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer584721662" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer464719784" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer464719784" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer464719784" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer464719784" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer464719784" }, "properties": {"foo": 3, "rule": "not \"properties\": {\"foo\": 3}, [\"in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer464719784" }, "properties": {"foo": 3, "rule": "not \"properties\": {\"foo\": 3}, [\"in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1359089124" }, "properties": { "rule": "not type: 1, [\"in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1359089124" }, "properties": { "rule": "not type: 1, [\"in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1359089124" }, "properties": { "rule": "type: 2, [\"in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ 0, 0 ], [ 1, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1359089124" }, "properties": { "rule": "type: 2, [\"in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ -100, 0 ], [ -101, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1359089124" }, "properties": { "rule": "type: 3, [\"in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 0, 0 ], [ 1, 1 ], [ 1, 0 ], [ 0, 0 ] ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1359089124" }, "properties": { "rule": "type: 3, [\"in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -100, 0 ], [ -101, 1 ], [ -101, 0 ], [-100, 0 ] ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3115744778" }, "properties": { "rule": "type: 1, [\"in\", \"$type\", \"Polygon\", \"LineString\", \"Point\"]" }, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3115744778" }, "properties": { "rule": "type: 1, [\"in\", \"$type\", \"Polygon\", \"LineString\", \"Point\"]" }, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3115744778" }, "properties": { "rule": "type: 2, [\"in\", \"$type\", \"Polygon\", \"LineString\", \"Point\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ 0, 0 ], [ 1, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3115744778" }, "properties": { "rule": "type: 2, [\"in\", \"$type\", \"Polygon\", \"LineString\", \"Point\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ -100, 0 ], [ -101, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3115744778" }, "properties": { "rule": "type: 3, [\"in\", \"$type\", \"Polygon\", \"LineString\", \"Point\"]" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 0, 0 ], [ 1, 1 ], [ 1, 0 ], [ 0, 0 ] ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3115744778" }, "properties": { "rule": "type: 3, [\"in\", \"$type\", \"Polygon\", \"LineString\", \"Point\"]" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -100, 0 ], [ -101, 1 ], [ -101, 0 ], [-100, 0 ] ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer262236988" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"!in\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer262236988" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"!in\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3444677016" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"!in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3444677016" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"!in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3444677016" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"!in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3444677016" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"!in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3444677016" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"!in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3444677016" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"!in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3444677016" }, "properties": { "rule": "\"properties\": {}, [\"!in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3444677016" }, "properties": { "rule": "\"properties\": {}, [\"!in\", \"foo\", \"0\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3048837612" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"!in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3048837612" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"!in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3048837612" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"!in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3048837612" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"!in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3048837612" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"!in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3048837612" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"!in\", \"foo\", 0]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3045031255" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"!in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3045031255" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"!in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3045031255" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"!in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3045031255" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"!in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3045031255" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"!in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3045031255" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"!in\", \"foo\", null]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2925029377" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"!in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2925029377" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"!in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2925029377" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"!in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2925029377" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"!in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2925029377" }, "properties": {"foo": 3, "rule": "\"properties\": {\"foo\": 3}, [\"!in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2925029377" }, "properties": {"foo": 3, "rule": "\"properties\": {\"foo\": 3}, [\"!in\", \"foo\", 0, 1]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2275670193" }, "properties": { "rule": "type: 1, [\"!in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2275670193" }, "properties": { "rule": "type: 1, [\"!in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2275670193" }, "properties": { "rule": "not type: 2, [\"!in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ 0, 0 ], [ 1, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2275670193" }, "properties": { "rule": "not type: 2, [\"!in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "LineString", "coordinates": [ [ -100, 0 ], [ -101, 1 ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2275670193" }, "properties": { "rule": "not type: 3, [\"!in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 0, 0 ], [ 1, 1 ], [ 1, 0 ], [ 0, 0 ] ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2275670193" }, "properties": { "rule": "not type: 3, [\"!in\", \"$type\", \"LineString\", \"Polygon\"]" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -100, 0 ], [ -101, 1 ], [ -101, 0 ], [-100, 0 ] ] ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4098096220" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"any\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4098096220" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"any\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3603116915" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"any\", [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3603116915" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"any\", [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3603115546" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"any\", [\"==\", \"foo\", 0]]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3603115546" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"any\", [\"==\", \"foo\", 0]]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4070554881" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"any\", [\"==\", \"foo\", 0], [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4070554881" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"any\", [\"==\", \"foo\", 0], [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer4097977117" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"all\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer4097977117" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"all\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2333216076" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"all\", [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2333216076" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"all\", [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2333214707" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"all\", [\"==\", \"foo\", 0]]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2333214707" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"all\", [\"==\", \"foo\", 0]]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1619469362" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"all\", [\"==\", \"foo\", 0], [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1619469362" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"all\", [\"==\", \"foo\", 0], [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer2208582832" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"none\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer2208582832" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"none\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3425959847" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"none\", [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3425959847" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"none\", [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer3425958478" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"none\", [\"==\", \"foo\", 0]]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer3425958478" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"none\", [\"==\", \"foo\", 0]]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer253198869" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"none\", [\"==\", \"foo\", 0], [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer253198869" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"none\", [\"==\", \"foo\", 0], [\"==\", \"foo\", 1]]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer938200568" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer938200568" }, "properties": {"foo": 0, "rule": "\"properties\": {\"foo\": 0}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer938200568" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer938200568" }, "properties": {"foo": 1, "rule": "\"properties\": {\"foo\": 1}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer938200568" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer938200568" }, "properties": {"foo": "0", "rule": "\"properties\": {\"foo\": \"0\"}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer938200568" }, "properties": {"foo": true, "rule": "\"properties\": {\"foo\": true}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer938200568" }, "properties": {"foo": true, "rule": "\"properties\": {\"foo\": true}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer938200568" }, "properties": {"foo": false, "rule": "\"properties\": {\"foo\": false}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer938200568" }, "properties": {"foo": false, "rule": "\"properties\": {\"foo\": false}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer938200568" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer938200568" }, "properties": {"foo": null, "rule": "\"properties\": {\"foo\": null}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer938200568" }, "properties": { "rule": "not \"properties\": {}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer938200568" }, "properties": { "rule": "not \"properties\": {}, [\"has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1991184237" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1991184237" }, "properties": {"foo": 0, "rule": "not \"properties\": {\"foo\": 0}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1991184237" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1991184237" }, "properties": {"foo": 1, "rule": "not \"properties\": {\"foo\": 1}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1991184237" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1991184237" }, "properties": {"foo": "0", "rule": "not \"properties\": {\"foo\": \"0\"}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1991184237" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1991184237" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1991184237" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1991184237" }, "properties": {"foo": false, "rule": "not \"properties\": {\"foo\": false}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1991184237" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1991184237" }, "properties": {"foo": null, "rule": "not \"properties\": {\"foo\": null}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "layer1991184237" }, "properties": { "rule": "\"properties\": {}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ 0, 0 ] } }
{ "type": "Feature", "tippecanoe": { "layer": "notlayer1991184237" }, "properties": { "rule": "\"properties\": {}, [\"!has\", \"foo\"]"}, "geometry": { "type": "Point", "coordinates": [ -100, 0 ] } }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,12 @@
{ "*": [
"any",
[ "all", [ "==", "SCALERANK", 0 ], [ ">=", "$zoom", 0 ] ],
[ "all", [ "==", "SCALERANK", 1 ], [ ">=", "$zoom", 1 ] ],
[ "all", [ "==", "SCALERANK", 2 ], [ ">=", "$zoom", 2 ] ],
[ "all", [ "==", "SCALERANK", 3 ], [ ">=", "$zoom", 3 ] ],
[ "all", [ "==", "SCALERANK", 4 ], [ ">=", "$zoom", 4 ] ],
[ "all", [ "==", "SCALERANK", 5 ], [ ">=", "$zoom", 5 ] ],
[ "all", [ "==", "SCALERANK", 6 ], [ ">=", "$zoom", 6 ] ],
[ "all", [ "==", "SCALERANK", 7 ], [ ">=", "$zoom", 7 ] ],
[ "all", [ ">=", "SCALERANK", 8 ], [ ">=", "$zoom", 8 ] ]
] }

3
tests/filter/remove Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
sed 's/"layer": "[^"]*",*//'

3
tests/filter/rename Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
sed 's/"layer": "[^"]*"/"layer": "renamed"/'

3
tests/filter/rename2 Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
sed 's/"layer": "[^"]*"/"layer": "renamed_again"/'

View File

@ -1,3 +1,7 @@
{ "type": "LineString", "coordinates": [ [ 2.4609375, 46.07323062540838 ], [ 43.2421875, 59.9 ] ] }
{ "type": "LineString", "coordinates": [ [ 2.460937, 46.073230 ], [ 43.242187, 59.9 ] ] }
{ "something": [ { "type": "LineString", "coordinates": [ [ -1.40625, 28.92163128242129 ], [ 26.71875, 17.978733095556183 ], [ 22.148437499999996, -23.563987128451217 ] ] } ] }
{ "something": [ { "type": "LineString", "coordinates": [ [ -1.40625, 28.921631 ], [ 26.71875, 17.978733 ], [ 22.148437, -23.563987 ] ] } ] }
{ "something": { "type": "LineString", "coordinates": [ [ 1, 2 ], [ 3, 4 ] ] } }
[ { "type": "LineString", "coordinates": [ [ 5, 6 ], [ 7, 8 ] ] } ]

View File

@ -9,16 +9,16 @@
"coordinates": [
[
-79.453125,
49.38237278700955
49.382372
], [
11.6015625,
52.05249047600099
11.601562,
52.052490
], [
-60.46875,
-7.01366792756663
-7.013667
], [
23.90625,
-12.554563528593656
-12.554563
]
]
}

Some files were not shown because too many files have changed in this diff Show More