raindropz Posted November 6, 2007 Share Posted November 6, 2007 Hello all. I'm stucked with something, maybe someone can help me. ??? -I've got a function that calculates the distance between two points of the world (given the latitude/longitude coordinates). -I have a mysql table with the latitudes/longitudes of different cities. -What I need to do is the invertion of the script. I mean: given an initial point (longitude/latitude) and a radius distance, then select each cities in this radious (Example: Select All cities inside a distance of 50 miles from CityX). -Could PLEASE somebody help me with the MySql Query that I need to perform? I'm truly lost about this. :'( Well, this is what I got: 1. This is the table structure: city varchar(90) latitude decimal(10,7) longitude decimal(10,7) 2. This is the function I have: [color=blue]<?php /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ /*:: :*/ /*:: this routine calculates the distance between two points (given the :*/ /*:: latitude/longitude of those points). it is being used to calculate :*/ /*:: the distance between two zip codes or postal codes using our :*/ /*:: zipcodeworld(tm) and postalcodeworld(tm) products. :*/ /*:: :*/ /*:: definitions: :*/ /*:: south latitudes are negative, east longitudes are positive :*/ /*:: :*/ /*:: passed to function: :*/ /*:: lat1, lon1 = latitude and longitude of point 1 (in decimal degrees) :*/ /*:: lat2, lon2 = latitude and longitude of point 2 (in decimal degrees) :*/ /*:: unit = the unit you desire for results :*/ /*:: where: 'm' is statute miles :*/ /*:: 'k' is kilometers (default) :*/ /*:: 'n' is nautical miles :*/ /*:: united states zip code/ canadian postal code databases with latitude & :*/ /*:: longitude are available at http://www.zipcodeworld.com :*/ /*:: :*/ /*:: For enquiries, please contact [email protected] :*/ /*:: :*/ /*:: official web site: http://www.zipcodeworld.com :*/ /*:: :*/ /*:: hexa software development center © all rights reserved 2004 :*/ /*:: :*/ /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ function distance($lat1, $lon1, $lat2, $lon2, $unit) { $theta = $lon1 - $lon2; $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $unit = strtoupper($unit); if ($unit == "K") { return ($miles * 1.609344); } else if ($unit == "N") { return ($miles * 0.8684); } else { return $miles; } } echo distance(32.9697, -96.80322, 29.46786, -98.53506, "m") . " miles "; echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k") . " kilometers "; echo distance(32.9697, -96.80322, 29.46786, -98.53506, "n") . " nautical miles ";[/color] Thanks for all! -Raindropz Link to comment https://forums.phpfreaks.com/topic/76149-solved-inverted-distance-calculator/ Share on other sites More sharing options...
toplay Posted November 6, 2007 Share Posted November 6, 2007 You didn't post it in the wrong forum. I moved it here. If you're asking for a MySQL query help, then it belongs here! Link to comment https://forums.phpfreaks.com/topic/76149-solved-inverted-distance-calculator/#findComment-385414 Share on other sites More sharing options...
raindropz Posted November 6, 2007 Author Share Posted November 6, 2007 Oh... I see... Well it's good to know that!, I was just starting to think that I was crazy lol Link to comment https://forums.phpfreaks.com/topic/76149-solved-inverted-distance-calculator/#findComment-385420 Share on other sites More sharing options...
Barand Posted November 6, 2007 Share Posted November 6, 2007 Something like SELECT * FROM cities WHERE 60 * 1.1515 * DEGREES(ACOS(SIN(RADIANS($cityXlat)) * SIN(RADIANS(latitude)) + COS(RADIANS($cityXlat)) * COS(RADIANS(latitude)) * COS(RADIANS($cityXlong-longitude)))) <= 50 Link to comment https://forums.phpfreaks.com/topic/76149-solved-inverted-distance-calculator/#findComment-385583 Share on other sites More sharing options...
raindropz Posted November 6, 2007 Author Share Posted November 6, 2007 It works Thanks for the support!! -raindropz Link to comment https://forums.phpfreaks.com/topic/76149-solved-inverted-distance-calculator/#findComment-385653 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.