【发布时间】:2019-09-19 08:47:39
【问题描述】:
我正在尝试获取某个地方的纬度和经度,但是,它返回的值与谷歌搜索提供的值不同。
$url = "https://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($request->address).",US&key=API_KEY";
try {
$client = new \GuzzleHttp\Client();
$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 的差异,我知道可能会有一些细微的差异,例如 page,但是 3 度的差异非常不方便。
有什么东西,我可能会失踪吗?
【问题讨论】:
-
差异可能来自一个使用英里和一个使用公里。你也设置了缩放?这也可能有一些不同
-
在计算距离时可以使用英里和公里,但是,到目前为止,我只是想获得纬度和经度
-
那不是你问的,你问为什么两者有区别
-
我没用过缩放。此外,我从未听说过缩放会影响最终纬度和经度值。而且,到目前为止(获取纬度和经度)我认为与公里和英里都没有任何关系。
-
我认为是因为“纽约”不仅仅是一个城市,也是一个州。因此,根据您使用的搜索类型或属性,它会返回一件事或另一件事。或者两者兼而有之。它会返回一个结果还是多个?。
标签: laravel google-maps curl google-maps-api-3 geocode