Danh sách tọa độ trung tâm (centroid) cho tất cả các quốc gia?


17

Tôi cần một danh sách các điểm trung tâm (centroid) cho tất cả các quốc gia:

Trung Quốc: lat / long (tọa độ của điểm trung tâm nhất ở Trung Quốc)
Pháp: lat / long (tọa độ của điểm trung tâm nhất ở Pháp),
v.v ...

Câu trả lời:


18

Frank Donnelly cung cấp một tệp CSV của các trung tâm quốc gia dựa trên dữ liệu được lấy từ Máy chủ GeoNames, nhưng được Frank quản lý. Dữ liệu được cập nhật lần cuối vào tháng 2 năm 2012.


Tháng 5 năm 2018

Nguồn cũ không còn khả dụng nữa, đây là nguồn mới hơn, với rất nhiều thông tin về các quốc gia (bao gồm cả Centroid) và khả năng tải xuống dữ liệu ở một số định dạng. https://worldmap.harvard.edu/data/geonode:country_centroids_az8

Cũng có một câu hỏi tương tự tại Stackoverflow: Cần một danh sách tất cả các quốc gia trên thế giới, với tọa độ kinh độ và vĩ độ , bao gồm một vài cách tiếp cận để tạo danh sách như vậy từ các nguồn dữ liệu khác.


Bây giờ csv được liên kết dường như 404, có ai có nguồn khác không?
Vincent V.

Tìm thấy nguồn khác có vẻ tốt và đầy đủ: worldmap.harvard.edu/data/geonode:country_centroids_az8 có thể dl bất kỳ định dạng nào bạn cần bao gồm cả csv, cũng có rất nhiều dữ liệu khác về các quốc gia
Vincent V.

1
Các url đầu tiên và cuối cùng là 404.
Aaron

7

Bạn có thể lấy thông tin này bằng cách sử dụng Rnhư thế này:

library(rgeos)
library(rworldmap)

# get world map
wmap <- getMap(resolution="high")

# get centroids
centroids <- gCentroid(wmap, byid=TRUE)

# get a data.frame with centroids
df <- as.data.frame(centroids)
head(df)

#>                     x         y
#> Aruba       -69.97345  12.51678
#> Afghanistan  66.00845  33.83627
#> Angola       17.53646 -12.29118
#> Anguilla    -63.06082  18.22560
#> Albania      20.05399  41.14258
#> Aland        20.03715  60.20733

# plot
plot(centroids)

kết quả


3

Bạn có thể lấy centroid quốc gia bằng Python và GeoPandas .

import geopandas as gpd
import pandas as pd

# Access built-in Natural Earth data via GeoPandas
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

# Get a list (dataframe) of country centroids
centroids = world.centroid
centroid_list = pd.concat([world.name, centroids], axis=1)

# Plot the results
base = world.plot(column = 'name', cmap = 'Blues')
centroids.plot(ax = base, marker = 'o', color = 'red', markersize = 5)

In [1]: centroid_list
Out[1]: 
                           name                                              0
    0               Afghanistan  POINT (66.08669022192834 33.85639928169076)
    1                    Angola  POINT (17.47057255231345 -12.24586903613316)
    2                   Albania  POINT (20.03242643144321 41.14135330604877)
    3      United Arab Emirates  POINT (54.20671476159633 23.86863365334761)
    4                 Argentina  POINT (-65.17536077114174 -35.44682148949509)
    5                   Armenia  POINT (45.00029001101479 40.21660761230144)
    6                Antarctica  POINT (20.57100056984261 -80.49198288284349)
    ... and so on ...

nhập mô tả hình ảnh ở đây


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.