我正在尝试获取一个地方的纬度和经度,但是,它返回的值与谷歌搜索提供的值不同。
$url = "https://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($request->address).",US&key=API_KEY";
try {
$client = new GuzzleHttpClient();
$apiRequest = $client->request('GET', $url);
$resp = json_decode($apiRequest->getBody());
} catch (Exception $re) {
return response()->json([
'sts' => -1,
'message' => $re->getMessage()],
500);
}
$latitude = $resp->results[0]->geometry->location->lat;
$longitude = $resp->results[0]->geometry->location->lng;
因此,出于测试目的,我传递了New York
作为地址。它返回
[location] => stdClass Object
(
[lat] => 43.2994285
[lng] => -74.2179326
)
但是,当我用关键字lat long of New York
谷歌时,它会返回值
40.7128° N, 74.0060° W
我不明白为什么它返回3 degree
的差异,我知道可能会有一些细微的差异,就像这个页面一样,但是,3度的差异非常不方便。 有什么东西,我可能错过了什么?
我可以看到您已对地理编码器将地址">美国纽约"视为行政区域或州进行了地理编码。请在此处的地理编码器工具中查看结果,其中显示了纽约州的大致位置43.299429,-74.217933
。
另一方面,如果对地址"纽约,纽约,美国"进行地理编码,则应获得40.712775,-74.005973
的大致位置
,即纽约市,这是一个地方。希望这能澄清它。