Neredeyim? - Ülke alın


126

Bir android cep telefonu aslında nerede olduğunu oldukça iyi biliyor - ancak ülkeyi ülke kodu gibi bir şeyle geri almanın bir yolu var mı?

Kesin GPS konumunu bilmenize gerek yok - ülke yeterli

İlk önce saat dilimini kullanmayı düşündüm, ama aslında bundan daha fazla bilgiye ihtiyacım var çünkü yerin New York veya Lima olması fark yaratıyor.

Sorunun arka planı: Sıcaklık değerlerini kullanan bir uygulamam var ve konumun ABD veya dışında olmasına bağlı olarak varsayılan birimi Celsius veya Fahrenheit olarak ayarlamak istiyorum.


14
-1: Kesinlikle kullanıcı nerede olduğunu bilmek istemiyorum olduğunu . Kullanıcının yerel ayarını bilmek istiyorsunuz. Kabul edilen cevap tam da bunu yanıtlıyor, ancak burada başka türlü tamamen uygunsuz, çünkü arama, burada kullanıcının gerçekte nerede olduğunu bilmek isteyen insanları gösterecek.
Jan Hudec

Yanıtlar:


96

Bu , telefon için ülke kodunu ayarlayacaktır (telefon dili, kullanıcı konumu DEĞİL):

 String locale = context.getResources().getConfiguration().locale.getCountry(); 

ülke için 3 harfli bir ISO kodu almak için getCountry () ' yi getISO3Country () ile de değiştirebilir . Bu ülke adını alacaktır :

 String locale = context.getResources().getConfiguration().locale.getDisplayCountry();

Bu, diğer yöntemlerden daha kolay görünüyor ve telefondaki yerelleştirme ayarlarına dayanıyor, bu nedenle ABD'li bir kullanıcı yurtdışındaysa, muhtemelen Fahrenheit istiyordur ve bu işe yarayacaktır :)

Editörlerin notu : Bu çözümün telefonun konumuyla hiçbir ilgisi yoktur. Sabittir. Almanya'ya seyahat ettiğinizde yerel ayar DEĞİŞMEYECEKTİR. Kısaca: locale! = Location.


83
Bu, Android'in Yerel Ayarı olmayan ülkelerde işe yaramaz. Örneğin, İsviçre'de dil muhtemelen Almanca veya Fransızca olarak ayarlanacaktır. Bu yöntem size İsviçre'yi değil, Almanya veya Fransa'yı verecektir. LocationManager veya TelephonyManager yaklaşımını kullanmak daha iyidir.
MathewI

5
İyi çalışmıyor. Tüm Latin Amerika ülkeleri için kullanıcı ülkesini farklılaştırmam gerekiyor, telefon İngilizce veya İspanyolca dilinde olsa bile tüm test telefonları ABD'ye döndü.
htafoya

