Можно установить поля, которые я хочу получить в api & amp; overpass;

Например. Я хочу получить координаты всех узловых зданий в 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"}
}

2

Решение

Ты можешь использовать скелет Распечатать Режим (out skel), который пропускает все теги, таким образом, будучи немного короче. Таким образом, ваш запрос должен стать: [out:json];node['building']({$y1},{$x1},{$y2},{$x2});out skel;

В настоящее время CSV выход Режим ([out:csv]) является единственным режимом, в котором вы можете выбрать поля для отображения.

1

Другие решения

<?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);
0

Первое использование json_decode разобрать тело ответа:

$parsed_data = json_decode($data);

Затем вы можете получить доступ к различным полям, например, так:

$lat = $parsed_data->lat;
$lon = $parsed_data->lon;
0
По вопросам рекламы [email protected]