开发者

Matching long & lat within radius

I'm thinking of using my map coordinates to allow for location based searching and I don't know where to start.

I have a database of c开发者_Python百科oordidinates - When I enter a suburb, I want to display all matches within a given radius. (i.e. search database of long/lat coords and return all coords that are in an x radius of long/lat of suburb searched)

I'm not sure how to achieve this or where to start?


Well it really depends on what database you are using. the general technique is to use a scaler value function that uses a formula such as:

distance = ACOS(SIN(lat1)*SIN(lat2)+COS(lat1)*COS(lat2)*COS(lon2-lon1))*6371

then you can write a query like:

select * 
from locations 
where mydistancefunction(lat1,lng1,locations.lat,locations.lng) < @radius


Are you aware of mysql spatial extensions?Try to create a spatial column in your table i.e. Point and then use the functions that spatial extensions offer so you don't reinvent the wheel

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