gpt4 book ai didi

php - 如何使用 PHP 访问 OpenStreetMap API 数据?

转载 作者:行者123 更新时间:2023-12-04 12:39:29 30 4
gpt4 key购买 nike

我正在尝试使用 PHP 访问 OpenStreetMap 数据,但我找不到有关如何执行此操作的任何明确答案。当我在浏览器中搜索它时,我试图从中提取数据的 URL。
这是我正在尝试的 URL:https://nominatim.openstreetmap.org/search?q=jacksonville,florida&format=json
这就是我试图在我的 PHP 文件中访问它的方式,但它总是不返回任何内容。

    $search_url = "https://nominatim.openstreetmap.org/search?q=jacksonville,florida&format=json";
$json = file_get_contents($search_url);

print_r($json);
echo "json=" . $json;
$decoded = json_decode($json, true);
$lat = $decoded[0]["lat"];
$lng = $decoded[0]["lon"];
echo " latitude=".$lat . " -----" . "longitude=".$lng;

我怎样才能解决这个问题?我的最终目标是简单地获得一个城市、州的纬度和经度。

最佳答案

我怀疑 api 拒绝提供没有有效 User-Agent header 的请求,尝试设置它并且它应该可以工作,例如:

<?php

$search_url = "https://nominatim.openstreetmap.org/search?q=jacksonville,florida&format=json";

$httpOptions = [
"http" => [
"method" => "GET",
"header" => "User-Agent: Nominatim-Test"
]
];

$streamContext = stream_context_create($httpOptions);
$json = file_get_contents($search_url, false, $streamContext);

print_r($json);
echo "json=" . $json;
$decoded = json_decode($json, true);
$lat = $decoded[0]["lat"];
$lng = $decoded[0]["lon"];
echo " latitude=".$lat . " -----" . "longitude=".$lng;

关于php - 如何使用 PHP 访问 OpenStreetMap API 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60888946/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com