Обратный геокодинг в автонавите Map Web Server API использовал на этот раз
Если geoip получает географическое местоположение, соответствующее вашим потребностям, вы можете перейти к:nuggets.capable/post/684490…
Описание товара
API геокодирования/обратного геокодирования — это интерфейс для доступа к удаленным службам по протоколу HTTP/HTTPS, обеспечивающий возможность преобразования между структурированными адресами и широтой и долготой.
Определение структурированного адреса: Прежде всего, адрес должен быть строкой символов, включая названия стран, провинций, городов, районов, поселков, деревень, улиц, номеров домов, жилых массивов, зданий и других названий зданий. Следуйте символам, сгруппированным вместе, от имени большой области к имени маленькой области. Действительный адрес должен быть уникальным. Примечание. Информацию о стране можно выборочно игнорировать при преобразовании геокодирования для материкового региона, Гонконга и Макао, но нельзя игнорировать состав адресов на уровне провинции, города, поселка и других уровней.
Применимая сцена
- Geocoding: преобразует подробные структурированные адреса к высокой немецкой широте и долготу координаты. И он поддерживает разрешение ориентирных сценических пятен и названий здания в широту и долготу координаты гадости.
Структурированный адрес Адрес: Чаоянский район, Пекин Фу Тонг Восточная улица, после преобразования 6 координат: 116.480881,39.989410
Пример знакового здания: площадь Тяньаньмэнь после переоборудования: 116.397499, 39.908722 - Обратное геокодирование: преобразуйте широту и долготу в подробный структурированный адрес и возвращайте информацию о POI и AOI поблизости.
Например: 116.480881,39.989410 После преобразования описания адреса: No. 6, Futong East Street, Chaoyang District, Beijing
Инструкции по применению
первый шаг,Подать заявку на ключ типа API веб-службы;
На втором этапе эталонный документ параметров интерфейса инициирует запрос HTTP/HTTPS, и на первом этапе будут отправлены требуемые параметры;
Третий шаг — получить данные, возвращенные запросом (в формате JSON или XML), и проанализировать данные, обратившись к возвращаемому документу параметров.
Если нет специального объявления, все входные параметры и кодировка выходных данных интерфейса унифицированы в кодировке UTF-8.
Адрес службы API обратного геокодирования
https://restapi.amap.com/v3/geocode/geo?parameters
address — это структурированный адрес, по которому необходимо получить координаты, output (XML) используется для указания формата возвращаемых данных, а Key — идентификатор пользователя, запрашивающего данные.
city — город указанного запроса (необязательный параметр)
Адрес службы API обратного геокодирования
https://restapi.amap.com/v3/geocode/regeo?parameters
location(116.310003,39.991957) — это широта и долгота точки координат, которые нужно преобразовать, radius (1000) — это диапазон возвращаемых ближайших POI, единица измерения: метры, extensions(all) — это содержимое возвращаемых данных и выходные данные. (XML) используется для указания формата возвращаемых данных, ключ — это ключ веб-службы AutoNavi.
Эта демонстрация реализована в фреймворке laravel (другие фреймворки могут быть реализованы таким же образом)
/**
* 将详细的结构化地址转换为高德经纬度坐标-高德地图-地理编码
* @param string $address 填写结构化地址信息:省份+城市+区县+城镇+乡村+街道+门牌号码
* @param string $city 查询城市,可选:城市中文、中文全拼、citycode、adcode
* @return array
*/
public function geo($address = '', $city = '北京')
{
$key = config('app.amap_key');
/**
* url:https://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&output=XML&key=<用户的key>
* output(XML/JSON)用于指定返回数据的格式
*/
$url = "https://restapi.amap.com/v3/geocode/geo?output=JSON&key={$key}&address={$address}&city={$city}";
// 执行请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
$result = json_decode($data, true);
return $result;
}
/**
* 根据经纬度获取地理位置-高德地图-逆地理编码
* @param string $lon 经度
* @param string $lat 纬度
* @return array
*/
public function regeo($lon, $lat)
{
// Key 是高德Web服务 Key。详细可以参考上方的请求参数说明。
$key = config('app.amap_key');
// location(116.310003,39.991957) 是所需要转换的坐标点经纬度,经度在前,纬度在后,经纬度间以“,”分割
$location = $lon . "," . $lat;
/**
* url:https://restapi.amap.com/v3/geocode/regeo?output=xml&location=116.310003,39.991957&key=<用户的key>&radius=1000&extensions=all
* radius(1000)为返回的附近POI的范围,单位:米
* extensions 参数默认取值是 base,也就是返回基本地址信息
* extensions 参数取值为 all 时会返回基本地址信息、附近 POI 内容、道路信息以及道路交叉口信息。
* output(XML/JSON)用于指定返回数据的格式
*/
$url = "https://restapi.amap.com/v3/geocode/regeo?output=JSON&location={$location}&key={$key}&radius=1000&extensions=base";
// 执行请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
$result = json_decode($data, true);
return $result;
}
Вам нужно передать широту и долготу, чтобы получить текущее географическое положение, подробности см. в комментариях к коду.
Если проблемы не устранены, обратитесь к документации по конкретному API:Не удается подключиться. Amapa.com/API/Web Color RV…