Показать страны с индивидуальным цветом - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь создать приложение для Android и IOS, где вы можете увидеть весь мир.Мне нужны только страны, отображаемые отдельным цветом.Нет необходимости в городах, улицах и т. Д. Это должно выглядеть примерно так:

example

Я не могу использовать статическое изображение, его нужно раскрасить индивидуальнодля каждого пользователя.

Пока я пробовал использовать Mapbox.Но с Mapbox я не нашел динамических стилей.Кажется, что они должны быть созданы в расширенном с Mapbox Studio.И я попробовал Google Maps со слоями плитки.Но для этого (как я понимаю) мне нужно было бы воссоздать весь мир.Это было бы огромным усилием.

Так что ни один из них не соответствует моим потребностям.Может быть, мне не хватает простого трюка, но я очень расстроен этим.

Любая помощь очень ценится!

1 Ответ

2 голосов
/ 30 апреля 2019

Чтобы сделать это, вам нужно будет сделать несколько вещей. Сначала вам нужно получить данные из МВФ о показателе ИЧР в каждой стране. К счастью, вы можете получить эти данные из API развития человеческого потенциала Программы развития ООН: http://ec2 -54-174-131-205.compute-1.amazonaws.com / API / HDRO_API.php / Indicator_id = 137506 / год = 2017

Далее вам необходимо выяснить, что ИЧР означает «развитый, развивающийся, менее развитый и наименее развитый». Программа развития Организации Объединенных Наций делит ИРЧП на четыре категории (пять, включая страны с недоступными данными):

  • Очень высокий: 1.000 - 0.800
  • Высокий: 0,700 - 0,799
  • Средний: 0,555 - 0,699
  • Низкий: 0,350 - 0,554
  • Данные недоступны

Теперь вам нужно посмотреть на эти данные и создать карту в MapBox Studio. Вы можете либо пройти через JSON данных и создать новый стиль для каждой нации (учебное пособие здесь: https://docs.mapbox.com/help/tutorials/style-single-country/), либо вы можете проанализировать файл JSON во внешнем интерфейсе и добавить стили из приложения.

Если вы создаете карту MapBox, стиль карты можно использовать в вашем приложении, установив свойство стиля карты. Это делается после создания карты, взятия URL-адреса общего ресурса и установки стиля вашей карты на этот URL-адрес, когда он инициализируется во внешнем интерфейсе. Click 'share' in the top-right corner

Here is your share URL, click 'use' to find tutorials on how to use this share URL to style your map on the front end (both iOS and Android)

Используя URL-адрес общего доступа, вы можете создать карту в интерфейсе пользователя.

iOS (Swift):

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 (Kotlin):

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

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

}
...