Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从给定的城市获取附近的城市?_Php_Google Api_City - Fatal编程技术网

Php 如何从给定的城市获取附近的城市?

Php 如何从给定的城市获取附近的城市?,php,google-api,city,Php,Google Api,City,考虑到距离基地城市50公里的半径,我需要找到附近的城市 我的脚本应该是PHP。。。有什么API可以找到它吗 请帮帮我 谢谢…我写了一种脚本,用来计算坐标之间的距离。当您有2个坐标时,可以执行此操作: base : - latitude - longitude city : - latitude - longititude 你必须通过基本城市地理坐标,然后你需要向谷歌或雅虎服务器发送一个cURL,这取决于你想要哪个地理编码器api来获得城市坐标 现在的问题是你从哪个城市得到坐标?如果你

考虑到距离基地城市50公里的半径,我需要找到附近的城市

我的脚本应该是PHP。。。有什么API可以找到它吗

请帮帮我


谢谢…

我写了一种脚本,用来计算坐标之间的距离。当您有2个坐标时,可以执行此操作:

base :
 - latitude
 - longitude

city :
 - latitude
 - longititude
你必须通过基本城市地理坐标,然后你需要向谷歌或雅虎服务器发送一个cURL,这取决于你想要哪个地理编码器api来获得城市坐标

现在的问题是你从哪个城市得到坐标?如果你没有,你可以买一个zipcode区域数据库,然后你可以把你的坐标从你想要的城市拿出来。当你有来自城市的坐标时,你可以运行一个复杂的计算结果作为一个距离。之后,您可以查看结果/距离是否大于或小于50。如果较小,您可以将其作为范围内的城市返回


这不是几分钟内就能完成的事情,我编写了一种计算坐标之间距离的脚本。当您有2个坐标时,可以执行此操作:

base :
 - latitude
 - longitude

city :
 - latitude
 - longititude
你必须通过基本城市地理坐标,然后你需要向谷歌或雅虎服务器发送一个cURL,这取决于你想要哪个地理编码器api来获得城市坐标

现在的问题是你从哪个城市得到坐标?如果你没有,你可以买一个zipcode区域数据库,然后你可以把你的坐标从你想要的城市拿出来。当你有来自城市的坐标时,你可以运行一个复杂的计算结果作为一个距离。之后,您可以查看结果/距离是否大于或小于50。如果较小,您可以将其作为范围内的城市返回


这不是几分钟内就能完成的事情,这是一个很好的资源:

基准城市:拉脱维亚:37Lng:-122

SELECT id, ( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 50 ORDER BY distance LIMIT 0 , 20;

与Tricker的解决方案原理相同。

这是一个很好的资源:

基准城市:拉脱维亚:37Lng:-122

SELECT id, ( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 50 ORDER BY distance LIMIT 0 , 20;

与Tricker的解决方案原理相同。

您刚刚展示了我需要的。。谢谢你,伙计。。。其实我很懒。。。只需要小脚本就可以做大事…是的,这是同样的原则!我会得到每一个结果,并用我的PHP计算它。因为如果你每次都需要计算10000个坐标,速度会变慢。。并不是每个小脚本都是最快的脚本!但这取决于你;你刚刚展示了我所需要的。。谢谢你,伙计。。。其实我很懒。。。只需要小脚本就可以做大事…是的,这是同样的原则!我会得到每一个结果,并用我的PHP计算它。因为如果你每次都需要计算10000个坐标,速度会变慢。。并不是每个小脚本都是最快的脚本!但这取决于你;