Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以不同颜色显示国家/地区_Java_Ios_Swift_Google Maps_Mapbox - Fatal编程技术网

Java 以不同颜色显示国家/地区

Java 以不同颜色显示国家/地区,java,ios,swift,google-maps,mapbox,Java,Ios,Swift,Google Maps,Mapbox,我正在尝试创建一个android和ios应用程序,让您可以看到整个世界。我只需要在一个单独的颜色显示的国家。不需要城市、街道等。 它应该是这样的: 我不能使用静态图像,它需要为每个用户分别着色 到目前为止,我已经尝试使用Mapbox。但是使用Mapbox,我还没有找到动态样式。似乎它们必须使用Mapbox Studio以高级方式创建。 我还尝试了使用平铺层的谷歌地图。要不是那样(据我所知),我需要重新创造整个世界。这将是一项巨大的努力 所以没有一个真正符合我的需要。也许我错过了一个简单的把戏,

我正在尝试创建一个android和ios应用程序,让您可以看到整个世界。我只需要在一个单独的颜色显示的国家。不需要城市、街道等。 它应该是这样的:

我不能使用静态图像,它需要为每个用户分别着色

到目前为止,我已经尝试使用Mapbox。但是使用Mapbox,我还没有找到动态样式。似乎它们必须使用Mapbox Studio以高级方式创建。 我还尝试了使用平铺层的谷歌地图。要不是那样(据我所知),我需要重新创造整个世界。这将是一项巨大的努力

所以没有一个真正符合我的需要。也许我错过了一个简单的把戏,但我真的很沮丧


非常感谢您的帮助

要做到这一点,你必须做几件事。首先,你需要从国际货币基金组织获得关于每个国家人类发展指数得分的数据。幸运的是,您可以从联合国开发计划署人类发展API获得以下数据:

接下来,您必须弄清楚HDI表示发达、发展中、欠发达和最不发达。联合国开发计划署将人类发展指数分为四类(五类包括数据不可用的国家):

  • 甚高:1.000-0.800
  • 高:0.700-0.799
  • 中等:0.555-0.699
  • 低:0.350-0.554
  • 数据不可用
现在,您需要查看这些数据并在MapBox Studio中创建地图。您可以浏览数据的JSON并为每个国家创建一个新样式(这里的教程:),也可以在前端解析JSON文件并从应用程序中添加样式

如果创建MapBox贴图,则可以通过设置贴图的“样式”属性在应用程序上使用贴图的样式。这是通过在创建地图后,获取共享URL并在前端初始化地图时将其样式设置为此URL来完成的。

使用共享URL,您可以在前端创建地图

监督厅(Swift):

监督厅(目标C):

Android(Java):

安卓(Kotlin):


每个国家/地区是以一种颜色显示,还是由用户选择一个国家/地区,然后指定一种“突出显示”颜色?或者你只是想重新创建这个问题所附的维基百科文件?我对MapBox Studio很有经验,也许可以帮助您。编辑:还有,找到该文件的维基百科页面是什么?如果您可以找到哪个国家是否已开发的数据,您可以创建一个geoJson文件并将该数据传递到地图中。@DavidChopin默认情况下,所有国家都没有颜色(或只有灰色)。应该绘制动态数量的国家(0..*)。一个固定的颜色就足够了。每个用户需要突出显示的国家是什么?你说它是动态的,那么你是在进行某种API调用,其结果对于每个用户都是唯一的吗?如果您提供有关动态数据的详细信息,我可以为您指出如何从前端解析的数据设计地图样式的正确方向。@DavidChopin每个用户都可以将数据保存到他选择的任何国家。有数据的国家将被着色,当您单击颜色时,您可以看到数据(图像或文本)。数据可以通过REST-API访问,我自己也在编写。我计划使用json并将国家名称和数据发送给客户。因此,每个客户都有不同的数据和不同的国家,需要显示。
var mapView = MGLMapView()
mapView.styleURL = URL(string: "mapbox://styles/davidchopin/cjtz90km70tkk1fo6oxifkd67")
// 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];
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


    }
});
mapboxMap.setStyle(Style.Builder().fromUrl("mapbox://styles/davidchopin/cjtz90km70tkk1fo6oxifkd67")) {

    // Custom map style has been loaded and map is now ready

}