我正在尝试创建一个android&ios应用程序,您可以在其中看到整个世界。我只需要用单独的颜色显示的国家。无需城市,街道等 它应该看起来像这样:
我不能使用静态图像,需要为每个用户分别为其着色。
到目前为止,我已经尝试使用Mapbox。但是使用Mapbox时,我还没有发现动态样式。似乎必须使用Mapbox Studio进行高级创建。 我尝试了带有图层的Google Maps。但是为此(据我了解),我将需要重新创建整个世界。那将是巨大的努力。
所以它们都不符合我的需求。也许我错过了一个简单的技巧,但是我对此感到非常沮丧。
我们非常感谢您的帮助!
答案 0 :(得分:1)
为此,您必须做一些事情。首先,您需要从IMF获取有关每个国家的HDI得分的数据。幸运的是,您可以从联合国开发计划署人类发展API中获取此数据:http://ec2-54-174-131-205.compute-1.amazonaws.com/API/HDRO_API.php/indicator_id=137506/year=2017
接下来,您必须弄清HDI表示发达,发展中,欠发达和最不发达的含义。联合国开发计划署将HDI分为四类(五类,包括没有可用数据的国家):
现在,您需要查看此数据并在MapBox Studio中创建地图。您可以遍历数据的JSON并为每个国家/地区创建新样式(此处的教程:https://docs.mapbox.com/help/tutorials/style-single-country/),也可以在前端解析JSON文件并从应用程序中添加样式。
如果创建MapBox地图,则可以通过设置地图的style属性在应用程序中使用地图的样式。这是通过在创建地图后,使用共享URL并在前端对其进行初始化时将地图的样式设置为此URL来完成的。
使用共享URL,您可以在前端创建地图。
iOS(快速):
var mapView = MGLMapView()
mapView.styleURL = URL(string: "mapbox://styles/davidchopin/cjtz90km70tkk1fo6oxifkd67")
iOS(Objective-C):
// Replace the string in the URL below with your custom style URL from Mapbox
//Studio.
// Read more about style URLs here: https://www.mapbox.com/help/define-style-url/
NSURL *styleURL = [NSURL URLWithString:@"mapbox://styles/davidchopin/cjtz90km70tkk1fo6oxifkd67"];
MGLMapView *mapView = [[MGLMapView alloc] initWithFrame:self.view.bounds
styleURL:styleURL];
Android(Java):
mapboxMap.setStyle(new Style.Builder().fromUrl("mapbox://styles/davidchopin/cjtz90km70tkk1fo6oxifkd67"), new
Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
// Custom map style has been loaded and map is now ready
}
});
Android(科林):
mapboxMap.setStyle(Style.Builder().fromUrl("mapbox://styles/davidchopin/cjtz90km70tkk1fo6oxifkd67")) {
// Custom map style has been loaded and map is now ready
}