diff options
13 files changed, 3021 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/BaseMarkerViewOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/BaseMarkerViewOptions.java index ddedf3debf..3fd2fa4ebf 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/BaseMarkerViewOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/BaseMarkerViewOptions.java @@ -14,7 +14,10 @@ import com.mapbox.mapboxsdk.geometry.LatLng; * * @param <U> Type of the marker view to be composed. * @param <T> Type of the builder to be used for composing. + * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android + * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ +@Deprecated public abstract class BaseMarkerViewOptions<U extends MarkerView, T extends BaseMarkerViewOptions<U, T>> implements Parcelable { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerView.java index 56e8cc4ce2..eb82c7bf53 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerView.java @@ -24,7 +24,10 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; * used with event listeners to bring up info windows. An {@link InfoWindow} is displayed by default * when either a title or snippet is provided. * </p> + * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android + * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ +@Deprecated public class MarkerView extends Marker { private MarkerViewManager markerViewManager; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java index 8704e882ea..8304d0e6ed 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java @@ -30,7 +30,10 @@ import java.util.Map; * <p> * This class is responsible for managing a {@link MarkerView} item. * </p> + * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android + * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ +@Deprecated public class MarkerViewManager implements MapView.OnMapChangedListener { private final ViewGroup markerViewContainer; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewOptions.java index 2d829537fc..79c72e5f70 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewOptions.java @@ -12,7 +12,10 @@ import com.mapbox.mapboxsdk.geometry.LatLng; * <p> * Do not extend this class directly but extend {@link BaseMarkerViewOptions} instead. * </p> + * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android + * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ +@Deprecated public class MarkerViewOptions extends BaseMarkerViewOptions<MarkerView, MarkerViewOptions> { private MarkerView marker; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index c4b2a1ad4a..0c820d844c 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -1216,8 +1216,11 @@ public final class MapboxMap { * * @param markerOptions A marker options object that defines how to render the marker * @return The {@code Marker} that was added to the map + * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android + * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ @NonNull + @Deprecated public MarkerView addMarker(@NonNull BaseMarkerViewOptions markerOptions) { return annotationManager.addMarker(markerOptions, this, null); } @@ -1232,7 +1235,10 @@ public final class MapboxMap { * @param markerOptions A marker options object that defines how to render the marker * @param onMarkerViewAddedListener Callback invoked when the View has been added to the map * @return The {@code Marker} that was added to the map + * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android + * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ + @Deprecated @NonNull public MarkerView addMarker(@NonNull BaseMarkerViewOptions markerOptions, final MarkerViewManager.OnMarkerViewAddedListener onMarkerViewAddedListener) { @@ -1248,8 +1254,11 @@ public final class MapboxMap { * * @param markerViewOptions A list of markerView options objects that defines how to render the markers * @return A list of the {@code MarkerView}s that were added to the map + * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android + * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ @NonNull + @Deprecated public List<MarkerView> addMarkerViews(@NonNull List<? extends BaseMarkerViewOptions> markerViewOptions) { return annotationManager.addMarkerViews(markerViewOptions, this); @@ -1260,8 +1269,11 @@ public final class MapboxMap { * * @param rect the rectangular area on the map to query for markerViews * @return A list of the markerViews that were found in the rectangle + * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android + * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ @NonNull + @Deprecated public List<MarkerView> getMarkerViewsInRect(@NonNull RectF rect) { return annotationManager.getMarkerViewsInRect(rect); } @@ -2314,7 +2326,10 @@ public final class MapboxMap { * Interface definition for a callback to be invoked when an MarkerView will be shown. * * @param <U> the instance type of MarkerView + * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android + * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ + @Deprecated public abstract static class MarkerViewAdapter<U extends MarkerView> { private Context context; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index ec42145a26..bf97749b9e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -633,6 +633,17 @@ android:value=".activity.FeatureOverviewActivity"/> </activity> <activity + android:name=".activity.style.SymbolGeneratorActivity" + android:description="@string/description_symbol_generator" + android:label="@string/activity_symbol_generator"> + <meta-data + android:name="@string/category" + android:value="@string/category_style"/> + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + </activity> + <activity android:name=".activity.style.ZoomFunctionSymbolLayerActivity" android:description="@string/description_add_remove_markers" android:label="@string/activity_add_remove_markers"> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java new file mode 100644 index 0000000000..0eaccfef0c --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java @@ -0,0 +1,216 @@ +package com.mapbox.mapboxsdk.testapp.activity.style; + +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.support.v7.app.AppCompatActivity; +import android.graphics.Color; +import android.graphics.PointF; +import android.os.Bundle; +import android.support.annotation.NonNull; + +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.TextView; +import android.widget.Toast; + +import com.google.gson.GsonBuilder; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.style.layers.SymbolLayer; +import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; +import com.mapbox.mapboxsdk.style.sources.Source; +import com.mapbox.mapboxsdk.testapp.R; +import com.mapbox.mapboxsdk.testapp.utils.ResourceUtils; +import com.mapbox.services.commons.geojson.Feature; +import com.mapbox.services.commons.geojson.FeatureCollection; +import com.mapbox.services.commons.geojson.Geometry; +import com.mapbox.services.commons.geojson.custom.GeometryDeserializer; +import com.mapbox.services.commons.geojson.custom.PositionDeserializer; +import com.mapbox.services.commons.models.Position; + +import java.io.IOException; + +import java.util.List; + +import timber.log.Timber; + +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconAllowOverlap; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage; + +/** + * Test activity showcasing using a symbol generator that generates Bitmaps from Android SDK Views. + */ +public class SymbolGeneratorActivity extends AppCompatActivity implements OnMapReadyCallback { + + private static final String SOURCE_ID = "com.mapbox.mapboxsdk.style.layers.symbol.source.id"; + private static final String LAYER_ID = "com.mapbox.mapboxsdk.style.layers.symbol.layer.id"; + private static final String FEATURE_ID = "brk_name"; + private static final String FEATURE_VALUE = "name_sort"; + + private MapView mapView; + private MapboxMap mapboxMap; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_symbol_generator); + + mapView = (MapView) findViewById(R.id.mapView); + mapView.onCreate(savedInstanceState); + mapView.getMapAsync(this); + } + + @Override + public void onMapReady(MapboxMap map) { + mapboxMap = map; + try { + // read local geojson from raw folder + String tinyCountriesJson = ResourceUtils.readRawResource(this, R.raw.tiny_countries); + + // convert geojson to a model + FeatureCollection featureCollection = new GsonBuilder() + .registerTypeAdapter(Geometry.class, new GeometryDeserializer()) + .registerTypeAdapter(Position.class, new PositionDeserializer()) + .create().fromJson(tinyCountriesJson, FeatureCollection.class); + + // add a geojson to the map + Source source = new GeoJsonSource(SOURCE_ID, featureCollection); + mapboxMap.addSource(source); + + // for each feature add a symbolLayer + for (Feature feature : featureCollection.getFeatures()) { + String countryName = feature.getStringProperty(FEATURE_ID); + + // create View + TextView textView = new TextView(this); + textView.setBackgroundColor(getResources().getColor(R.color.blueAccent)); + textView.setPadding(10, 5, 10, 5); + textView.setTextColor(Color.WHITE); + textView.setText(countryName); + + // create bitmap from view + mapboxMap.addImage(countryName, SymbolGenerator.generate(textView)); + } + + // create layer use + mapboxMap.addLayer(new SymbolLayer(LAYER_ID, SOURCE_ID) + .withProperties( + iconImage("{" + FEATURE_ID + "}"), // { } is a token notation + iconAllowOverlap(false) + ) + ); + + addSymbolClickListener(); + } catch (IOException exception) { + Timber.e(exception); + } + } + + private void addSymbolClickListener() { + mapboxMap.setOnMapClickListener(new MapboxMap.OnMapClickListener() { + @Override + public void onMapClick(@NonNull LatLng point) { + PointF screenPoint = mapboxMap.getProjection().toScreenLocation(point); + List<Feature> features = mapboxMap.queryRenderedFeatures(screenPoint, LAYER_ID); + if (!features.isEmpty()) { + Feature feature = features.get(0); + Timber.v("Feature was clicked with data: %s", feature.toJson()); + Toast.makeText( + SymbolGeneratorActivity.this, + "hello from: " + feature.getStringProperty(FEATURE_VALUE), + Toast.LENGTH_LONG).show(); + } + } + }); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_generator_symbol, menu); + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == R.id.menu_action_icon_overlap) { + SymbolLayer layer = mapboxMap.getLayerAs(LAYER_ID); + layer.setProperties(iconAllowOverlap(!layer.getIconAllowOverlap().getValue())); + } + return super.onOptionsItemSelected(item); + } + + @Override + protected void onStart() { + super.onStart(); + mapView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapView.onStop(); + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mapView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapView.onLowMemory(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + mapView.onDestroy(); + } + + /** + * Utility class to generate Bitmaps for Symbol. + * <p> + * Bitmaps can be added to the map with {@link com.mapbox.mapboxsdk.maps.MapboxMap#addImage(String, Bitmap)} + * </p> + */ + private static class SymbolGenerator { + + /** + * Generate a Bitmap from an Android SDK View. + * + * @param view the View to be drawn to a Bitmap + * @return the generated bitmap + */ + public static Bitmap generate(@NonNull View view) { + int measureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); + view.measure(measureSpec, measureSpec); + + int measuredWidth = view.getMeasuredWidth(); + int measuredHeight = view.getMeasuredHeight(); + + view.layout(0, 0, measuredWidth, measuredHeight); + Bitmap bitmap = Bitmap.createBitmap(measuredWidth, measuredHeight, Bitmap.Config.ARGB_8888); + bitmap.eraseColor(Color.TRANSPARENT); + Canvas canvas = new Canvas(bitmap); + view.draw(canvas); + return bitmap; + } + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_symbol_generator.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_symbol_generator.xml new file mode 100644 index 0000000000..ffcdddce57 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_symbol_generator.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <com.mapbox.mapboxsdk.maps.MapView + android:id="@id/mapView" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:mapbox_styleUrl="@string/mapbox_style_outdoors"/> + +</RelativeLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_generator_symbol.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_generator_symbol.xml new file mode 100644 index 0000000000..168361a263 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_generator_symbol.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + <item + android:id="@+id/menu_action_icon_overlap" + android:title="@string/menuitem_change_icon_overlap" + app:showAsAction="never"/> +</menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/raw/tiny_countries.geojson b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/raw/tiny_countries.geojson new file mode 100644 index 0000000000..caff2ac81c --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/raw/tiny_countries.geojson @@ -0,0 +1,2741 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "scalerank": 1, + "sr_label_i": 2, + "sr_label_o": 4, + "sovereignt": "Vanuatu", + "sov_a3": "VUT", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Vanuatu", + "adm0_a3": "VUT", + "geou_dif": 0, + "geounit": "Vanuatu", + "gu_a3": "VUT", + "su_dif": 0, + "subunit": "Vanuatu", + "su_a3": "VUT", + "brk_diff": 0, + "name": "Vanuatu", + "name_long": "Vanuatu", + "brk_a3": "VUT", + "brk_name": "Vanuatu", + "brk_group": null, + "abbrev": "Van.", + "postal": "VU", + "formal_en": "Republic of Vanuatu", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Vanuatu", + "name_alt": null, + "mapcolor7": 6, + "mapcolor8": 3, + "mapcolor9": 7, + "mapcolor13": 3, + "pop_est": 218519, + "gdp_md_est": 988.5, + "pop_year": -99, + "lastcensus": 2009, + "gdp_year": -99, + "economy": "7. Least developed region", + "income_grp": "4. Lower middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "VU", + "iso_a3": "VUT", + "iso_n3": "548", + "un_a3": "548", + "wb_a2": "VU", + "wb_a3": "VUT", + "woe_id": -99, + "adm0_a3_is": "VUT", + "adm0_a3_us": "VUT", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Melanesia", + "region_wb": "East Asia & Pacific", + "name_len": 7, + "long_len": 7, + "abbrev_len": 4, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 166.9270664395989, + -15.367957152169708 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 1, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "France", + "sov_a3": "FR1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "French Southern and Antarctic Lands", + "adm0_a3": "ATF", + "geou_dif": 0, + "geounit": "French Southern and Antarctic Lands", + "gu_a3": "ATF", + "su_dif": 0, + "subunit": "French Southern and Antarctic Lands", + "su_a3": "ATF", + "brk_diff": 0, + "name": "Fr. S. Antarctic Lands", + "name_long": "French Southern and Antarctic Lands", + "brk_a3": "ATF", + "brk_name": "Fr. S. and Antarctic Lands", + "brk_group": null, + "abbrev": "Fr. S.A.L.", + "postal": "TF", + "formal_en": "Territory of the French Southern and Antarctic Lands", + "formal_fr": null, + "note_adm0": "Fr.", + "note_brk": null, + "name_sort": "French Southern and Antarctic Lands", + "name_alt": null, + "mapcolor7": 7, + "mapcolor8": 5, + "mapcolor9": 9, + "mapcolor13": 11, + "pop_est": 140, + "gdp_md_est": 16, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "TF", + "iso_a3": "ATF", + "iso_n3": "260", + "un_a3": "-099", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "ATF", + "adm0_a3_us": "ATF", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Seven seas (open ocean)", + "region_un": "Seven seas (open ocean)", + "subregion": "Seven seas (open ocean)", + "region_wb": "Sub-Saharan Africa", + "name_len": 22, + "long_len": 35, + "abbrev_len": 10, + "tiny": 2, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 69.22513999086925, + -49.33878196163545 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "New Zealand", + "sov_a3": "NZ1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "Cook Islands", + "adm0_a3": "COK", + "geou_dif": 0, + "geounit": "Cook Islands", + "gu_a3": "COK", + "su_dif": 0, + "subunit": "Cook Islands", + "su_a3": "COK", + "brk_diff": 0, + "name": "Cook Is.", + "name_long": "Cook Islands", + "brk_a3": "COK", + "brk_name": "Cook Is.", + "brk_group": null, + "abbrev": "Cook Is.", + "postal": "CK", + "formal_en": null, + "formal_fr": null, + "note_adm0": "Assoc. with N.Z.", + "note_brk": null, + "name_sort": "Cook Islands", + "name_alt": null, + "mapcolor7": 3, + "mapcolor8": 3, + "mapcolor9": 4, + "mapcolor13": 4, + "pop_est": 11870, + "gdp_md_est": 183.2, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "3. Upper middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "CK", + "iso_a3": "COK", + "iso_n3": "184", + "un_a3": "184", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "COK", + "adm0_a3_us": "COK", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Polynesia", + "region_wb": "East Asia & Pacific", + "name_len": 8, + "long_len": 12, + "abbrev_len": 8, + "tiny": 3, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -159.78922694470387, + -21.220086945691605 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 4, + "sovereignt": "Samoa", + "sov_a3": "WSM", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Samoa", + "adm0_a3": "WSM", + "geou_dif": 0, + "geounit": "Samoa", + "gu_a3": "WSM", + "su_dif": 0, + "subunit": "Samoa", + "su_a3": "WSM", + "brk_diff": 0, + "name": "Samoa", + "name_long": "Samoa", + "brk_a3": "WSM", + "brk_name": "Samoa", + "brk_group": null, + "abbrev": "Samoa", + "postal": "WS", + "formal_en": "Independent State of Samoa", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Samoa", + "name_alt": null, + "mapcolor7": 3, + "mapcolor8": 3, + "mapcolor9": 4, + "mapcolor13": 6, + "pop_est": 219998, + "gdp_md_est": 1049, + "pop_year": -99, + "lastcensus": 2006, + "gdp_year": -99, + "economy": "7. Least developed region", + "income_grp": "4. Lower middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "WS", + "iso_a3": "WSM", + "iso_n3": "882", + "un_a3": "882", + "wb_a2": "WS", + "wb_a3": "WSM", + "woe_id": -99, + "adm0_a3_is": "WSM", + "adm0_a3_us": "WSM", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Polynesia", + "region_wb": "East Asia & Pacific", + "name_len": 5, + "long_len": 5, + "abbrev_len": 5, + "tiny": -99, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -172.41373026688336, + -13.637369985140253 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 4, + "sovereignt": "Tonga", + "sov_a3": "TON", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Tonga", + "adm0_a3": "TON", + "geou_dif": 0, + "geounit": "Tonga", + "gu_a3": "TON", + "su_dif": 0, + "subunit": "Tonga", + "su_a3": "TON", + "brk_diff": 0, + "name": "Tonga", + "name_long": "Tonga", + "brk_a3": "TON", + "brk_name": "Tonga", + "brk_group": null, + "abbrev": "Tongo", + "postal": "TO", + "formal_en": "Kingdom of Tonga", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Tonga", + "name_alt": null, + "mapcolor7": 2, + "mapcolor8": 1, + "mapcolor9": 1, + "mapcolor13": 8, + "pop_est": 120898, + "gdp_md_est": 549, + "pop_year": -99, + "lastcensus": 2006, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "4. Lower middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "TO", + "iso_a3": "TON", + "iso_n3": "776", + "un_a3": "776", + "wb_a2": "TO", + "wb_a3": "TON", + "woe_id": -99, + "adm0_a3_is": "TON", + "adm0_a3_us": "TON", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Polynesia", + "region_wb": "East Asia & Pacific", + "name_len": 5, + "long_len": 5, + "abbrev_len": 5, + "tiny": 3, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -175.23533295466754, + -21.158187998515473 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 5, + "sovereignt": "France", + "sov_a3": "FR1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "French Polynesia", + "adm0_a3": "PYF", + "geou_dif": 0, + "geounit": "French Polynesia", + "gu_a3": "PYF", + "su_dif": 0, + "subunit": "French Polynesia", + "su_a3": "PYF", + "brk_diff": 0, + "name": "Fr. Polynesia", + "name_long": "French Polynesia", + "brk_a3": "PYF", + "brk_name": "Fr. Polynesia", + "brk_group": null, + "abbrev": "Fr. Poly.", + "postal": "PF", + "formal_en": "French Polynesia", + "formal_fr": null, + "note_adm0": "Fr.", + "note_brk": null, + "name_sort": "French Polynesia", + "name_alt": null, + "mapcolor7": 7, + "mapcolor8": 5, + "mapcolor9": 9, + "mapcolor13": 11, + "pop_est": 287032, + "gdp_md_est": 4718, + "pop_year": -99, + "lastcensus": 2007, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "PF", + "iso_a3": "PYF", + "iso_n3": "258", + "un_a3": "258", + "wb_a2": "PF", + "wb_a3": "PYF", + "woe_id": -99, + "adm0_a3_is": "PYF", + "adm0_a3_us": "PYF", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Polynesia", + "region_wb": "East Asia & Pacific", + "name_len": 13, + "long_len": 16, + "abbrev_len": 9, + "tiny": 2, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -149.47549597877855, + -17.6250049835121 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "United Kingdom", + "sov_a3": "GB1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "Pitcairn Islands", + "adm0_a3": "PCN", + "geou_dif": 0, + "geounit": "Pitcairn Islands", + "gu_a3": "PCN", + "su_dif": 0, + "subunit": "Pitcairn Islands", + "su_a3": "PCN", + "brk_diff": 0, + "name": "Pitcairn Is.", + "name_long": "Pitcairn Islands", + "brk_a3": "PCN", + "brk_name": "Pitcairn Is.", + "brk_group": null, + "abbrev": "Pit. Is.", + "postal": "PN", + "formal_en": "Pitcairn, Henderson, Ducie and Oeno Islands", + "formal_fr": null, + "note_adm0": "U.K.", + "note_brk": null, + "name_sort": "Pitcairn Islands", + "name_alt": null, + "mapcolor7": 6, + "mapcolor8": 6, + "mapcolor9": 6, + "mapcolor13": 3, + "pop_est": 48, + "gdp_md_est": 0.72, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "7. Least developed region", + "income_grp": "5. Low income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "PN", + "iso_a3": "PCN", + "iso_n3": "612", + "un_a3": "612", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "PCN", + "adm0_a3_us": "PCN", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Polynesia", + "region_wb": "East Asia & Pacific", + "name_len": 12, + "long_len": 16, + "abbrev_len": 8, + "tiny": -99, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -128.31780012096033, + -24.364139777771015 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 5, + "sovereignt": "Barbados", + "sov_a3": "BRB", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Barbados", + "adm0_a3": "BRB", + "geou_dif": 0, + "geounit": "Barbados", + "gu_a3": "BRB", + "su_dif": 0, + "subunit": "Barbados", + "su_a3": "BRB", + "brk_diff": 0, + "name": "Barbados", + "name_long": "Barbados", + "brk_a3": "BRB", + "brk_name": "Barbados", + "brk_group": null, + "abbrev": "Barb.", + "postal": "BB", + "formal_en": "Barbados", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Barbados", + "name_alt": null, + "mapcolor7": 4, + "mapcolor8": 1, + "mapcolor9": 5, + "mapcolor13": 3, + "pop_est": 284589, + "gdp_md_est": 5425, + "pop_year": -99, + "lastcensus": 2010, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "BB", + "iso_a3": "BRB", + "iso_n3": "052", + "un_a3": "052", + "wb_a2": "BB", + "wb_a3": "BRB", + "woe_id": -99, + "adm0_a3_is": "BRB", + "adm0_a3_us": "BRB", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "North America", + "region_un": "Americas", + "subregion": "Caribbean", + "region_wb": "Latin America & Caribbean", + "name_len": 8, + "long_len": 8, + "abbrev_len": 5, + "tiny": 3, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -59.554305983838844, + 13.174672374462602 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 5, + "sovereignt": "Trinidad and Tobago", + "sov_a3": "TTO", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Trinidad and Tobago", + "adm0_a3": "TTO", + "geou_dif": 0, + "geounit": "Trinidad and Tobago", + "gu_a3": "TTO", + "su_dif": 0, + "subunit": "Trinidad and Tobago", + "su_a3": "TTO", + "brk_diff": 0, + "name": "Trinidad and Tobago", + "name_long": "Trinidad and Tobago", + "brk_a3": "TTO", + "brk_name": "Trinidad and Tobago", + "brk_group": null, + "abbrev": "Tr.T.", + "postal": "TT", + "formal_en": "Republic of Trinidad and Tobago", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Trinidad and Tobago", + "name_alt": null, + "mapcolor7": 5, + "mapcolor8": 6, + "mapcolor9": 2, + "mapcolor13": 5, + "pop_est": 1310000, + "gdp_md_est": 29010, + "pop_year": -99, + "lastcensus": 2011, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "TT", + "iso_a3": "TTO", + "iso_n3": "780", + "un_a3": "780", + "wb_a2": "TT", + "wb_a3": "TTO", + "woe_id": -99, + "adm0_a3_is": "TTO", + "adm0_a3_us": "TTO", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "North America", + "region_un": "Americas", + "subregion": "Caribbean", + "region_wb": "Latin America & Caribbean", + "name_len": 19, + "long_len": 19, + "abbrev_len": 5, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -61.255188941565905, + 10.43680324164859 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 4, + "sovereignt": "Sao Tome and Principe", + "sov_a3": "STP", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Sao Tome and Principe", + "adm0_a3": "STP", + "geou_dif": 0, + "geounit": "Sao Tome and Principe", + "gu_a3": "STP", + "su_dif": 0, + "subunit": "Sao Tome and Principe", + "su_a3": "STP", + "brk_diff": 0, + "name": "São Tomé and Principe", + "name_long": "São Tomé and Principe", + "brk_a3": "STP", + "brk_name": "Sao Tome and Principe", + "brk_group": null, + "abbrev": "S.T.P.", + "postal": "ST", + "formal_en": "Democratic Republic of São Tomé and Principe", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "São Tomé and Principe", + "name_alt": null, + "mapcolor7": 1, + "mapcolor8": 6, + "mapcolor9": 1, + "mapcolor13": 7, + "pop_est": 212679, + "gdp_md_est": 276.5, + "pop_year": -99, + "lastcensus": 2001, + "gdp_year": -99, + "economy": "7. Least developed region", + "income_grp": "4. Lower middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "ST", + "iso_a3": "STP", + "iso_n3": "678", + "un_a3": "678", + "wb_a2": "ST", + "wb_a3": "STP", + "woe_id": -99, + "adm0_a3_is": "STP", + "adm0_a3_us": "STP", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Africa", + "region_un": "Africa", + "subregion": "Middle Africa", + "region_wb": "Sub-Saharan Africa", + "name_len": 21, + "long_len": 21, + "abbrev_len": 6, + "tiny": 3, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 6.617198520543866, + 0.246806952308191 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "United Kingdom", + "sov_a3": "GB1", + "adm0_dif": 1, + "level": 4, + "type": "Geo subunit", + "admin": "Saint Helena", + "adm0_a3": "SHN", + "geou_dif": 0, + "geounit": "Saint Helena", + "gu_a3": "SHN", + "su_dif": 1, + "subunit": "Ascension", + "su_a3": "BAC", + "brk_diff": 0, + "name": "Ascension", + "name_long": "Ascension", + "brk_a3": "BAC", + "brk_name": "Ascension", + "brk_group": null, + "abbrev": "Asc.", + "postal": "AS", + "formal_en": null, + "formal_fr": null, + "note_adm0": "U.K.", + "note_brk": null, + "name_sort": "Ascension", + "name_alt": null, + "mapcolor7": 6, + "mapcolor8": 6, + "mapcolor9": 6, + "mapcolor13": 3, + "pop_est": 940, + "gdp_md_est": 2.21553, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "-99", + "income_grp": "-99", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "-99", + "iso_a3": "-99", + "iso_n3": "-99", + "un_a3": "-099", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "SHN", + "adm0_a3_us": "SHN", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Seven seas (open ocean)", + "region_un": "Seven seas (open ocean)", + "subregion": "Seven seas (open ocean)", + "region_wb": "Antarctica", + "name_len": 9, + "long_len": 9, + "abbrev_len": 4, + "tiny": 3, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -14.362068334482444, + -7.939246540570252 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "United Kingdom", + "sov_a3": "GB1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "Saint Helena", + "adm0_a3": "SHN", + "geou_dif": 0, + "geounit": "Saint Helena", + "gu_a3": "SHN", + "su_dif": 0, + "subunit": "Saint Helena", + "su_a3": "SHN", + "brk_diff": 0, + "name": "Saint Helena", + "name_long": "Saint Helena", + "brk_a3": "SHN", + "brk_name": "Saint Helena", + "brk_group": null, + "abbrev": "St.H.", + "postal": "SH", + "formal_en": null, + "formal_fr": null, + "note_adm0": "U.K.", + "note_brk": null, + "name_sort": "St. Helena", + "name_alt": null, + "mapcolor7": 6, + "mapcolor8": 6, + "mapcolor9": 6, + "mapcolor13": 3, + "pop_est": 7637, + "gdp_md_est": 18, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "4. Lower middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "SH", + "iso_a3": "SHN", + "iso_n3": "654", + "un_a3": "654", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "SHN", + "adm0_a3_us": "SHN", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Seven seas (open ocean)", + "region_un": "Africa", + "subregion": "Western Africa", + "region_wb": "Sub-Saharan Africa", + "name_len": 12, + "long_len": 12, + "abbrev_len": 5, + "tiny": -99, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -5.716296101395358, + -15.963221612123107 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 5, + "sovereignt": "Malta", + "sov_a3": "MLT", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Malta", + "adm0_a3": "MLT", + "geou_dif": 0, + "geounit": "Malta", + "gu_a3": "MLT", + "su_dif": 0, + "subunit": "Malta", + "su_a3": "MLT", + "brk_diff": 0, + "name": "Malta", + "name_long": "Malta", + "brk_a3": "MLT", + "brk_name": "Malta", + "brk_group": null, + "abbrev": "Malta", + "postal": "M", + "formal_en": "Republic of Malta", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Malta", + "name_alt": null, + "mapcolor7": 1, + "mapcolor8": 4, + "mapcolor9": 1, + "mapcolor13": 8, + "pop_est": 405165, + "gdp_md_est": 9962, + "pop_year": -99, + "lastcensus": 2005, + "gdp_year": -99, + "economy": "2. Developed region: nonG7", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "MT", + "iso_a3": "MLT", + "iso_n3": "470", + "un_a3": "470", + "wb_a2": "MT", + "wb_a3": "MLT", + "woe_id": -99, + "adm0_a3_is": "MLT", + "adm0_a3_us": "MLT", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Europe", + "region_un": "Europe", + "subregion": "Southern Europe", + "region_wb": "Middle East & North Africa", + "name_len": 5, + "long_len": 5, + "abbrev_len": 5, + "tiny": 3, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 14.438179478988388, + 35.882081031796645 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 2, + "sovereignt": "Bahrain", + "sov_a3": "BHR", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Bahrain", + "adm0_a3": "BHR", + "geou_dif": 0, + "geounit": "Bahrain", + "gu_a3": "BHR", + "su_dif": 0, + "subunit": "Bahrain", + "su_a3": "BHR", + "brk_diff": 0, + "name": "Bahrain", + "name_long": "Bahrain", + "brk_a3": "BHR", + "brk_name": "Bahrain", + "brk_group": null, + "abbrev": "Bahr.", + "postal": "BH", + "formal_en": "Kingdom of Bahrain", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Bahrain", + "name_alt": null, + "mapcolor7": 1, + "mapcolor8": 1, + "mapcolor9": 1, + "mapcolor13": 9, + "pop_est": 727785, + "gdp_md_est": 26820, + "pop_year": -99, + "lastcensus": 2010, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "BH", + "iso_a3": "BHR", + "iso_n3": "048", + "un_a3": "048", + "wb_a2": "BH", + "wb_a3": "BHR", + "woe_id": -99, + "adm0_a3_is": "BHR", + "adm0_a3_us": "BHR", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Asia", + "region_un": "Asia", + "subregion": "Western Asia", + "region_wb": "Middle East & North Africa", + "name_len": 7, + "long_len": 7, + "abbrev_len": 5, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 50.553638136605, + 26.06944265390905 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 4, + "sovereignt": "Maldives", + "sov_a3": "MDV", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Maldives", + "adm0_a3": "MDV", + "geou_dif": 0, + "geounit": "Maldives", + "gu_a3": "MDV", + "su_dif": 0, + "subunit": "Maldives", + "su_a3": "MDV", + "brk_diff": 0, + "name": "Maldives", + "name_long": "Maldives", + "brk_a3": "MDV", + "brk_name": "Maldives", + "brk_group": null, + "abbrev": "Mald.", + "postal": "MV", + "formal_en": "Republic of Maldives", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Maldives", + "name_alt": null, + "mapcolor7": 2, + "mapcolor8": 3, + "mapcolor9": 1, + "mapcolor13": 7, + "pop_est": 396334, + "gdp_md_est": 1716, + "pop_year": -99, + "lastcensus": 2011, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "3. Upper middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "MV", + "iso_a3": "MDV", + "iso_n3": "462", + "un_a3": "462", + "wb_a2": "MV", + "wb_a3": "MDV", + "woe_id": -99, + "adm0_a3_is": "MDV", + "adm0_a3_us": "B13", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Seven seas (open ocean)", + "region_un": "Asia", + "subregion": "Southern Asia", + "region_wb": "South Asia", + "name_len": 8, + "long_len": 8, + "abbrev_len": 5, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 73.50223056083513, + 4.186658727806048 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "United Kingdom", + "sov_a3": "GB1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "British Indian Ocean Territory", + "adm0_a3": "IOT", + "geou_dif": 0, + "geounit": "British Indian Ocean Territory", + "gu_a3": "IOT", + "su_dif": 0, + "subunit": "British Indian Ocean Territory", + "su_a3": "IOT", + "brk_diff": 1, + "name": "Br. Indian Ocean Ter.", + "name_long": "British Indian Ocean Territory", + "brk_a3": "B69", + "brk_name": "Br. Indian Ocean Ter.", + "brk_group": null, + "abbrev": "I.O.T.", + "postal": "IO", + "formal_en": null, + "formal_fr": null, + "note_adm0": "U.K.", + "note_brk": "Admin. by U.K.; Claimed by Mauritius and Seychelles", + "name_sort": "British Indian Ocean Territory", + "name_alt": null, + "mapcolor7": 6, + "mapcolor8": 6, + "mapcolor9": 6, + "mapcolor13": 3, + "pop_est": 4000, + "gdp_md_est": 160, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "2. Developed region: nonG7", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "IO", + "iso_a3": "IOT", + "iso_n3": "086", + "un_a3": "-099", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "IOT", + "adm0_a3_us": "IOT", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Seven seas (open ocean)", + "region_un": "Seven seas (open ocean)", + "subregion": "Seven seas (open ocean)", + "region_wb": "Sub-Saharan Africa", + "name_len": 21, + "long_len": 30, + "abbrev_len": 6, + "tiny": 5, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 72.47872949418257, + -7.340705873210993 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 3, + "sovereignt": "Singapore", + "sov_a3": "SGP", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Singapore", + "adm0_a3": "SGP", + "geou_dif": 0, + "geounit": "Singapore", + "gu_a3": "SGP", + "su_dif": 0, + "subunit": "Singapore", + "su_a3": "SGP", + "brk_diff": 0, + "name": "Singapore", + "name_long": "Singapore", + "brk_a3": "SGP", + "brk_name": "Singapore", + "brk_group": null, + "abbrev": "Sing.", + "postal": "SG", + "formal_en": "Republic of Singapore", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Singapore", + "name_alt": null, + "mapcolor7": 5, + "mapcolor8": 3, + "mapcolor9": 7, + "mapcolor13": 3, + "pop_est": 4657542, + "gdp_md_est": 237300, + "pop_year": -99, + "lastcensus": 2010, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "SG", + "iso_a3": "SGP", + "iso_n3": "702", + "un_a3": "702", + "wb_a2": "SG", + "wb_a3": "SGP", + "woe_id": -99, + "adm0_a3_is": "SGP", + "adm0_a3_us": "SGP", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Asia", + "region_un": "Asia", + "subregion": "South-Eastern Asia", + "region_wb": "East Asia & Pacific", + "name_len": 9, + "long_len": 9, + "abbrev_len": 5, + "tiny": 3, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 103.81481982900323, + 1.359363931813562 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 2, + "sovereignt": "Brunei", + "sov_a3": "BRN", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Brunei", + "adm0_a3": "BRN", + "geou_dif": 0, + "geounit": "Brunei", + "gu_a3": "BRN", + "su_dif": 0, + "subunit": "Brunei", + "su_a3": "BRN", + "brk_diff": 0, + "name": "Brunei", + "name_long": "Brunei Darussalam", + "brk_a3": "BRN", + "brk_name": "Brunei", + "brk_group": null, + "abbrev": "Brunei", + "postal": "BN", + "formal_en": "Negara Brunei Darussalam", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Brunei", + "name_alt": null, + "mapcolor7": 4, + "mapcolor8": 6, + "mapcolor9": 6, + "mapcolor13": 12, + "pop_est": 388190, + "gdp_md_est": 20250, + "pop_year": -99, + "lastcensus": 2001, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "BN", + "iso_a3": "BRN", + "iso_n3": "096", + "un_a3": "096", + "wb_a2": "BN", + "wb_a3": "BRN", + "woe_id": -99, + "adm0_a3_is": "BRN", + "adm0_a3_us": "BRN", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Asia", + "region_un": "Asia", + "subregion": "South-Eastern Asia", + "region_wb": "East Asia & Pacific", + "name_len": 6, + "long_len": 17, + "abbrev_len": 6, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 114.56745460338925, + 4.434669496170784 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "Palau", + "sov_a3": "PLW", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Palau", + "adm0_a3": "PLW", + "geou_dif": 0, + "geounit": "Palau", + "gu_a3": "PLW", + "su_dif": 0, + "subunit": "Palau", + "su_a3": "PLW", + "brk_diff": 0, + "name": "Palau", + "name_long": "Palau", + "brk_a3": "PLW", + "brk_name": "Palau", + "brk_group": null, + "abbrev": "Palau", + "postal": "PW", + "formal_en": "Republic of Palau", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Palau", + "name_alt": null, + "mapcolor7": 2, + "mapcolor8": 5, + "mapcolor9": 1, + "mapcolor13": 12, + "pop_est": 20796, + "gdp_md_est": 164, + "pop_year": -99, + "lastcensus": 2010, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "3. Upper middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "PW", + "iso_a3": "PLW", + "iso_n3": "585", + "un_a3": "585", + "wb_a2": "PW", + "wb_a3": "PLW", + "woe_id": -99, + "adm0_a3_is": "PLW", + "adm0_a3_us": "PLW", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Micronesia", + "region_wb": "East Asia & Pacific", + "name_len": 5, + "long_len": 5, + "abbrev_len": 5, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 134.57924133620793, + 7.507494163314107 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "United States of America", + "sov_a3": "US1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "Northern Mariana Islands", + "adm0_a3": "MNP", + "geou_dif": 0, + "geounit": "Northern Mariana Islands", + "gu_a3": "MNP", + "su_dif": 0, + "subunit": "Northern Mariana Islands", + "su_a3": "MNP", + "brk_diff": 0, + "name": "N. Mariana Is.", + "name_long": "Northern Mariana Islands", + "brk_a3": "MNP", + "brk_name": "N. Mariana Is.", + "brk_group": null, + "abbrev": "N.M.I.", + "postal": "MP", + "formal_en": "Commonwealth of the Northern Mariana Islands", + "formal_fr": null, + "note_adm0": "Commonwealth of U.S.A.", + "note_brk": null, + "name_sort": "Northern Mariana Islands", + "name_alt": null, + "mapcolor7": 4, + "mapcolor8": 5, + "mapcolor9": 1, + "mapcolor13": 1, + "pop_est": 88662, + "gdp_md_est": 900, + "pop_year": -99, + "lastcensus": 2010, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "MP", + "iso_a3": "MNP", + "iso_n3": "580", + "un_a3": "580", + "wb_a2": "MP", + "wb_a3": "MNP", + "woe_id": -99, + "adm0_a3_is": "MNP", + "adm0_a3_us": "MNP", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Micronesia", + "region_wb": "East Asia & Pacific", + "name_len": 14, + "long_len": 24, + "abbrev_len": 6, + "tiny": 3, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 145.73926332724704, + 15.17463695328189 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "United States of America", + "sov_a3": "US1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "Guam", + "adm0_a3": "GUM", + "geou_dif": 0, + "geounit": "Guam", + "gu_a3": "GUM", + "su_dif": 0, + "subunit": "Guam", + "su_a3": "GUM", + "brk_diff": 0, + "name": "Guam", + "name_long": "Guam", + "brk_a3": "GUM", + "brk_name": "Guam", + "brk_group": null, + "abbrev": "Guam", + "postal": "GU", + "formal_en": "Territory of Guam", + "formal_fr": null, + "note_adm0": "U.S.A.", + "note_brk": null, + "name_sort": "Guam", + "name_alt": null, + "mapcolor7": 4, + "mapcolor8": 5, + "mapcolor9": 1, + "mapcolor13": 1, + "pop_est": 178430, + "gdp_md_est": 2500, + "pop_year": -99, + "lastcensus": 2010, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "GU", + "iso_a3": "GUM", + "iso_n3": "316", + "un_a3": "316", + "wb_a2": "GU", + "wb_a3": "GUM", + "woe_id": -99, + "adm0_a3_is": "GUM", + "adm0_a3_us": "GUM", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Micronesia", + "region_wb": "East Asia & Pacific", + "name_len": 4, + "long_len": 4, + "abbrev_len": 4, + "tiny": 2, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 144.77003842181864, + 13.459684857600507 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "Federated States of Micronesia", + "sov_a3": "FSM", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Federated States of Micronesia", + "adm0_a3": "FSM", + "geou_dif": 0, + "geounit": "Federated States of Micronesia", + "gu_a3": "FSM", + "su_dif": 0, + "subunit": "Federated States of Micronesia", + "su_a3": "FSM", + "brk_diff": 0, + "name": "Micronesia", + "name_long": "Federated States of Micronesia", + "brk_a3": "FSM", + "brk_name": "Micronesia", + "brk_group": null, + "abbrev": "F.S.M.", + "postal": "FSM", + "formal_en": "Federated States of Micronesia", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Micronesia, Federated States of", + "name_alt": null, + "mapcolor7": 5, + "mapcolor8": 2, + "mapcolor9": 4, + "mapcolor13": 13, + "pop_est": 107434, + "gdp_md_est": 238.1, + "pop_year": -99, + "lastcensus": 2000, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "4. Lower middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "FM", + "iso_a3": "FSM", + "iso_n3": "583", + "un_a3": "583", + "wb_a2": "FM", + "wb_a3": "FSM", + "woe_id": -99, + "adm0_a3_is": "FSM", + "adm0_a3_us": "FSM", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Micronesia", + "region_wb": "East Asia & Pacific", + "name_len": 10, + "long_len": 30, + "abbrev_len": 6, + "tiny": -99, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 158.2420151934607, + 6.885941535379288 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "Marshall Islands", + "sov_a3": "MHL", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Marshall Islands", + "adm0_a3": "MHL", + "geou_dif": 0, + "geounit": "Marshall Islands", + "gu_a3": "MHL", + "su_dif": 0, + "subunit": "Marshall Islands", + "su_a3": "MHL", + "brk_diff": 0, + "name": "Marshall Is.", + "name_long": "Marshall Islands", + "brk_a3": "MHL", + "brk_name": "Marshall Is.", + "brk_group": null, + "abbrev": "M. Is.", + "postal": "MH", + "formal_en": "Republic of the Marshall Islands", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Marshall Islands", + "name_alt": null, + "mapcolor7": 2, + "mapcolor8": 5, + "mapcolor9": 5, + "mapcolor13": 3, + "pop_est": 64522, + "gdp_md_est": 133.5, + "pop_year": -99, + "lastcensus": 2011, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "4. Lower middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "MH", + "iso_a3": "MHL", + "iso_n3": "584", + "un_a3": "584", + "wb_a2": "MH", + "wb_a3": "MHL", + "woe_id": -99, + "adm0_a3_is": "MHL", + "adm0_a3_us": "MHL", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Micronesia", + "region_wb": "East Asia & Pacific", + "name_len": 12, + "long_len": 16, + "abbrev_len": 6, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 168.72896600641184, + 7.313460144816133 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "Kiribati", + "sov_a3": "KIR", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Kiribati", + "adm0_a3": "KIR", + "geou_dif": 0, + "geounit": "Kiribati", + "gu_a3": "KIR", + "su_dif": 0, + "subunit": "Kiribati", + "su_a3": "KIR", + "brk_diff": 0, + "name": "Kiribati", + "name_long": "Kiribati", + "brk_a3": "KIR", + "brk_name": "Kiribati", + "brk_group": null, + "abbrev": "Kir.", + "postal": "KI", + "formal_en": "Republic of Kiribati", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Kiribati", + "name_alt": null, + "mapcolor7": 5, + "mapcolor8": 7, + "mapcolor9": 6, + "mapcolor13": 12, + "pop_est": 112850, + "gdp_md_est": 579.5, + "pop_year": -99, + "lastcensus": 2005, + "gdp_year": -99, + "economy": "7. Least developed region", + "income_grp": "4. Lower middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "KI", + "iso_a3": "KIR", + "iso_n3": "296", + "un_a3": "296", + "wb_a2": "KI", + "wb_a3": "KIR", + "woe_id": -99, + "adm0_a3_is": "KIR", + "adm0_a3_us": "KIR", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Micronesia", + "region_wb": "East Asia & Pacific", + "name_len": 8, + "long_len": 8, + "abbrev_len": 4, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 173.13515838316619, + 1.364258124187756 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "Nauru", + "sov_a3": "NRU", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Nauru", + "adm0_a3": "NRU", + "geou_dif": 0, + "geounit": "Nauru", + "gu_a3": "NRU", + "su_dif": 0, + "subunit": "Nauru", + "su_a3": "NRU", + "brk_diff": 0, + "name": "Nauru", + "name_long": "Nauru", + "brk_a3": "NRU", + "brk_name": "Nauru", + "brk_group": null, + "abbrev": "Nauru", + "postal": "NR", + "formal_en": "Republic of Nauru", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Nauru", + "name_alt": null, + "mapcolor7": 3, + "mapcolor8": 7, + "mapcolor9": 6, + "mapcolor13": 9, + "pop_est": 14019, + "gdp_md_est": 60, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "4. Lower middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "NR", + "iso_a3": "NRU", + "iso_n3": "520", + "un_a3": "520", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "NRU", + "adm0_a3_us": "NRU", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Micronesia", + "region_wb": "East Asia & Pacific", + "name_len": 5, + "long_len": 5, + "abbrev_len": 5, + "tiny": 3, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 166.93748256244703, + -0.523068535976108 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 5, + "sr_label_o": 6, + "sovereignt": "Tuvalu", + "sov_a3": "TUV", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Tuvalu", + "adm0_a3": "TUV", + "geou_dif": 0, + "geounit": "Tuvalu", + "gu_a3": "TUV", + "su_dif": 0, + "subunit": "Tuvalu", + "su_a3": "TUV", + "brk_diff": 0, + "name": "Tuvalu", + "name_long": "Tuvalu", + "brk_a3": "TUV", + "brk_name": "Tuvalu", + "brk_group": null, + "abbrev": "Tuv.", + "postal": "TV", + "formal_en": "Tuvalu", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Tuvalu", + "name_alt": null, + "mapcolor7": 1, + "mapcolor8": 3, + "mapcolor9": 8, + "mapcolor13": 5, + "pop_est": 12373, + "gdp_md_est": 14.94, + "pop_year": -99, + "lastcensus": 2002, + "gdp_year": -99, + "economy": "7. Least developed region", + "income_grp": "3. Upper middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "TV", + "iso_a3": "TUV", + "iso_n3": "798", + "un_a3": "798", + "wb_a2": "TV", + "wb_a3": "TUV", + "woe_id": -99, + "adm0_a3_is": "TUV", + "adm0_a3_us": "TUV", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Oceania", + "region_un": "Oceania", + "subregion": "Polynesia", + "region_wb": "East Asia & Pacific", + "name_len": 6, + "long_len": 6, + "abbrev_len": 4, + "tiny": 5, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries Pacific" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 179.20397422623353, + -8.49972371316585 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 4, + "sovereignt": "Mauritius", + "sov_a3": "MUS", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Mauritius", + "adm0_a3": "MUS", + "geou_dif": 0, + "geounit": "Mauritius", + "gu_a3": "MUS", + "su_dif": 0, + "subunit": "Mauritius", + "su_a3": "MUS", + "brk_diff": 0, + "name": "Mauritius", + "name_long": "Mauritius", + "brk_a3": "MUS", + "brk_name": "Mauritius", + "brk_group": null, + "abbrev": "Mus.", + "postal": "MU", + "formal_en": "Republic of Mauritius", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Mauritius", + "name_alt": null, + "mapcolor7": 1, + "mapcolor8": 3, + "mapcolor9": 5, + "mapcolor13": 7, + "pop_est": 1284264, + "gdp_md_est": 15270, + "pop_year": -99, + "lastcensus": 2011, + "gdp_year": -99, + "economy": "6. Developing region", + "income_grp": "3. Upper middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "MU", + "iso_a3": "MUS", + "iso_n3": "480", + "un_a3": "480", + "wb_a2": "MU", + "wb_a3": "MUS", + "woe_id": -99, + "adm0_a3_is": "MUS", + "adm0_a3_us": "MUS", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Seven seas (open ocean)", + "region_un": "Africa", + "subregion": "Eastern Africa", + "region_wb": "Sub-Saharan Africa", + "name_len": 9, + "long_len": 9, + "abbrev_len": 4, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 57.58565995816849, + -20.302274672122962 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "Comoros", + "sov_a3": "COM", + "adm0_dif": 0, + "level": 2, + "type": "Sovereign country", + "admin": "Comoros", + "adm0_a3": "COM", + "geou_dif": 0, + "geounit": "Comoros", + "gu_a3": "COM", + "su_dif": 0, + "subunit": "Comoros", + "su_a3": "COM", + "brk_diff": 0, + "name": "Comoros", + "name_long": "Comoros", + "brk_a3": "COM", + "brk_name": "Comoros", + "brk_group": null, + "abbrev": "Com.", + "postal": "KM", + "formal_en": "Union of the Comoros", + "formal_fr": null, + "note_adm0": null, + "note_brk": null, + "name_sort": "Comoros", + "name_alt": null, + "mapcolor7": 2, + "mapcolor8": 1, + "mapcolor9": 4, + "mapcolor13": 10, + "pop_est": 752438, + "gdp_md_est": 751.2, + "pop_year": -99, + "lastcensus": 2003, + "gdp_year": -99, + "economy": "7. Least developed region", + "income_grp": "5. Low income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "KM", + "iso_a3": "COM", + "iso_n3": "174", + "un_a3": "174", + "wb_a2": "KM", + "wb_a3": "COM", + "woe_id": -99, + "adm0_a3_is": "COM", + "adm0_a3_us": "COM", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Africa", + "region_un": "Africa", + "subregion": "Eastern Africa", + "region_wb": "Sub-Saharan Africa", + "name_len": 7, + "long_len": 7, + "abbrev_len": 4, + "tiny": 2, + "homepart": 1, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 43.337943198143535, + -11.715555516231973 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "Denmark", + "sov_a3": "DN1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "Faroe Islands", + "adm0_a3": "FRO", + "geou_dif": 0, + "geounit": "Faroe Islands", + "gu_a3": "FRO", + "su_dif": 0, + "subunit": "Faroe Islands", + "su_a3": "FRO", + "brk_diff": 0, + "name": "Faeroe Is.", + "name_long": "Faeroe Islands", + "brk_a3": "FRO", + "brk_name": "Faeroe Islands", + "brk_group": null, + "abbrev": "Faeroe Is.", + "postal": "FO", + "formal_en": "Føroyar Is. (Faeroe Is.)", + "formal_fr": null, + "note_adm0": "Den.", + "note_brk": null, + "name_sort": "Faeroe Islands", + "name_alt": null, + "mapcolor7": 4, + "mapcolor8": 1, + "mapcolor9": 3, + "mapcolor13": 12, + "pop_est": 48856, + "gdp_md_est": 1000, + "pop_year": -99, + "lastcensus": 2011, + "gdp_year": -99, + "economy": "2. Developed region: nonG7", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "FO", + "iso_a3": "FRO", + "iso_n3": "234", + "un_a3": "234", + "wb_a2": "FO", + "wb_a3": "FRO", + "woe_id": -99, + "adm0_a3_is": "FRO", + "adm0_a3_us": "FRO", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Europe", + "region_un": "Europe", + "subregion": "Northern Europe", + "region_wb": "Europe & Central Asia", + "name_len": 10, + "long_len": 14, + "abbrev_len": 10, + "tiny": 3, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -6.942567803221323, + 62.19161776035833 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "Norway", + "sov_a3": "NOR", + "adm0_dif": 0, + "level": 3, + "type": "Geo unit", + "admin": "Norway", + "adm0_a3": "NOR", + "geou_dif": 1, + "geounit": "Jan Mayen", + "gu_a3": "NJM", + "su_dif": 0, + "subunit": "Jan Mayen", + "su_a3": "NJM", + "brk_diff": 0, + "name": "Jan Mayen I.", + "name_long": "Jan Mayen Island", + "brk_a3": "NJM", + "brk_name": "Jan Mayen", + "brk_group": null, + "abbrev": "J.M.", + "postal": "JM", + "formal_en": null, + "formal_fr": null, + "note_adm0": "Nor.", + "note_brk": null, + "name_sort": "Jan Mayen I.", + "name_alt": null, + "mapcolor7": 5, + "mapcolor8": 3, + "mapcolor9": 8, + "mapcolor13": 12, + "pop_est": 20, + "gdp_md_est": -99, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "7. Least developed region", + "income_grp": "5. Low income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "-99", + "iso_a3": "-99", + "iso_n3": "-99", + "un_a3": "-099", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "SJM", + "adm0_a3_us": "NOR", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Europe", + "region_un": "Europe", + "subregion": "Northern Europe", + "region_wb": "Europe & Central Asia", + "name_len": 12, + "long_len": 16, + "abbrev_len": 4, + "tiny": -99, + "homepart": -99, + "featureclass": "Admin-0 Tiny GeoUnit" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -8.420617438175157, + 71.02824880643254 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "France", + "sov_a3": "FR1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "Saint Pierre and Miquelon", + "adm0_a3": "SPM", + "geou_dif": 0, + "geounit": "Saint Pierre and Miquelon", + "gu_a3": "SPM", + "su_dif": 0, + "subunit": "Saint Pierre and Miquelon", + "su_a3": "SPM", + "brk_diff": 0, + "name": "St. Pierre and Miquelon", + "name_long": "Saint Pierre and Miquelon", + "brk_a3": "SPM", + "brk_name": "St. Pierre and Miquelon", + "brk_group": null, + "abbrev": "St. P.M.", + "postal": "PM", + "formal_en": "Saint Pierre and Miquelon", + "formal_fr": null, + "note_adm0": "Fr.", + "note_brk": null, + "name_sort": "St. Pierre and Miquelon", + "name_alt": null, + "mapcolor7": 7, + "mapcolor8": 5, + "mapcolor9": 9, + "mapcolor13": 11, + "pop_est": 7051, + "gdp_md_est": 48.3, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "2. Developed region: nonG7", + "income_grp": "3. Upper middle income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "PM", + "iso_a3": "SPM", + "iso_n3": "666", + "un_a3": "666", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "SPM", + "adm0_a3_us": "SPM", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "North America", + "region_un": "Americas", + "subregion": "Northern America", + "region_wb": "North America", + "name_len": 23, + "long_len": 25, + "abbrev_len": 8, + "tiny": 3, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -56.31570304234327, + 46.85746558614022 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 4, + "sovereignt": "United Kingdom", + "sov_a3": "GB1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "Bermuda", + "adm0_a3": "BMU", + "geou_dif": 0, + "geounit": "Bermuda", + "gu_a3": "BMU", + "su_dif": 0, + "subunit": "Bermuda", + "su_a3": "BMU", + "brk_diff": 0, + "name": "Bermuda", + "name_long": "Bermuda", + "brk_a3": "BMU", + "brk_name": "Bermuda", + "brk_group": null, + "abbrev": "Berm.", + "postal": "BM", + "formal_en": "The Bermudas or Somers Isles", + "formal_fr": null, + "note_adm0": "U.K.", + "note_brk": null, + "name_sort": "Bermuda", + "name_alt": null, + "mapcolor7": 6, + "mapcolor8": 6, + "mapcolor9": 6, + "mapcolor13": 3, + "pop_est": 67837, + "gdp_md_est": 4500, + "pop_year": -99, + "lastcensus": 2010, + "gdp_year": -99, + "economy": "2. Developed region: nonG7", + "income_grp": "2. High income: nonOECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "BM", + "iso_a3": "BMU", + "iso_n3": "060", + "un_a3": "060", + "wb_a2": "BM", + "wb_a3": "BMU", + "woe_id": -99, + "adm0_a3_is": "BMU", + "adm0_a3_us": "BMU", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "North America", + "region_un": "Americas", + "subregion": "Northern America", + "region_wb": "North America", + "name_len": 7, + "long_len": 7, + "abbrev_len": 5, + "tiny": 4, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -64.74797798630703, + 32.307221641280876 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "Portugal", + "sov_a3": "PRT", + "adm0_dif": 0, + "level": 3, + "type": "Geo unit", + "admin": "Portugal", + "adm0_a3": "PRT", + "geou_dif": 1, + "geounit": "Azores", + "gu_a3": "PAZ", + "su_dif": 0, + "subunit": "Azores", + "su_a3": "PAZ", + "brk_diff": 0, + "name": "Azores", + "name_long": "Azores", + "brk_a3": "PAZ", + "brk_name": "Azores", + "brk_group": null, + "abbrev": "Az.", + "postal": "AZ", + "formal_en": null, + "formal_fr": null, + "note_adm0": "Port.", + "note_brk": null, + "name_sort": "Azores", + "name_alt": null, + "mapcolor7": 1, + "mapcolor8": 7, + "mapcolor9": 1, + "mapcolor13": 4, + "pop_est": 235374, + "gdp_md_est": 4492, + "pop_year": 0, + "lastcensus": -99, + "gdp_year": 0, + "economy": "2. Developed region: nonG7", + "income_grp": "1. High income: OECD", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "-99", + "iso_a3": "-99", + "iso_n3": "-99", + "un_a3": "-099", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "-99", + "adm0_a3_us": "PRT", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Seven seas (open ocean)", + "region_un": "Europe", + "subregion": "Southern Europe", + "region_wb": "Europe & Central Asia", + "name_len": 6, + "long_len": 6, + "abbrev_len": 3, + "tiny": -99, + "homepart": -99, + "featureclass": "Admin-0 Tiny GeoUnit" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -28.423474244011175, + 38.48233011770992 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 2, + "sr_label_o": 6, + "sovereignt": "Spain", + "sov_a3": "ESP", + "adm0_dif": 0, + "level": 4, + "type": "Geo subunit", + "admin": "Spain", + "adm0_a3": "ESP", + "geou_dif": 0, + "geounit": "Spain", + "gu_a3": "ESP", + "su_dif": 1, + "subunit": "Canary Islands", + "su_a3": "ESC", + "brk_diff": 0, + "name": "Canary Is.", + "name_long": "Canary Islands", + "brk_a3": "ESC", + "brk_name": "Canary Is.", + "brk_group": null, + "abbrev": "Can. Is.", + "postal": "CI", + "formal_en": null, + "formal_fr": null, + "note_adm0": "Sp.", + "note_brk": null, + "name_sort": "Canary Islands", + "name_alt": null, + "mapcolor7": 4, + "mapcolor8": 5, + "mapcolor9": 5, + "mapcolor13": 5, + "pop_est": 2098593, + "gdp_md_est": 72654.55481, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "-99", + "income_grp": "-99", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "-99", + "iso_a3": "-99", + "iso_n3": "-99", + "un_a3": "-099", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "ESP", + "adm0_a3_us": "ESP", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Africa", + "region_un": "Europe", + "subregion": "Southern Europe", + "region_wb": "Europe & Central Asia", + "name_len": 10, + "long_len": 14, + "abbrev_len": 8, + "tiny": -99, + "homepart": -99, + "featureclass": "Admin-0 Tiny GeoSubunit" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -16.592772263568634, + 28.228989968662177 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "Portugal", + "sov_a3": "PRT", + "adm0_dif": 0, + "level": 3, + "type": "Geo unit", + "admin": "Portugal", + "adm0_a3": "PRT", + "geou_dif": 1, + "geounit": "Madeira", + "gu_a3": "PMD", + "su_dif": 0, + "subunit": "Madeira", + "su_a3": "PMD", + "brk_diff": 0, + "name": "Madeira", + "name_long": "Madeira", + "brk_a3": "PMD", + "brk_name": "Madeira", + "brk_group": null, + "abbrev": "Mad.", + "postal": "MD", + "formal_en": null, + "formal_fr": null, + "note_adm0": "Port.", + "note_brk": null, + "name_sort": "Madeira", + "name_alt": null, + "mapcolor7": 1, + "mapcolor8": 7, + "mapcolor9": 1, + "mapcolor13": 4, + "pop_est": 267785, + "gdp_md_est": 6414, + "pop_year": 0, + "lastcensus": -99, + "gdp_year": 0, + "economy": "2. Developed region: nonG7", + "income_grp": "1. High income: OECD", + "wikipedia": 0, + "fips_10": null, + "iso_a2": "-99", + "iso_a3": "-99", + "iso_n3": "-99", + "un_a3": "-099", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "-99", + "adm0_a3_us": "PRT", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Africa", + "region_un": "Europe", + "subregion": "Southern Europe", + "region_wb": "Europe & Central Asia", + "name_len": 7, + "long_len": 7, + "abbrev_len": 4, + "tiny": -99, + "homepart": -99, + "featureclass": "Admin-0 Tiny GeoUnit" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -16.959751345358598, + 32.74536514049669 + ] + } + }, + { + "type": "Feature", + "properties": { + "scalerank": 2, + "sr_label_i": 3, + "sr_label_o": 6, + "sovereignt": "United Kingdom", + "sov_a3": "GB1", + "adm0_dif": 1, + "level": 2, + "type": "Dependency", + "admin": "South Georgia and South Sandwich Islands", + "adm0_a3": "SGS", + "geou_dif": 0, + "geounit": "South Georgia and South Sandwich Islands", + "gu_a3": "SGS", + "su_dif": 0, + "subunit": "South Georgia and South Sandwich Islands", + "su_a3": "SGS", + "brk_diff": 0, + "name": "S. Geo. and S. Sandw. Is.", + "name_long": "South Georgia and South Sandwich Islands", + "brk_a3": "SGS", + "brk_name": "S. Geo. and S. Sandw. Is.", + "brk_group": null, + "abbrev": "S.G. S.S. Is.", + "postal": "GS", + "formal_en": "South Georgia and South Sandwich Islands", + "formal_fr": null, + "note_adm0": "U.K.", + "note_brk": null, + "name_sort": "South Georgia and the Islands", + "name_alt": null, + "mapcolor7": 6, + "mapcolor8": 6, + "mapcolor9": 6, + "mapcolor13": 3, + "pop_est": 30, + "gdp_md_est": 0.3, + "pop_year": -99, + "lastcensus": -99, + "gdp_year": -99, + "economy": "7. Least developed region", + "income_grp": "5. Low income", + "wikipedia": -99, + "fips_10": null, + "iso_a2": "GS", + "iso_a3": "SGS", + "iso_n3": "239", + "un_a3": "-099", + "wb_a2": "-99", + "wb_a3": "-99", + "woe_id": -99, + "adm0_a3_is": "SGS", + "adm0_a3_us": "SGS", + "adm0_a3_un": -99, + "adm0_a3_wb": -99, + "continent": "Seven seas (open ocean)", + "region_un": "Seven seas (open ocean)", + "subregion": "Seven seas (open ocean)", + "region_wb": "Antarctica", + "name_len": 25, + "long_len": 40, + "abbrev_len": 13, + "tiny": 3, + "homepart": -99, + "featureclass": "Admin-0 Tiny Countries" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -36.792143407672654, + -54.274478863695265 + ] + } + } + ] +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/actions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/actions.xml index 6c17149a96..865baede0e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/actions.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/actions.xml @@ -10,6 +10,7 @@ <string name="menuitem_title_change_location_source_lost">Change to LOST location source</string> <string name="menuitem_title_change_location_source_mock">Change to mock location source</string> <string name="menuitem_title_change_location_source_null">Reset location source to null</string> + <string name="menuitem_change_icon_overlap">Toggle icon overlap</string> <string name="button_camera_move">Move</string> <string name="button_camera_ease">Ease</string> <string name="button_camera_animate">Animate</string> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml index 11ffc42a5c..4d1f7eac38 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml @@ -61,4 +61,5 @@ <string name="description_bottom_sheet">Show 2 MapView on screen with a bottom sheet</string> <string name="description_map_snapshotter">Show a static bitmap taken with the MapSnapshotter</string> <string name="description_camera_animator">Use Android SDK Animators to animate camera position changes</string> + <string name="description_symbol_generator">Use Android SDK Views as symbols</string> </resources>
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml index e52851f2db..8f394d0eb4 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml @@ -61,4 +61,5 @@ <string name="activity_bottom_sheet">Bottom sheet</string> <string name="activity_map_snapshotter">Map Snapshotter</string> <string name="activity_camera_animator">Animator animation</string> + <string name="activity_symbol_generator">SymbolGenerator</string> </resources>
\ No newline at end of file |