Где я? - Получить страну - PullRequest
       3

Где я? - Получить страну

119 голосов
/ 07 сентября 2010

Мобильный андроид на самом деле довольно хорошо знает, где он находится - но есть ли способ узнать страну по что-то вроде кода страны?

Не нужно знать точное положение GPS - страны достаточно

Сначала я подумал об использовании часового пояса, но на самом деле мне нужно больше информации, чем это, поскольку это имеет значение, если местоположение - Нью-Йорк или Лима.

Справочная информация о вопросе: У меня есть приложение, которое использует значения температуры, и я хотел бы установить единицы измерения по умолчанию либо в градусах Цельсия, либо в градусах Фаренгейта, в зависимости от того, где находится США или за пределами

Ответы [ 11 ]

0 голосов
/ 04 февраля 2016

Я использовал GEOIP db и создал функцию.Вы можете использовать эту ссылку напрямую http://jamhubsoftware.com/geoip/getcountry.php

{"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 и .mmdb из https://dev.maxmind.com/geoip/geoip2/geolite2/

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
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...