21
Bu cevap vermez başlık sorununun. Ben İngilizce telefon setine sahip ve benim ana dilidir (dünyada her yerde ilgili olabilir değil İngilizce, ama ben do (İngiliz) İngilizce benim telefon seti var. Ancak asıl soruya cevap vermez , kullanıcı ABD birimlerini eğer istediği için o, şu anda nerede olursa olsun bir ABD vatandaşı.
Ocak Hudec

2
Ülke adını almak için uygun bir çözüm değil
Aamirkhan

2
Genel olarak iyi bir cevaptır, ancak gerçek ülkeyi değil, yalnızca yerel ayarın bulunduğu ülkeyi döndürür.
dst

138
/**
 * Get ISO 3166-1 alpha-2 country code for this device (or null if not available)
 * @param context Context reference to get the TelephonyManager instance from
 * @return country code or null
 */
public static String getUserCountry(Context context) {
    try {
        final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        final String simCountry = tm.getSimCountryIso();
        if (simCountry != null && simCountry.length() == 2) { // SIM country code is available
            return simCountry.toLowerCase(Locale.US);
        }
        else if (tm.getPhoneType() != TelephonyManager.PHONE_TYPE_CDMA) { // device is not 3G (would be unreliable)
            String networkCountry = tm.getNetworkCountryIso();
            if (networkCountry != null && networkCountry.length() == 2) { // network country code is available
                return networkCountry.toLowerCase(Locale.US);
            }
        }
    }
    catch (Exception e) { }
    return null;
}

14
Yalnızca sim kartlı telefonlarda veya diğer cihazlarda çalışır. Bir WIFI tablette kullanırken, boş alacaksınız. Dolayısıyla kullanışlılığı sınırlıdır.
Bram

1
@Bram Alabileceğiniz tek şey bu. Bu yüzden aslında oldukça kullanışlıdır, sorun yalnızca WiFi özellikli bir tabletiniz varsa başka güvenilir veri kaynağınızın olmamasıdır.
gak

11
ABD'den bir kullanıcı Fransa'da tatildeyse, şunu getSimCountryIsosöyleyecek usve getNetworkCountryIsodiyecektir:fr
Tim

1
toLowerCase()Çağrıyı olarak değiştirmek isteyebilirsiniz toUpperCase().
toobsco42

Kod Adına değil Kod'a ihtiyacım var; ABD gibi +1 ABD değil
Shihab Uddin

67

Bu bağlantıyı http://ip-api.com/json kullanın , bu tüm bilgileri json olarak sağlayacaktır. Bu jsondan ülkeyi kolayca alabilirsiniz. Bu site mevcut IP'nizi kullanarak çalışır, IP ve geri gönderme ayrıntılarını otomatik olarak algılar.

Dokümanlar http://ip-api.com/docs/api:json Umarım yardımcı olur.

Örnek json

{
  "status": "success",
  "country": "United States",
  "countryCode": "US",
  "region": "CA",
  "regionName": "California",
  "city": "San Francisco",
  "zip": "94105",
  "lat": "37.7898",
  "lon": "-122.3942",
  "timezone": "America/Los_Angeles",
  "isp": "Wikimedia Foundation",
  "org": "Wikimedia Foundation",
  "as": "AS14907 Wikimedia US network",
  "query": "208.80.152.201"
}

not : Bu bir 3. taraf çözümü olduğundan, yalnızca başkaları işe yaramadıysa kullanın.


1
OP'nin tam olarak istediği şeyin bu olduğundan emin değilim, ama yine de cevabı gerçekten beğendim.
JohnnyLambada

1
Cevap gibi, çünkü bu tabletlerde de (sim olmadan) çalışacaktı. Telefon çözümü yalnızca aktif sims içeren telefonlarda çalışır. Dual sim telefonlar, farklı ülkelerden olabileceği için başka bir sorun senaryosudur. Bu nedenle, yukarıda bahsedilen IP çözümüne güvenmek muhtemelen daha mantıklıdır.
Manish Kataria

1
Sizin de belirttiğiniz gibi, soruna en iyi yaklaşım bu olmasa da, aslında geçerli bir çözüm sağlıyor. Benden +1 ve teşekkür ederim!
Matteo

1
Üçüncü şahısları kullanmak her zaman kötüdür, ne kadar kararlı olduklarını asla bilemezsiniz. örneğin - Ayrıştırma.
Nativ

1
ama sınırlamaları var. sistemleri dakikada 150'den fazla istek yapan tüm IP adreslerini otomatik olarak yasaklayacaktır.
Ram Mandal

62

Aslında, getSimCountryIso () yöntemini kullanarak ülke kodunu almanın bir yolu daha olduğunu öğrendim TelephoneManager:

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String countryCode = tm.getSimCountryIso();

Sim kodu olduğu için diğer ülkelere seyahat ederken de değişmemelidir.


43
Bu, cihazda SIM kart yoksa, örneğin tablette çalışmayabilir
thomasdao

38

Önce LocationManager'ı edinin. Ardından arayın LocationManager.getLastKnownPosition. Ardından bir GeoCoder oluşturun ve arayın GeoCoder.getFromLocation. Bunu ayrı bir başlıkta yapın !! Bu size Addressnesnelerin bir listesini verecektir . AramakAddress.getCountryName ve anladın.

Bilinen son konumun biraz eski olabileceğini unutmayın, bu nedenle kullanıcı sınırı yeni geçtiyse, bir süre bunu bilmeyebilirsiniz.


Bu uygulama için, kullanıcının Celsius veya Fahrenheit tercihi yeni topraklara girerken değişmeyeceği için ülkeleri taşırken varsayılan birimin değiştirilmesi istenmeyecektir.
stealthcopter

Kullanıcımın bir API çağrısı için hangi ülkede olduğunu bilmem gerekiyor. Çağrı, çevredeki yerleri döndürür. Bu nedenle, yalnızca kullanıcının şu anda bulunduğu gerçek ülke koduyla ilgileniyorum. Sadece yukarıdaki yaklaşımın ne için gerekli olabileceği konusunda bir fikir vermek için.
vinzenzweber

Bu, oldukça düşük derecelendirilmiştir, ancak gerçek şu ki bu en güvenilir çözümdür. Yukarıdaki ans'ların çoğu wifi ağı için çalışmıyor. @Shine_joseph tarafından sağlanan iyi görünüyor, ancak sağlanan api ticari kullanım için değil.
Gem

Dikkatle kullanın. Cihazınız, ağa bağlı olmasa bile size bir konum verecektir, ancak Geocoder, wifi kapalıysa, genellikle denemeniz / yakalamanız gereken bir istisna oluşturarak adres dizisi için bir boş döndürür.
Mike Critchley

17

Burada, LocationManager'a ve geri dönüşler olarak TelephonyManager ve Ağ Sağlayıcısının konumlarına dayalı eksiksiz bir çözüm bulunmaktadır. Geri dönüş bölümü için @Marco W.'nin yukarıdaki cevabını kullandım (kendisi gibi harika bir cevap!).

Not: Kod, PreferencesManager'ı içerir, bu, SharedPrefrences'ten veri kaydedip yükleyen yardımcı bir sınıftır. Ülkeyi S "P'ye kaydetmek için kullanıyorum, sadece boşsa ülkeyi alıyorum. Ürünüm için tüm uç durumları gerçekten umursamıyorum (kullanıcı yurtdışına seyahat ediyor vb.).

public static String getCountry(Context context) {
    String country = PreferencesManager.getInstance(context).getString(COUNTRY);
    if (country != null) {
        return country;
    }

    LocationManager locationManager = (LocationManager) PiplApp.getInstance().getSystemService(Context.LOCATION_SERVICE);
    if (locationManager != null) {
        Location location = locationManager
                .getLastKnownLocation(LocationManager.GPS_PROVIDER);
        if (location == null) {
            location = locationManager
                    .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        }
        if (location == null) {
            log.w("Couldn't get location from network and gps providers")
            return
        }
        Geocoder gcd = new Geocoder(context, Locale.getDefault());
        List<Address> addresses;
        try {
            addresses = gcd.getFromLocation(location.getLatitude(),
                    location.getLongitude(), 1);

            if (addresses != null && !addresses.isEmpty()) {
                country = addresses.get(0).getCountryName();
                if (country != null) {
                    PreferencesManager.getInstance(context).putString(COUNTRY, country);
                    return country;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    country = getCountryBasedOnSimCardOrNetwork(context);
    if (country != null) {
        PreferencesManager.getInstance(context).putString(COUNTRY, country);
        return country;
    }
    return null;
}


/**
 * Get ISO 3166-1 alpha-2 country code for this device (or null if not available)
 *
 * @param context Context reference to get the TelephonyManager instance from
 * @return country code or null
 */
private static String getCountryBasedOnSimCardOrNetwork(Context context) {
    try {
        final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        final String simCountry = tm.getSimCountryIso();
        if (simCountry != null && simCountry.length() == 2) { // SIM country code is available
            return simCountry.toLowerCase(Locale.US);
        } else if (tm.getPhoneType() != TelephonyManager.PHONE_TYPE_CDMA) { // device is not 3G (would be unreliable)
            String networkCountry = tm.getNetworkCountryIso();
            if (networkCountry != null && networkCountry.length() == 2) { // network country code is available
                return networkCountry.toLowerCase(Locale.US);
            }
        }
    } catch (Exception e) {
    }
    return null;
}

4
Üzgünüm ama cevabınızın gerçekten yeniden yazılması gerekiyor. Kod, çok sayıda kullanılamayan kod içeriyor.
ichalos

@ichalos veya mantığı anlamadınız. Lütfen bana bu pasajda kullanılmayan 1 kod örneği verin
Nativ

2
Elbette mantığı çözdüm ve lütfen yanlış anlamayın. PipplApp, PrefernecesManager vb. Kaldırılmış olabilir ve sunulan çözüm okuyucular için biraz daha açık olabilirdi.
ichalos

@ichalos PiplApp hakkında Size% 100 katılıyorum, sadece kaldırıyorum
Nativ

Orada country = addresses.get(0).getCountryName();değişkene ülkenin tam adını koyacağız kodunuzda, içinde country. Aynı zamanda yöntemde getCountryBasedOnSimCardOrNetwork(Context context)ülkenin ISO kodunu döndürüyorsunuz. Yazmak istediğine inanıyorum country = addresses.get(0).getCountryCode();:-)
Firzen

15

Telefonun şu anda bulunduğu ülkeyi almak için ' getNetworkCountryIso()danTelephonyManager kullanabilirsiniz (görünüşe göre bu CDMA şebekelerinde güvenilmezdir).


bu kulağa oldukça basit geliyor ve ilk etapta emülatörde iyi çalıştı - sadece CDMA ağlarında neden güvenilmez olduğunu açıklayabilir misiniz?
DonGru

ah tamam, anladım - çünkü dokümantasyon öyle diyor :)
DonGru

Uygulama nedeniyle, bir kullanıcı yurtdışına gittiğinde varsayılan birimi değişeceği için bu en iyi çözüm olmayacaktır. Telefonun yerel ayarlarına dayanan statik bir varsayılan birime sahip olmak daha mantıklı olacaktır, bu daha sonra bir yerde bir ayarda değiştirilebilir.
stealthcopter

5
String locale = context.getResources().getConfiguration().locale.getCountry(); 

Kullanımdan kaldırıldı. Bunun yerine şunu kullanın:

Locale locale;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    locale = context.getResources().getConfiguration().getLocales().get(0);
} else {
    locale = context.getResources().getConfiguration().locale;
}

1
İzin gerektiriyor mu ve hangi ülkeyi gösteriyor?
CoolMind

4

Bazı cihazlar için, varsayılan dil farklı ayarlanmışsa (bir Hintli İngilizce'yi (ABD) ayarlayabilir)

context.getResources().getConfiguration().locale.getDisplayCountry();

yanlış değer verecektir. Dolayısıyla bu yöntem güvenilir değildir

Ayrıca, TelephonyManager'ın getNetworkCountryIso () yöntemi SIM kartı olmayan cihazlarda (WIFI tabletler) çalışmayacaktır.

Bir cihazda SIM yoksa, ülkeyi almak için Saat Dilimini kullanabiliriz. Hindistan gibi ülkeler için bu yöntem işe yarayacak

Ülkenin Hindistan olup olmadığını kontrol etmek için kullanılan örnek kod (Saat dilimi kimliği: asia / calcutta)

private void checkCountry() {


    TelephonyManager telMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    if (telMgr == null)
        return;

    int simState = telMgr.getSimState();

    switch (simState) {
        //if sim is not available then country is find out using timezone id
        case TelephonyManager.SIM_STATE_ABSENT:
            TimeZone tz = TimeZone.getDefault();
            String timeZoneId = tz.getID();
            if (timeZoneId.equalsIgnoreCase(Constants.INDIA_TIME_ZONE_ID)) {
               //do something
            } else {
               //do something
            }
            break;

            //if sim is available then telephony manager network country info is used
        case TelephonyManager.SIM_STATE_READY:

           TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
            if (tm != null) {
                String countryCodeValue = tm.getNetworkCountryIso();
                //check if the network country code is "in"
                if (countryCodeValue.equalsIgnoreCase(Constants.NETWORK_INDIA_CODE)) {
                   //do something
                }

                else {
                   //do something
                }

            }
            break;

    }
}

1
güzel fikir ama Saat dilimi ülkeye özgü bir özellik değil biliyorsunuz değil mi? Her 15 derece meridyen için başka bir zaman dilimi vb.
Vardır

3

Enlem ve boylam ile GPS kullanarak, Ülke kodunu alabiliriz.

Telefon kullanırsak sim kart kullanmıyorsak çalışmaz ve dil bazında yerel olarak ülke kodunu yanlış gösterir.

MainActivity.java:

    GPSTracker gpsTrack;
    public static double latitude = 0;
    public static double longitude = 0;

    gpsTrack = new GPSTracker(TabHomeActivity.this);

        if (gpsTrack.canGetLocation()) {
            latitude = gpsParty.getLatitude();
            longitude = gpsParty.getLongitude();

            Log.e("GPSLat", "" + latitude);
            Log.e("GPSLong", "" + longitude);

        } else {
            gpsTrack.showSettingsAlert();

            Log.e("ShowAlert", "ShowAlert");

        }

        countryCode = getAddress(TabHomeActivity.this, latitude, longitude);

        Log.e("countryCode", ""+countryCode);

   public String getAddress(Context ctx, double latitude, double longitude) {
    String region_code = null;
    try {
        Geocoder geocoder = new Geocoder(ctx, Locale.getDefault());
        List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
        if (addresses.size() > 0) {
            Address address = addresses.get(0);


            region_code = address.getCountryCode();


        }
    } catch (IOException e) {
        Log.e("tag", e.getMessage());
    }

    return region_code;
}

GPSTracker.java:

import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
import android.util.Log;

public class GPSTracker extends Service implements LocationListener {

    private final Context mContext;

    // flag for GPS status
    boolean isGPSEnabled = false;

    // flag for network status
    boolean isNetworkEnabled = false;

    // flag for GPS status
    boolean canGetLocation = false;

    Location location; // location
    double latitude; // latitude
    double longitude; // longitude

    // The minimum distance to change Updates in meters
    private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters

    // The minimum time between updates in milliseconds
    private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 minute

    // Declaring a Location Manager
    protected LocationManager locationManager;

    public GPSTracker(Context context) {
        this.mContext = context;
        getLocation();
    }

    public Location getLocation() {
        try {
            locationManager = (LocationManager) mContext
                    .getSystemService(LOCATION_SERVICE);

            // getting GPS status
            isGPSEnabled = locationManager
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);

            // getting network status
            isNetworkEnabled = locationManager
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

            if (!isGPSEnabled && !isNetworkEnabled) {
                // no network provider is enabled
            } else {
                this.canGetLocation = true;
                // First get location from Network Provider
                if (isNetworkEnabled) {
                    locationManager.requestLocationUpdates(
                            LocationManager.NETWORK_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    Log.d("Network", "Network");
                    if (locationManager != null) {
                        location = locationManager
                                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                        if (location != null) {
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
                        }
                    }
                }
                // if GPS Enabled get lat/long using GPS Services
                if (isGPSEnabled) {
                    if (location == null) {
                        locationManager.requestLocationUpdates(
                                LocationManager.GPS_PROVIDER,
                                MIN_TIME_BW_UPDATES,
                                MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                        Log.d("GPS Enabled", "GPS Enabled");
                        if (locationManager != null) {
                            location = locationManager
                                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();
                            }
                        }
                    }
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return location;
    }

    /**
     * Stop using GPS listener
     * Calling this function will stop using GPS in your app
     * */
    public void stopUsingGPS(){
        if(locationManager != null){
            locationManager.removeUpdates(GPSTracker.this);
        }
    }

    /**
     * Function to get latitude
     * */
    public double getLatitude(){
        if(location != null){
            latitude = location.getLatitude();
        }

        // return latitude
        return latitude;
    }

    /**
     * Function to get longitude
     * */
    public double getLongitude(){
        if(location != null){
            longitude = location.getLongitude();
        }

        // return longitude
        return longitude;
    }

    /**
     * Function to check GPS/wifi enabled
     * @return boolean
     * */
    public boolean canGetLocation() {
        return this.canGetLocation;
    }



    public void showSettingsAlert() {
        final AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
        builder.setMessage("Your GPS seems to be disabled, do you want to enable it?")
                .setCancelable(false)
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                        mContext.startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
                    }
                })
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                        dialog.cancel();
                    }
                });
        final AlertDialog alert = builder.create();
        alert.show();
    }

    @Override
    public void onLocationChanged(Location location) {
    }

    @Override
    public void onProviderDisabled(String provider) {
    }

    @Override
    public void onProviderEnabled(String provider) {
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

}

Log:

E / ülkeKodu: GİRİŞ

Düzenleme: Daha iyi sonuç için enlem ve boylam güncellemesi almak için Sigortalı Konum Sağlayıcı'yı kullanın .


GpsParty () nedir? Tanımlanmadı
Nikola C

-2

GEOIP db kullandım ve bir işlev oluşturdum. Bu bağlantıyı doğrudan http://jamhubsoftware.com/geoip/getcountry.php kullanabilirsiniz.

{"country":["India"],"isoCode":["IN"],"names":[{"de":"Indien","en":"India","es":"India","fr":"Inde","ja":"\u30a4\u30f3\u30c9","pt-BR":"\u00cdndia","ru":"\u0418\u043d\u0434\u0438\u044f","zh-CN":"\u5370\u5ea6"}]}

autoload.php ve .mmdb dosyasını https://dev.maxmind.com/geoip/geoip2/geolite2/ adresinden indirebilirsiniz.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$ip_address = $_SERVER['REMOTE_ADDR'];
//$ip_address = '3.255.255.255';

require_once 'vendor/autoload.php';

use GeoIp2\Database\Reader;

// This creates the Reader object, which should be reused across
// lookups.
$reader = new Reader('/var/www/html/geoip/GeoLite2-City.mmdb');

// Replace "city" with the appropriate method for your database, e.g.,
// "country".
$record = $reader->city($ip_address);

//print($record->country->isoCode . "\n"); // 'US'
//print($record->country->name . "\n"); // 'United States'
$rows['country'][] = $record->country->name;
$rows['isoCode'][] = $record->country->isoCode;
$rows['names'][] = $record->country->names;
print json_encode($rows);
//print($record->country->names['zh-CN'] . "\n"); // '美国'
//
//print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota'
//print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN'
//
//print($record->city->name . "\n"); // 'Minneapolis'
//
//print($record->postal->code . "\n"); // '55455'
//
//print($record->location->latitude . "\n"); // 44.9733
//print($record->location->longitude . "\n"); // -93.2323
?>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.