Например. Я хочу получить координаты всех узловых зданий в bbox.
PHP
$queryBuildings="[out:json];node['building']({$y1},{$x1},{$y2},{$x2});out;";
$data = file_get_contents("http://overpass-api.de/api/interpreter?data={$queryBuildings}")
Один элемент из результата:
{
"type": "node",
"id": 29537155,
"lat": 54.6744568,
"lon": -2.1421066,
"tags": {
"building": "house",
"description": "Abandoned (2007). Associate with lead mine workings above it?",
"name": "Flushiemere House"}
}
Ты можешь использовать скелет Распечатать Режим (out skel
), который пропускает все теги, таким образом, будучи немного короче. Таким образом, ваш запрос должен стать: [out:json];node['building']({$y1},{$x1},{$y2},{$x2});out skel;
В настоящее время CSV выход Режим ([out:csv]
) является единственным режимом, в котором вы можете выбрать поля для отображения.
<?php
$data = '{
"type": "node",
"id": 29537155,
"lat": 54.6744568,
"lon": -2.1421066,
"tags": {
"building": "house",
"description": "Abandoned (2007). Associate with lead mine workings above it?",
"name": "Flushiemere House"}
}';
$test = json_decode($data);
var_dump($test->lon);
Первое использование json_decode разобрать тело ответа:
$parsed_data = json_decode($data);
Затем вы можете получить доступ к различным полям, например, так:
$lat = $parsed_data->lat;
$lon = $parsed_data->lon;