mas*_*ool 3 php api openstreetmap
我正在尝试使用 PHP 访问 OpenStreetMap 数据,但我找不到有关如何执行此操作的任何明确答案。当我在浏览器中搜索它时,我试图从中提取数据的 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;
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?我的最终目标是简单地获得一个城市、州的纬度和经度。
我怀疑 api 拒绝提供没有有效 User-Agent 标头的请求,尝试设置它并且它应该可以工作,例如:
<?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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2372 次 |
| 最近记录: |