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

发布于 2024-10-11 04:53:54 字数 107 浏览 1 评论 0原文

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

我的脚本应该是 PHP 的...有没有 API 可以找到它...

请帮助我...

谢谢...

Considering a radius of 50 KM from the base city i need to find the nearby cities .

My script should be in PHP... Is there any API to find it out....

Please please help me...

THanks...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

对你再特殊 2024-10-18 04:53:54

这是一个很棒的资源:code.google.com/apis/maps/articles /phpsqlsearch.html#findnearsql

基地城市:   Lat: 37   Lng: -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”的解决方案原理相同。

This is a great resource: code.google.com/apis/maps/articles/phpsqlsearch.html#findnearsql

Base city:   Lat: 37   Lng: -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;

Same principle as the solution from "Tricker".

宣告ˉ结束 2024-10-18 04:53:54

我写了一种计算坐标之间距离的脚本。当你有 2 个坐标时,你可以这样做:

base :
 - latitude
 - longitude

city :
 - latitude
 - longititude

你必须传入基本城市地理坐标,然后你需要将 cURL 发送到 google 或 yahoo 服务器(取决于你想要哪个地理编码器 api)来获取城市坐标。

现在的问题是你有哪些城市的坐标?如果你没有,你可以购买一个邮政编码区域数据库(然后你可以得到你想要的城市的坐标)。当您获得城市坐标时,您可以对距离进行复杂的计算。之后,您可以查看结果/距离是否大于或小于 50。如果小于,您可以将其作为范围内的城市返回。

这不是几分钟之内就能完成的事情

I wrote a kind off scripts that calculating distances between coordinates. You can do it when you have 2 coordinates:

base :
 - latitude
 - longitude

city :
 - latitude
 - longititude

You have to pass in the base city geo coords, then you need to send a cURL to the google or yahoo server(depends on which geocoder api you wanna you) to get the city coords.

Now its the question from which cities do you have coordinates? if you have none you can buy a zipcode area database(then you can have your coordinates off the city you wanna have). when you have the coords from city, you can run a complicated calculation as result a distance. After that you can look if the result/distance is greater or lesser then 50. if is lesser you can return it as a city in range.

it isn't something you do in a few minutes

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文