Sook Lim
Sook Lim

Reputation: 551

Is there a way to get country capital from country name in android?

Hi I'm new to android and currently I have an app that gets that displays a google map.When the user touches on a country, I get the country's name like that:

addresses = geocoder.getFromLocation(point.latitude, point.longitude, 1);
 selectedCountry = address.getCountryName();

I pass this country name in an intent to a new activity to display the name and capital?But I don't know how to get the capital from the name?

Upvotes: 1

Views: 2424

Answers (3)

Jabrove
Jabrove

Reputation: 863

You can use this simple package package:(https://github.com/KosayJabre/Country-Capitals)

Install it with:

pip install country_capitals

Then do:

from country_capitals import get_capital

get_capital("Germany")
get_capital("Germ", fuzzy=True)

Upvotes: 0

[{"name":"Afghanistan","capital":"Kabul"},{"name":"Åland Islands","capital":"Mariehamn"},{"name":"Albania","capital":"Tirana"},{"name":"Algeria","capital":"Algiers"},{"name":"American Samoa","capital":"Pago Pago"},{"name":"Andorra","capital":"Andorra la Vella"},{"name":"Angola","capital":"Luanda"},{"name":"Anguilla","capital":"The Valley"},{"name":"Antarctica","capital":""},{"name":"Antigua and Barbuda","capital":"Saint John's"},{"name":"Argentina","capital":"Buenos Aires"},{"name":"Armenia","capital":"Yerevan"},{"name":"Aruba","capital":"Oranjestad"},{"name":"Australia","capital":"Canberra"},{"name":"Austria","capital":"Vienna"},{"name":"Azerbaijan","capital":"Baku"},{"name":"Bahamas","capital":"Nassau"},{"name":"Bahrain","capital":"Manama"},{"name":"Bangladesh","capital":"Dhaka"},{"name":"Barbados","capital":"Bridgetown"},{"name":"Belarus","capital":"Minsk"},{"name":"Belgium","capital":"Brussels"},{"name":"Belize","capital":"Belmopan"},{"name":"Benin","capital":"Porto-Novo"},{"name":"Bermuda","capital":"Hamilton"},{"name":"Bhutan","capital":"Thimphu"},{"name":"Bolivia (Plurinational State of)","capital":"Sucre"},{"name":"Bonaire, Sint Eustatius and Saba","capital":"Kralendijk"},{"name":"Bosnia and Herzegovina","capital":"Sarajevo"},{"name":"Botswana","capital":"Gaborone"},{"name":"Bouvet Island","capital":""},{"name":"Brazil","capital":"Brasília"},{"name":"British Indian Ocean Territory","capital":"Diego Garcia"},{"name":"United States Minor Outlying Islands","capital":""},{"name":"Virgin Islands (British)","capital":"Road Town"},{"name":"Virgin Islands (U.S.)","capital":"Charlotte Amalie"},{"name":"Brunei Darussalam","capital":"Bandar Seri Begawan"},{"name":"Bulgaria","capital":"Sofia"},{"name":"Burkina Faso","capital":"Ouagadougou"},{"name":"Burundi","capital":"Bujumbura"},{"name":"Cambodia","capital":"Phnom Penh"},{"name":"Cameroon","capital":"Yaoundé"},{"name":"Canada","capital":"Ottawa"},{"name":"Cabo Verde","capital":"Praia"},{"name":"Cayman Islands","capital":"George Town"},{"name":"Central African Republic","capital":"Bangui"},{"name":"Chad","capital":"N'Djamena"},{"name":"Chile","capital":"Santiago"},{"name":"China","capital":"Beijing"},{"name":"Christmas Island","capital":"Flying Fish Cove"},{"name":"Cocos (Keeling) Islands","capital":"West Island"},{"name":"Colombia","capital":"Bogotá"},{"name":"Comoros","capital":"Moroni"},{"name":"Congo","capital":"Brazzaville"},{"name":"Congo (Democratic Republic of the)","capital":"Kinshasa"},{"name":"Cook Islands","capital":"Avarua"},{"name":"Costa Rica","capital":"San José"},{"name":"Croatia","capital":"Zagreb"},{"name":"Cuba","capital":"Havana"},{"name":"Curaçao","capital":"Willemstad"},{"name":"Cyprus","capital":"Nicosia"},{"name":"Czech Republic","capital":"Prague"},{"name":"Denmark","capital":"Copenhagen"},{"name":"Djibouti","capital":"Djibouti"},{"name":"Dominica","capital":"Roseau"},{"name":"Dominican Republic","capital":"Santo Domingo"},{"name":"Ecuador","capital":"Quito"},{"name":"Egypt","capital":"Cairo"},{"name":"El Salvador","capital":"San Salvador"},{"name":"Equatorial Guinea","capital":"Malabo"},{"name":"Eritrea","capital":"Asmara"},{"name":"Estonia","capital":"Tallinn"},{"name":"Ethiopia","capital":"Addis Ababa"},{"name":"Falkland Islands (Malvinas)","capital":"Stanley"},{"name":"Faroe Islands","capital":"Tórshavn"},{"name":"Fiji","capital":"Suva"},{"name":"Finland","capital":"Helsinki"},{"name":"France","capital":"Paris"},{"name":"French Guiana","capital":"Cayenne"},{"name":"French Polynesia","capital":"Papeetē"},{"name":"French Southern Territories","capital":"Port-aux-Français"},{"name":"Gabon","capital":"Libreville"},{"name":"Gambia","capital":"Banjul"},{"name":"Georgia","capital":"Tbilisi"},{"name":"Germany","capital":"Berlin"},{"name":"Ghana","capital":"Accra"},{"name":"Gibraltar","capital":"Gibraltar"},{"name":"Greece","capital":"Athens"},{"name":"Greenland","capital":"Nuuk"},{"name":"Grenada","capital":"St. George's"},{"name":"Guadeloupe","capital":"Basse-Terre"},{"name":"Guam","capital":"Hagåtña"},{"name":"Guatemala","capital":"Guatemala City"},{"name":"Guernsey","capital":"St. Peter Port"},{"name":"Guinea","capital":"Conakry"},{"name":"Guinea-Bissau","capital":"Bissau"},{"name":"Guyana","capital":"Georgetown"},{"name":"Haiti","capital":"Port-au-Prince"},{"name":"Heard Island and McDonald Islands","capital":""},{"name":"Holy See","capital":"Rome"},{"name":"Honduras","capital":"Tegucigalpa"},{"name":"Hong Kong","capital":"City of Victoria"},{"name":"Hungary","capital":"Budapest"},{"name":"Iceland","capital":"Reykjavík"},{"name":"India","capital":"New Delhi"},{"name":"Indonesia","capital":"Jakarta"},{"name":"Côte d'Ivoire","capital":"Yamoussoukro"},{"name":"Iran (Islamic Republic of)","capital":"Tehran"},{"name":"Iraq","capital":"Baghdad"},{"name":"Ireland","capital":"Dublin"},{"name":"Isle of Man","capital":"Douglas"},{"name":"Israel","capital":"Jerusalem"},{"name":"Italy","capital":"Rome"},{"name":"Jamaica","capital":"Kingston"},{"name":"Japan","capital":"Tokyo"},{"name":"Jersey","capital":"Saint Helier"},{"name":"Jordan","capital":"Amman"},{"name":"Kazakhstan","capital":"Astana"},{"name":"Kenya","capital":"Nairobi"},{"name":"Kiribati","capital":"South Tarawa"},{"name":"Kuwait","capital":"Kuwait City"},{"name":"Kyrgyzstan","capital":"Bishkek"},{"name":"Lao People's Democratic Republic","capital":"Vientiane"},{"name":"Latvia","capital":"Riga"},{"name":"Lebanon","capital":"Beirut"},{"name":"Lesotho","capital":"Maseru"},{"name":"Liberia","capital":"Monrovia"},{"name":"Libya","capital":"Tripoli"},{"name":"Liechtenstein","capital":"Vaduz"},{"name":"Lithuania","capital":"Vilnius"},{"name":"Luxembourg","capital":"Luxembourg"},{"name":"Macao","capital":""},{"name":"Macedonia (the former Yugoslav Republic of)","capital":"Skopje"},{"name":"Madagascar","capital":"Antananarivo"},{"name":"Malawi","capital":"Lilongwe"},{"name":"Malaysia","capital":"Kuala Lumpur"},{"name":"Maldives","capital":"Malé"},{"name":"Mali","capital":"Bamako"},{"name":"Malta","capital":"Valletta"},{"name":"Marshall Islands","capital":"Majuro"},{"name":"Martinique","capital":"Fort-de-France"},{"name":"Mauritania","capital":"Nouakchott"},{"name":"Mauritius","capital":"Port Louis"},{"name":"Mayotte","capital":"Mamoudzou"},{"name":"Mexico","capital":"Mexico City"},{"name":"Micronesia (Federated States of)","capital":"Palikir"},{"name":"Moldova (Republic of)","capital":"Chișinău"},{"name":"Monaco","capital":"Monaco"},{"name":"Mongolia","capital":"Ulan Bator"},{"name":"Montenegro","capital":"Podgorica"},{"name":"Montserrat","capital":"Plymouth"},{"name":"Morocco","capital":"Rabat"},{"name":"Mozambique","capital":"Maputo"},{"name":"Myanmar","capital":"Naypyidaw"},{"name":"Namibia","capital":"Windhoek"},{"name":"Nauru","capital":"Yaren"},{"name":"Nepal","capital":"Kathmandu"},{"name":"Netherlands","capital":"Amsterdam"},{"name":"New Caledonia","capital":"Nouméa"},{"name":"New Zealand","capital":"Wellington"},{"name":"Nicaragua","capital":"Managua"},{"name":"Niger","capital":"Niamey"},{"name":"Nigeria","capital":"Abuja"},{"name":"Niue","capital":"Alofi"},{"name":"Norfolk Island","capital":"Kingston"},{"name":"Korea (Democratic People's Republic of)","capital":"Pyongyang"},{"name":"Northern Mariana Islands","capital":"Saipan"},{"name":"Norway","capital":"Oslo"},{"name":"Oman","capital":"Muscat"},{"name":"Pakistan","capital":"Islamabad"},{"name":"Palau","capital":"Ngerulmud"},{"name":"Palestine, State of","capital":"Ramallah"},{"name":"Panama","capital":"Panama City"},{"name":"Papua New Guinea","capital":"Port Moresby"},{"name":"Paraguay","capital":"Asunción"},{"name":"Peru","capital":"Lima"},{"name":"Philippines","capital":"Manila"},{"name":"Pitcairn","capital":"Adamstown"},{"name":"Poland","capital":"Warsaw"},{"name":"Portugal","capital":"Lisbon"},{"name":"Puerto Rico","capital":"San Juan"},{"name":"Qatar","capital":"Doha"},{"name":"Republic of Kosovo","capital":"Pristina"},{"name":"Réunion","capital":"Saint-Denis"},{"name":"Romania","capital":"Bucharest"},{"name":"Russian Federation","capital":"Moscow"},{"name":"Rwanda","capital":"Kigali"},{"name":"Saint Barthélemy","capital":"Gustavia"},{"name":"Saint Helena, Ascension and Tristan da Cunha","capital":"Jamestown"},{"name":"Saint Kitts and Nevis","capital":"Basseterre"},{"name":"Saint Lucia","capital":"Castries"},{"name":"Saint Martin (French part)","capital":"Marigot"},{"name":"Saint Pierre and Miquelon","capital":"Saint-Pierre"},{"name":"Saint Vincent and the Grenadines","capital":"Kingstown"},{"name":"Samoa","capital":"Apia"},{"name":"San Marino","capital":"City of San Marino"},{"name":"Sao Tome and Principe","capital":"São Tomé"},{"name":"Saudi Arabia","capital":"Riyadh"},{"name":"Senegal","capital":"Dakar"},{"name":"Serbia","capital":"Belgrade"},{"name":"Seychelles","capital":"Victoria"},{"name":"Sierra Leone","capital":"Freetown"},{"name":"Singapore","capital":"Singapore"},{"name":"Sint Maarten (Dutch part)","capital":"Philipsburg"},{"name":"Slovakia","capital":"Bratislava"},{"name":"Slovenia","capital":"Ljubljana"},{"name":"Solomon Islands","capital":"Honiara"},{"name":"Somalia","capital":"Mogadishu"},{"name":"South Africa","capital":"Pretoria"},{"name":"South Georgia and the South Sandwich Islands","capital":"King Edward Point"},{"name":"Korea (Republic of)","capital":"Seoul"},{"name":"South Sudan","capital":"Juba"},{"name":"Spain","capital":"Madrid"},{"name":"Sri Lanka","capital":"Colombo"},{"name":"Sudan","capital":"Khartoum"},{"name":"Suriname","capital":"Paramaribo"},{"name":"Svalbard and Jan Mayen","capital":"Longyearbyen"},{"name":"Swaziland","capital":"Lobamba"},{"name":"Sweden","capital":"Stockholm"},{"name":"Switzerland","capital":"Bern"},{"name":"Syrian Arab Republic","capital":"Damascus"},{"name":"Taiwan","capital":"Taipei"},{"name":"Tajikistan","capital":"Dushanbe"},{"name":"Tanzania, United Republic of","capital":"Dodoma"},{"name":"Thailand","capital":"Bangkok"},{"name":"Timor-Leste","capital":"Dili"},{"name":"Togo","capital":"Lomé"},{"name":"Tokelau","capital":"Fakaofo"},{"name":"Tonga","capital":"Nuku'alofa"},{"name":"Trinidad and Tobago","capital":"Port of Spain"},{"name":"Tunisia","capital":"Tunis"},{"name":"Turkey","capital":"Ankara"},{"name":"Turkmenistan","capital":"Ashgabat"},{"name":"Turks and Caicos Islands","capital":"Cockburn Town"},{"name":"Tuvalu","capital":"Funafuti"},{"name":"Uganda","capital":"Kampala"},{"name":"Ukraine","capital":"Kiev"},{"name":"United Arab Emirates","capital":"Abu Dhabi"},{"name":"United Kingdom of Great Britain and Northern Ireland","capital":"London"},{"name":"United States of America","capital":"Washington, D.C."},{"name":"Uruguay","capital":"Montevideo"},{"name":"Uzbekistan","capital":"Tashkent"},{"name":"Vanuatu","capital":"Port Vila"},{"name":"Venezuela (Bolivarian Republic of)","capital":"Caracas"},{"name":"Viet Nam","capital":"Hanoi"},{"name":"Wallis and Futuna","capital":"Mata-Utu"},{"name":"Western Sahara","capital":"El Aaiún"},{"name":"Yemen","capital":"Sana'a"},{"name":"Zambia","capital":"Lusaka"},{"name":"Zimbabwe","capital":"Harare"}]

Steps:

1.Create a countrycapitals.json document and copy above json data into that. 2.Create a assets folder inside main(/Desktop/TestApp/app/src/main/) folder of app and copy countrycapitals.json file to this assets folder.

3.On your activity paste below code.

    String country_name = "selectedCountry";

    try {
        JSONArray jsonArray = new JSONArray(loadJSONFromAsset());

        for (int i = 0; i < jsonArray.length(); i++) {

            JSONObject jsonObject = jsonArray.getJSONObject(i);

            String cou_name = jsonObject.getString("name");
            String cou_cap = jsonObject.getString("capital");

            if (cou_name.equalsIgnoreCase(country_name)) {
                Toast.makeText(this, "capital " + cou_cap, Toast.LENGTH_SHORT).show();
                //Here you will get the capital of respected country.
                break;
            }

        }


    } catch (Exception e) {

    }

4.Place the below function in your activity to read json data from assets folder.

public String loadJSONFromAsset() {
    String json = null;
    try {
        InputStream is = getAssets().open("capitals.json");
        int size = is.available();
        byte[] buffer = new byte[size];
        is.read(buffer);
        is.close();
        json = new String(buffer, "UTF-8");
    } catch (IOException ex) {
        ex.printStackTrace();
        return null;
    }
    return json;
}

Upvotes: 0

Yohann L.
Yohann L.

Reputation: 1451

Solution 1 : You can do it using this link : https://restcountries.eu/rest/v2/name/{YourNameCountry}

You can retrieve a JSON from it containing information about the country including the capital.

See also : Get JSON Data from URL Using Android? Then it's a simple request on a JSON Object.

Solution 2 : Same way but if you don't need all informations about the country you can just retrieve the capital using :

https://restcountries.eu/rest/v2/name/{YourNameCountry}?fields=capital

Solution 3 : If you don't want to retrieve the JSON file from internet you can just download it and store it in your app.

All country with full informations : https://restcountries.eu/rest/v2/all All country with capital only : https://restcountries.eu/rest/v2/all?fields=name;capital

Upvotes: 3

Related Questions