ਇਸ ਮਹੀਨੇ ਮੈਂ ਜੀਆਈਐਸ ਦੇ ਸੰਬੰਧ ਵਿੱਚ ਪੀਐਚਪੀ ਅਤੇ ਮਾਈ ਐਸ ਕਿQLਐਲ ਵਿੱਚ ਕਾਫ਼ੀ ਪ੍ਰੋਗਰਾਮ ਕਰ ਰਿਹਾ ਹਾਂ. ਜਾਲ ਦੇ ਦੁਆਲੇ ਝੁਕਣਾ, ਮੈਨੂੰ ਅਸਲ ਵਿਚ ਕੁਝ ਲੱਭਣ ਵਿਚ ਮੁਸ਼ਕਲ ਆਈ ਭੂਗੋਲਿਕ ਗਣਨਾ ਦੋ ਸਥਾਨਾਂ ਵਿਚਕਾਰ ਦੂਰੀ ਲੱਭਣ ਲਈ ਤਾਂ ਜੋ ਮੈਂ ਉਨ੍ਹਾਂ ਨੂੰ ਇੱਥੇ ਸਾਂਝਾ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ.
ਦੋ ਬਿੰਦੂਆਂ ਵਿਚਕਾਰ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰਨ ਦਾ ਸੌਖਾ aੰਗ ਹੈ ਪਾਇਥਾਗੋਰਿਅਨ ਫਾਰਮੂਲੇ ਦੀ ਵਰਤੋਂ ਇਕ ਤਿਕੋਣ (ਏ + ਬੀ² = ਸੀ²) ਦੀ ਅਨੁਮਾਨ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ. ਇਸ ਨੂੰ ਯੂਕਲਿਡੀਅਨ ਦੂਰੀ.
ਇਹ ਇਕ ਦਿਲਚਸਪ ਸ਼ੁਰੂਆਤ ਹੈ ਪਰ ਭੂਗੋਲ ਨਾਲ ਇਹ ਲਾਗੂ ਨਹੀਂ ਹੁੰਦਾ ਕਿਉਂਕਿ ਵਿਥਕਾਰ ਅਤੇ ਲੰਬਾਈ ਦੀਆਂ ਰੇਖਾਵਾਂ ਵਿਚਕਾਰ ਦੂਰੀ ਹੈ ਬਰਾਬਰ ਦੂਰੀਆਂ ਨਹੀਂ ਇਲਾਵਾ. ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਭੂਮੱਧ ਦੇ ਨੇੜੇ ਜਾਂਦੇ ਜਾਉਗੇ, अक्षांश ਦੀਆਂ ਲਾਈਨਾਂ ਹੋਰ ਵੱਖ ਹੋ ਜਾਂਦੀਆਂ ਹਨ. ਜੇ ਤੁਸੀਂ ਕਿਸੇ ਕਿਸਮ ਦੇ ਸਧਾਰਣ ਤਿਕੋਣੀ ਸਮੀਕਰਣ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਹ ਧਰਤੀ ਦੀ ਵਕਰ ਦੇ ਕਾਰਨ, ਇੱਕ ਜਗ੍ਹਾ ਵਿੱਚ ਦੂਰੀ ਨੂੰ ਸਹੀ ਤਰ੍ਹਾਂ ਮਾਪ ਸਕਦਾ ਹੈ ਅਤੇ ਦੂਜੇ ਵਿੱਚ ਬਹੁਤ ਗਲਤ ਹੈ.
ਮਹਾਨ ਸਰਕਲ ਦੂਰੀ
ਧਰਤੀ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਲੰਬੇ ਦੂਰੀਆਂ ਦੀ ਯਾਤਰਾ ਕਰਨ ਵਾਲੇ ਰਸਤੇ ਨੂੰ ਮਹਾਨ ਸਰਕਲ ਦੂਰੀ. ਯਾਨੀ ਕਿ… ਗੋਲੇ ਉੱਤੇ ਦੋ ਬਿੰਦੂਆਂ ਵਿਚਕਾਰ ਸਭ ਤੋਂ ਛੋਟੀ ਦੂਰੀ ਇੱਕ ਸਮਤਲ ਨਕਸ਼ੇ ਦੇ ਬਿੰਦੂਆਂ ਨਾਲੋਂ ਵੱਖਰੀ ਹੈ। ਇਸਨੂੰ ਇਸ ਤੱਥ ਦੇ ਨਾਲ ਜੋੜੋ ਕਿ ਅਕਸ਼ਾਂਸ਼ ਅਤੇ ਲੰਬਕਾਰ ਰੇਖਾਵਾਂ ਬਰਾਬਰ ਨਹੀਂ ਹਨ... ਅਤੇ ਤੁਹਾਨੂੰ ਇੱਕ ਮੁਸ਼ਕਲ ਗਣਨਾ ਮਿਲੀ ਹੈ।
ਇੱਥੇ ਇੱਕ ਸ਼ਾਨਦਾਰ ਵੀਡੀਓ ਵਿਆਖਿਆ ਹੈ ਕਿ ਮਹਾਨ ਚੱਕਰ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ.
ਹੈਵਰਸਾਈਨ ਫਾਰਮੂਲਾ
ਧਰਤੀ ਦੀ ਵਕਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਦੂਰੀ ਨੂੰ. ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ ਹੈਵਰਸਾਈਨ ਫਾਰਮੂਲਾਹੈ, ਜੋ ਕਿ ਧਰਤੀ ਦੇ ਵਕਰ ਨੂੰ ਆਗਿਆ ਦੇਣ ਲਈ ਤਿਕੋਣੀ ਘੋਸ਼ਣਾ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ. ਜਦੋਂ ਤੁਸੀਂ ਧਰਤੀ 'ਤੇ 2 ਥਾਵਾਂ ਦੇ ਵਿਚਕਾਰ ਦੂਰੀ ਲੱਭ ਰਹੇ ਹੋ (ਜਿਵੇਂ ਕਾਂ ਕਾਂ ਉੱਡਦਾ ਹੈ), ਇਕ ਸਿੱਧੀ ਰੇਖਾ ਅਸਲ ਵਿਚ ਇਕ ਚਾਪ ਹੈ.
ਇਹ ਹਵਾਈ ਉਡਾਣ ਵਿੱਚ ਲਾਗੂ ਹੁੰਦਾ ਹੈ - ਕੀ ਤੁਸੀਂ ਕਦੇ ਉਡਾਣਾਂ ਦੀਆਂ ਅਸਲ ਨਕਸ਼ਿਆਂ ਨੂੰ ਵੇਖਿਆ ਹੈ ਅਤੇ ਦੇਖਿਆ ਹੈ ਕਿ ਉਹ ਜਹਾਜ਼ਾਂ ਹਨ? ਇਹ ਇਸ ਲਈ ਕਿਉਂਕਿ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਨਾਲੋਂ ਸਿੱਧੇ ਤੌਰ ਤੇ ਦੋ ਬਿੰਦੂਆਂ ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਚੱਟਾਨ ਵਿੱਚ ਉੱਡਣਾ ਛੋਟਾ ਹੈ.
ਪੀਐਚਪੀ: ਵਿਸ਼ਾ ਅਤੇ ਲੰਬਾਈ ਦੇ 2 ਬਿੰਦੂਆਂ ਵਿਚਕਾਰ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰੋ
ਇੱਥੇ ਦੋ ਅੰਕਾਂ (ਮੀਲ ਬਨਾਮ ਕਿਲੋਮੀਟਰ ਪਰਿਵਰਤਨ ਦੇ ਨਾਲ) ਦੇ ਵਿਚਕਾਰ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ PHP ਫਾਰਮੂਲਾ ਦੋ ਦਸ਼ਮਲਵ ਸਥਾਨਾਂ 'ਤੇ ਹੈ।
function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'miles') {
$theta = $longitude1 - $longitude2;
$distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
$distance = acos($distance);
$distance = rad2deg($distance);
$distance = $distance * 60 * 1.1515;
switch($unit) {
case 'miles':
break;
case 'kilometers' :
$distance = $distance * 1.609344;
}
return (round($distance,2));
}
ਵੇਰੀਏਬਲ ਹਨ:
- $Latitude1 - ਤੁਹਾਡੇ ਪਹਿਲੇ ਸਥਾਨ ਦੇ ਵਿਥਕਾਰ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ।
- $Longitude1 - ਤੁਹਾਡੇ ਪਹਿਲੇ ਸਥਾਨ ਦੇ ਲੰਬਕਾਰ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ
- $Latitude2 - ਤੁਹਾਡੇ ਦੂਜੇ ਸਥਾਨ ਦੇ ਵਿਥਕਾਰ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ।
- $Longitude2 - ਤੁਹਾਡੇ ਦੂਜੇ ਸਥਾਨ ਦੇ ਲੰਬਕਾਰ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ।
- $ ਯੂਨਿਟ - ਮੂਲ ਰੂਪ ਵਿੱਚ ਮੀਲ. ਇਸ ਨੂੰ ਅੱਪਡੇਟ ਜਾਂ ਪਾਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਕਿਲੋਮੀਟਰ.
ਪਾਈਥਨ: ਅਕਸ਼ਾਂਸ਼ ਅਤੇ ਲੰਬਕਾਰ ਦੇ 2 ਬਿੰਦੂਆਂ ਵਿਚਕਾਰ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰੋ
ਵੈਸੇ ਵੀ, ਇੱਥੇ ਦੋ ਦਸ਼ਮਲਵ ਸਥਾਨਾਂ ਤੱਕ ਗੋਲ ਕੀਤੇ ਦੋ ਬਿੰਦੂਆਂ (ਮੀਲ ਬਨਾਮ ਕਿਲੋਮੀਟਰ ਪਰਿਵਰਤਨ ਦੇ ਨਾਲ) ਵਿਚਕਾਰ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ ਪਾਈਥਨ ਫਾਰਮੂਲਾ ਹੈ। ਮੇਰੇ ਬੇਟੇ, ਬਿਲ ਕਾਰ ਨੂੰ ਕ੍ਰੈਡਿਟ, ਜੋ ਕਿ ਇੱਕ ਡੇਟਾ ਸਾਇੰਟਿਸਟ ਹੈ ਓਪਨ ਇਨਸਾਈਟਸ, ਕੋਡ ਲਈ.
from numpy import sin, cos, arccos, pi, round
def rad2deg(radians):
degrees = radians * 180 / pi
return degrees
def deg2rad(degrees):
radians = degrees * pi / 180
return radians
def getDistanceBetweenPointsNew(latitude1, longitude1, latitude2, longitude2, unit = 'miles'):
theta = longitude1 - longitude2
distance = 60 * 1.1515 * rad2deg(
arccos(
(sin(deg2rad(latitude1)) * sin(deg2rad(latitude2))) +
(cos(deg2rad(latitude1)) * cos(deg2rad(latitude2)) * cos(deg2rad(theta)))
)
)
if unit == 'miles':
return round(distance, 2)
if unit == 'kilometers':
return round(distance * 1.609344, 2)
ਵੇਰੀਏਬਲ ਹਨ:
- ਵਿਥਕਾਰ 1 - ਤੁਹਾਡੇ ਪਹਿਲੇ ਟਿਕਾਣੇ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ ਅਕਸ਼ਾਂਸ਼.
- ਲੰਬਕਾਰ 1 - ਤੁਹਾਡੇ ਪਹਿਲੇ ਟਿਕਾਣੇ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ ਲੰਬਕਾਰ
- ਵਿਥਕਾਰ 2 - ਤੁਹਾਡੇ ਦੂਜੇ ਸਥਾਨ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ ਅਕਸ਼ਾਂਸ਼.
- ਲੰਬਕਾਰ 2 - ਤੁਹਾਡੇ ਦੂਜੇ ਸਥਾਨ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ ਲੰਬਕਾਰ.
- ਯੂਨਿਟ - ਮੂਲ ਰੂਪ ਵਿੱਚ ਮੀਲ. ਇਸ ਨੂੰ ਅੱਪਡੇਟ ਜਾਂ ਪਾਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਕਿਲੋਮੀਟਰ.
MySQL: ਅਕਸ਼ਾਂਸ਼ ਅਤੇ ਲੰਬਕਾਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮੀਲਾਂ ਵਿੱਚ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰਕੇ ਇੱਕ ਰੇਂਜ ਦੇ ਅੰਦਰ ਸਾਰੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨਾ
ਇੱਕ ਖਾਸ ਦੂਰੀ ਦੇ ਅੰਦਰ ਸਾਰੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਲੱਭਣ ਲਈ ਇੱਕ ਗਣਨਾ ਕਰਨ ਲਈ ਐਸਕਿQLਐਲ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਵੀ ਸੰਭਵ ਹੈ. ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ, ਮੈਂ MySQL ਵਿੱਚ MyTable ਨੂੰ ਪੁੱਛਣ ਜਾ ਰਿਹਾ ਹਾਂ ਕਿ ਉਹ ਸਾਰੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਲੱਭਣ ਲਈ ਜੋ ਵੇਰੀਏਬਲ - ਦੂਰੀ (ਮੀਲਾਂ ਵਿੱਚ) ਤੋਂ ਘੱਟ ਜਾਂ ਇਸਦੇ ਬਰਾਬਰ ਮੇਰੇ ਸਥਾਨ ਤੇ $ अक्षांश ਅਤੇ $ ਲੰਬਕਾਰ:
ਇੱਕ ਖਾਸ ਦੇ ਅੰਦਰ ਸਾਰੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਪੁੱਛਗਿੱਛ ਦੂਰੀ ਲੰਬਾਈ ਅਤੇ ਲੰਬਾਈ ਦੇ ਦੋ ਬਿੰਦੂਆਂ ਵਿਚਕਾਰ ਮੀਲਾਂ ਦੀ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰਕੇ:
$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`)*pi()/180)))) * 180/pi()) * 60 * 1.1515) as distance FROM `table` WHERE distance <= ".$distance."
ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏਗੀ:
- $ ਲੰਬਕਾਰ - ਇਹ ਇੱਕ PHP ਵੇਰੀਏਬਲ ਹੈ ਜਿੱਥੇ ਮੈਂ ਬਿੰਦੂ ਦੇ ਲੰਬਾਈ ਲੰਘ ਰਿਹਾ ਹਾਂ.
- $ ਵਿਥਕਾਰ - ਇਹ ਇੱਕ PHP ਵੇਰੀਏਬਲ ਹੈ ਜਿੱਥੇ ਮੈਂ ਬਿੰਦੂ ਦੇ ਲੰਬਾਈ ਲੰਘ ਰਿਹਾ ਹਾਂ.
- $ ਦੂਰੀ - ਇਹ ਉਹ ਦੂਰੀ ਹੈ ਜੋ ਤੁਸੀਂ ਸਾਰੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਘੱਟ ਜਾਂ ਇਸਦੇ ਬਰਾਬਰ ਲੱਭਣਾ ਚਾਹੁੰਦੇ ਹੋ.
- ਸਾਰਣੀ ਵਿੱਚ - ਇਹ ਟੇਬਲ ਹੈ ... ਤੁਸੀਂ ਇਸ ਨੂੰ ਆਪਣੇ ਟੇਬਲ ਨਾਮ ਨਾਲ ਬਦਲਣਾ ਚਾਹੋਗੇ.
- ਅਕਸ਼ਾਂਸ਼ - ਇਹ ਤੁਹਾਡੇ ਵਿਥਕਾਰ ਦਾ ਖੇਤਰ ਹੈ.
- ਲੰਬਕਾਰ - ਇਹ ਤੁਹਾਡੇ ਲੰਬਕਾਰ ਦਾ ਖੇਤਰ ਹੈ.
MySQL: ਅਕਸ਼ਾਂਸ਼ ਅਤੇ ਲੰਬਕਾਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਿਲੋਮੀਟਰਾਂ ਵਿੱਚ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰਕੇ ਇੱਕ ਰੇਂਜ ਦੇ ਅੰਦਰ ਸਾਰੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨਾ
ਅਤੇ ਇੱਥੇ MySQL ਵਿੱਚ ਕਿਲੋਮੀਟਰ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ ਐਸਕਿ queryਐਲ ਪ੍ਰਸ਼ਨ ਹੈ:
$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`) * pi()/180)))) * 180/pi()) * 60 * 1.1515 * 1.609344) as distance FROM `table` WHERE distance <= ".$distance."
ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏਗੀ:
- $ ਲੰਬਕਾਰ - ਇਹ ਇੱਕ PHP ਵੇਰੀਏਬਲ ਹੈ ਜਿੱਥੇ ਮੈਂ ਬਿੰਦੂ ਦੇ ਲੰਬਾਈ ਲੰਘ ਰਿਹਾ ਹਾਂ.
- $ ਵਿਥਕਾਰ - ਇਹ ਇੱਕ PHP ਵੇਰੀਏਬਲ ਹੈ ਜਿੱਥੇ ਮੈਂ ਬਿੰਦੂ ਦੇ ਲੰਬਾਈ ਲੰਘ ਰਿਹਾ ਹਾਂ.
- $ ਦੂਰੀ - ਇਹ ਉਹ ਦੂਰੀ ਹੈ ਜੋ ਤੁਸੀਂ ਸਾਰੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਘੱਟ ਜਾਂ ਇਸਦੇ ਬਰਾਬਰ ਲੱਭਣਾ ਚਾਹੁੰਦੇ ਹੋ.
- ਸਾਰਣੀ ਵਿੱਚ - ਇਹ ਟੇਬਲ ਹੈ ... ਤੁਸੀਂ ਇਸ ਨੂੰ ਆਪਣੇ ਟੇਬਲ ਨਾਮ ਨਾਲ ਬਦਲਣਾ ਚਾਹੋਗੇ.
- ਅਕਸ਼ਾਂਸ਼ - ਇਹ ਤੁਹਾਡੇ ਵਿਥਕਾਰ ਦਾ ਖੇਤਰ ਹੈ.
- ਲੰਬਕਾਰ - ਇਹ ਤੁਹਾਡੇ ਲੰਬਕਾਰ ਦਾ ਖੇਤਰ ਹੈ.
ਮੈਂ ਇਸ ਕੋਡ ਦੀ ਵਰਤੋਂ ਇਕ ਐਂਟਰਪ੍ਰਾਈਜ ਮੈਪਿੰਗ ਪਲੇਟਫਾਰਮ ਵਿਚ ਕੀਤੀ ਜਿਸਦੀ ਵਰਤੋਂ ਅਸੀਂ ਉੱਤਰੀ ਅਮਰੀਕਾ ਵਿਚ 1,000 ਤੋਂ ਵੱਧ ਸਥਾਨਾਂ ਦੇ ਨਾਲ ਇਕ ਪ੍ਰਚੂਨ ਸਟੋਰ ਲਈ ਕੀਤੀ ਅਤੇ ਇਸ ਨੇ ਸੁੰਦਰਤਾ ਨਾਲ ਕੰਮ ਕੀਤਾ.
ਮਾਈਕਰੋਸਾਫਟ SQL ਸਰਵਰ ਭੂਗੋਲਿਕ ਦੂਰੀ: STDistance
ਜੇਕਰ ਤੁਸੀਂ Microsoft SQL ਸਰਵਰ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਉਹ ਆਪਣਾ ਫੰਕਸ਼ਨ ਪੇਸ਼ ਕਰਦੇ ਹਨ, ਐਸਟੀਡੀਸਟੈਂਸ ਭੂਗੋਲ ਡੇਟਾ ਕਿਸਮ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਦੋ ਬਿੰਦੂਆਂ ਵਿਚਕਾਰ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ।
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SET @h = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.STDistance(@h);
ਮਾਨਸ਼ ਸਾਹੂ, ਵੀਪੀ ਅਤੇ ਆਰਕੀਟੈਕਟ ਨੂੰ ਹੈਟ ਟਿਪ Highbridge.
ਸਾਂਝਾ ਕਰਨ ਲਈ ਤੁਹਾਡਾ ਬਹੁਤ ਧੰਨਵਾਦ. ਇਹ ਇਕ ਸੌਖੀ ਨਕਲ ਅਤੇ ਪੇਸਟ ਦੀ ਨੌਕਰੀ ਸੀ ਅਤੇ ਵਧੀਆ ਕੰਮ ਕਰਦੀ ਹੈ. ਤੁਸੀਂ ਮੇਰਾ ਬਹੁਤ ਸਾਰਾ ਸਮਾਂ ਬਚਾ ਲਿਆ ਹੈ.
ਸੀ ਨੂੰ ਪੋਰਟ ਕਰਨ ਵਾਲੇ ਕਿਸੇ ਵੀ ਵਿਅਕਤੀ ਲਈ ਐਫਵਾਈਆਈ:
ਡਬਲ ਡੀਗ 2 ਪਾਰ (ਡਬਲ ਡਿਗ) {ਰਿਟਰਨ ਡੀਗ * (3.14159265358979323846 / 180.0); }
ਪੋਸਟਿੰਗ ਦਾ ਬਹੁਤ ਵਧੀਆ ਟੁਕੜਾ - ਬਹੁਤ ਵਧੀਆ ਕੰਮ ਕੀਤਾ - ਮੈਨੂੰ ਸਿਰਫ ਟੇਬਲ ਦਾ ਨਾਮ ਲੈਟ-ਲਾਈਟ ਰੱਖਣਾ ਪਿਆ. ਇਹ ਬਹੁਤ ਤੇਜ਼ੀ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ .. ਮੇਰੇ ਕੋਲ ਲੈਟ-ਲਾਂਗਸ ਦੀ ਇੱਕ ਛੋਟੀ ਜਿਹੀ ਗਿਣਤੀ ਹੈ (<400) ਪਰ ਮੈਨੂੰ ਲਗਦਾ ਹੈ ਕਿ ਇਹ ਵਧੀਆ ਸਕੇਲ ਕਰੇਗਾ. ਚੰਗੀ ਸਾਈਟ ਵੀ - ਮੈਂ ਇਸਨੂੰ ਹੁਣੇ ਹੀ ਆਪਣੇ ਡੀਲ.ਆਈਸੀਓ.ਯੂਸ ਖਾਤੇ ਵਿੱਚ ਜੋੜਿਆ ਹੈ ਅਤੇ ਨਿਯਮਿਤ ਤੌਰ ਤੇ ਵਾਪਸ ਜਾਂਚ ਕਰਾਂਗਾ.
ਪੀਟਰ ਅਤੇ ਕੈਰੀ ਦਾ ਬਹੁਤ ਬਹੁਤ ਧੰਨਵਾਦ! ਜੇ ਤੁਸੀਂ ਜੀਆਈਐਸ ਪ੍ਰੋਜੈਕਟਾਂ 'ਤੇ ਕੰਮ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਮੈਂ ਸਿਫਾਰਸ ਕਰਾਂਗਾ:
ਤੁਹਾਡਾ ਬਹੁਤ ਬਹੁਤ ਧੰਨਵਾਦ… 😀
ਮੈਂ ਸਾਰਾ ਦਿਨ ਦੂਰੀ ਦੀ ਗਣਨਾ ਲਈ ਖੋਜ ਕੀਤੀ ਅਤੇ ਹਾਰਵਰਸਾਈਨ ਐਲਗੋਰਿਦਮ ਮਿਲਿਆ, ਇਸ ਨੂੰ ਇੱਕ ਸਿਕਲਿਅਲ ਸਟੇਟਮੈਂਟ ਵਿੱਚ ਕਿਵੇਂ ਪਾਉਣਾ ਹੈ ਇਸਦਾ ਉਦਾਹਰਣ ਦੇਣ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ. ਧੰਨਵਾਦ ਅਤੇ ਨਮਸਕਾਰ, ਡੈਨੀਅਲ
ਮਦਦ ਕਰਨ ਲਈ ਖੁਸ਼, ਦੋਸਤ ਨੂੰ ਰੇਲ!
ਹੁਣ ਮੈਂ ਇਕ 'ਪੌਲੀਗਨ' ਵਿਚ ਪੀਐਚਪੀ ਫੰਕਸ਼ਨ ਦੀ ਭਾਲ ਵਿਚ ਹਾਂ ਜੋ ਕ੍ਰਮਬੱਧ ਵਿਥਕਾਰ ਅਤੇ ਲੰਬਕਾਰ ਕੋਆਰਡੀਨੇਟਸ ਦੀ ਇਕ ਲੜੀ ਲਵੇਗਾ ਅਤੇ ਇਹ ਪਤਾ ਲਗਾਏਗਾ ਕਿ ਇਕ ਹੋਰ ਬਿੰਦੂ ਪੌਲੀਗਨ ਦੇ ਅੰਦਰ ਜਾਂ ਬਾਹਰ ਹੈ.
ਮੈਨੂੰ ਲੱਭਿਆ ਇਕ ਬਹੁਭਾਸ਼ਾ ਵਿਚ ਇਕ ਬਿੰਦੂ ਇਹ ਪਤਾ ਲਗਾਉਣ ਲਈ ਸਮੀਕਰਣ!
ਮੈਨੂੰ ਲਗਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਐਸਕਿQLਐਲ ਨੂੰ ਇੱਕ ਬਿਆਨ ਹੋਣ ਦੀ ਜ਼ਰੂਰਤ ਹੈ.
ਇਸ ਦੀ ਬਜਾਏ ਕਿੱਥੇ ਹੈ ਦੂਰੀ <= $ ਦੂਰੀ ਜਿਸ ਦੀ ਤੁਹਾਨੂੰ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ
ਹੈਵਿੰਗ ਦੂਰੀ <= $ ਦੂਰੀ ਦੀ ਵਰਤੋਂ ਕਰੋ
ਨਹੀਂ ਤਾਂ ਮੈਨੂੰ ਬਹੁਤ ਸਾਰਾ ਸਮਾਂ ਅਤੇ energyਰਜਾ ਬਚਾਉਣ ਲਈ ਧੰਨਵਾਦ.
ਹੈਈ ਡੇਵਿਡ,
ਜੇ ਤੁਸੀਂ ਬਿਆਨ ਦੇ ਕੇ ਕਿਸੇ ਕਿਸਮ ਦੇ ਸਮੂਹ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਹਵਿੰਗ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏਗੀ. ਮੈਂ ਉਪਰੋਕਤ ਉਦਾਹਰਣ ਵਿੱਚ ਇਹ ਨਹੀਂ ਕਰ ਰਿਹਾ.
ਡਗ
MySQL 5.x ਦੇ ਅਨੁਸਾਰ, ਤੁਸੀਂ ਜਿੱਥੇ ਕਿਤੇ ਵੀ ਉਪਨਾਮ ਨਹੀਂ ਵਰਤ ਸਕਦੇ http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html
ਉਪਰੋਕਤ ਕਿerਰੀਆਂ ਵਿਚ WHEE ਦੀ ਬਜਾਏ HAVING ਦੀ ਵਰਤੋਂ ਕਰੋ
ਤੁਹਾਡਾ ਬਹੁਤ ਧੰਨਵਾਦ ਹੈ. ਤੁਸੀਂ ਵਧੀਆ ਕੰਮ ਕੀਤਾ ਹੈ ਇਹ ਉਹ ਚੀਜ਼ ਹੈ ਜੋ ਮੈਂ ਅਸਲ ਵਿੱਚ ਚਾਹੁੰਦਾ ਹਾਂ. ਬਹੁਤ ਸਾਰਾ ਧੰਨਵਾਦ.
ਇਸ ਕੋਡ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਲਈ ਬਹੁਤ ਬਹੁਤ ਧੰਨਵਾਦ. ਇਸ ਨੇ ਮੇਰੇ ਵਿਕਾਸ ਦੇ ਬਹੁਤ ਸਮੇਂ ਦੀ ਬਚਤ ਕੀਤੀ. ਇਸ ਦੇ ਨਾਲ, ਤੁਹਾਡੇ ਪਾਠਕਾਂ ਦਾ ਇਹ ਦੱਸਣ ਲਈ ਧੰਨਵਾਦ ਕਿ ਮਾਈਸਕਯੂਐਲ 5. ਐਕਸ ਲਈ ਇਕ ਹੋਵਿੰਗ ਸਟੇਟਮੈਂਟ ਜ਼ਰੂਰੀ ਹੈ. ਬਹੁਤ ਮਦਦਗਾਰ.
ਮੈਂ ਪਾਠਕਾਂ ਨੂੰ ਮੇਰੇ ਨਾਲੋਂ ਬਹੁਤ ਹੁਸ਼ਿਆਰ ਸਮਝਦਾ ਹਾਂ!
🙂
ਉਪਰੋਕਤ ਫਾਰਮੂਲਾ ਮੇਰਾ ਬਹੁਤ ਸਾਰਾ ਸਮਾਂ ਬਚਾ ਰਿਹਾ ਹੈ. ਤੁਹਾਡਾ ਬਹੁਤ ਧੰਨਵਾਦ ਹੈ.
ਮੈਨੂੰ ਐਨਐਮਈਏ ਫਾਰਮੈਟ ਅਤੇ ਡਿਗਰੀ ਵਿਚਕਾਰ ਵੀ ਬਦਲਣਾ ਪਏਗਾ. ਮੈਨੂੰ ਪੰਨੇ ਦੇ ਹੇਠਾਂ ਇਸ URL ਤੇ ਇੱਕ ਫਾਰਮੂਲਾ ਮਿਲਿਆ. http://www.errorforum.com/knowledge-base/16273-converting-nmea-sentence-latitude-longitude-decimal-degrees.html
ਕੀ ਕੋਈ ਜਾਣਦਾ ਹੈ ਕਿ ਇਸਦੀ ਪੁਸ਼ਟੀ ਕਿਵੇਂ ਕਰਨੀ ਹੈ?
ਤੁਹਾਡਾ ਧੰਨਵਾਦ!
ਹੈਰੀ
ਸਤ ਸ੍ਰੀ ਅਕਾਲ,
ਇਕ ਹੋਰ ਸਵਾਲ. ਕੀ ਇੱਥੇ ਹੇਠਾਂ ਦਿੱਤੇ ਐਨ ਐਮ ਈ ਏ ਦੇ ਤਾਰਾਂ ਲਈ ਕੋਈ ਫਾਰਮੂਲਾ ਹੈ?
1342.7500, ਐਨ, 10052.2287, ਈ
$GPRMC,032731.000,A,1342.7500,N,10052.2287,E,0.40,106.01,101106,,*0B
ਧੰਨਵਾਦ ਹੈ,
ਹੈਰੀ
ਮੈਂ ਇਹ ਵੀ ਪਾਇਆ ਕਿ ਮੇਰੇ ਲਈ ਜਿਥੇ ਕੰਮ ਨਹੀਂ ਕੀਤਾ. ਇਸ ਨੂੰ ਬਦਲਣ ਤੇ ਬਦਲਿਆ ਅਤੇ ਸਭ ਕੁਝ ਸੰਪੂਰਨ ਕੰਮ ਕਰਦਾ ਹੈ. ਪਹਿਲਾਂ ਮੈਂ ਟਿੱਪਣੀਆਂ ਨਹੀਂ ਪੜ੍ਹੀਆਂ ਅਤੇ ਨੇਸਟਡ ਸਿਲੈਕਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਸ ਨੂੰ ਦੁਬਾਰਾ ਲਿਖਿਆ. ਦੋਵੇਂ ਠੀਕ ਕੰਮ ਕਰਨਗੇ.
MySQL ਵਿੱਚ ਲਿਖੀ ਗਈ ਸਕ੍ਰਿਪਟ ਲਈ ਤੁਹਾਡਾ ਬਹੁਤ ਧੰਨਵਾਦ, ਹੁਣੇ ਥੋੜੀ ਜਿਹੀ ਤਬਦੀਲੀ ਕੀਤੀ ਗਈ ਹੈ (ਹੋ ਰਿਹਾ ਹੈ) 🙂
ਨੌਕਰੀ
ਅਵਿਸ਼ਵਾਸ਼ਯੋਗ ਮਦਦਗਾਰ, ਤੁਹਾਡਾ ਬਹੁਤ ਧੰਨਵਾਦ! ਮੈਨੂੰ "ਕਿੱਥੇ" ਦੀ ਬਜਾਏ ਨਵੇਂ "ਹੈਵਿੰਗ" ਨਾਲ ਕੁਝ ਸਮੱਸਿਆਵਾਂ ਹੋ ਰਹੀਆਂ ਸਨ, ਪਰ ਇਕ ਵਾਰ ਜਦੋਂ ਮੈਂ ਇੱਥੇ ਟਿੱਪਣੀਆਂ ਨੂੰ ਪੜ੍ਹਦਾ ਹਾਂ (ਨਿਰਾਸ਼ਾ = ਪੀ ਵਿੱਚ ਮੇਰੇ ਦੰਦ ਪੀਸਣ ਦੇ ਲਗਭਗ ਅੱਧੇ ਘੰਟੇ ਬਾਅਦ), ਮੈਂ ਇਸ ਨੂੰ ਵਧੀਆ workingੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਮਿਲਿਆ. ਧੰਨਵਾਦ ^ _ ^
ਧੰਨਵਾਦ ਬਹੁਤ ਵਧੀਆ ਕੰਮ ਕਰਦਾ ਹੈ
ਇਹ ਯਾਦ ਰੱਖੋ ਕਿ ਉਸ ਵਰਗਾ ਇੱਕ ਚੋਣਵਾਂ ਬਿਆਨ ਬਹੁਤ ਗਣਨਾਤਮਕ ਤੌਰ ਤੇ ਤੀਬਰ ਅਤੇ ਇਸ ਲਈ ਹੌਲੀ ਹੋਵੇਗਾ. ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਬਹੁਤ ਸਾਰੀਆਂ ਪ੍ਰਸ਼ਨ ਹਨ, ਤਾਂ ਇਹ ਚੀਜ਼ਾਂ ਨੂੰ ਬਹੁਤ ਤੇਜ਼ੀ ਨਾਲ ਭਾਂਪ ਸਕਦਾ ਹੈ.
ਇੱਕ ਬਹੁਤ ਘੱਟ ਤੀਬਰ ਪਹੁੰਚ ਇੱਕ ਗਣਿਤ ਦੀ ਦੂਰੀ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਤ ਕੀਤੇ ਸਕੁਏਰ ਖੇਤਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਹਿਲਾਂ (ਕੱਚੇ) ਚੋਣ ਨੂੰ ਚਲਾਉਣਾ ਹੈ ਜਿਵੇਂ ਕਿ "ਟੇਬਲਨਾਮ ਤੋਂ ਚੁਣੋ * ਜਿੱਥੇ ਲੈਟ 1 ਅਤੇ ਲੈਟ 2 ਵਿਚਕਾਰ ਲੰਬਾਈ ਅਤੇ ਇਕੋ ਅਤੇ ਇਕੋ ਦੇ ਵਿਚਕਾਰ ਲੰਬਾਈ". ਲੇਟ 1 = ਟਾਰਗੇਟਲੇਟਿ --ਡ - ਲੈਟਿਫ, ਲੈਟਿਫ = ਟਾਰਗੇਟਲੇਟਿ +ਡ + ਲੈਟਿਫ, ਲੌਨ ਦੇ ਸਮਾਨ. ਲੈਟਿਡਿਫ ~ = ਦੂਰੀ / 2 (ਕਿਲੋਮੀਟਰ ਲਈ), ਜਾਂ ਦੂਰੀ / 1 ਮੀਲ ਲਈ ਦੂਰੀ ਦੇ 2 ਡਿਗਰੀ ਤੋਂ 111 69 ਕਿਮੀ ਹੈ (ਧਰਤੀ ਤੋਂ ਥੋੜ੍ਹਾ ਜਿਹਾ ਪਰਿਵਰਤਨ ਥੋੜਾ ਅੰਡਾਕਾਰ ਹੈ, ਪਰ ਇਸ ਉਦੇਸ਼ ਲਈ ਕਾਫ਼ੀ ਹੈ). ਲੋਂਡਿਫ = ਦੂਰੀ / (ਐਬਸ (ਕੋਸ (ਡਿਗ 1ਰੇਡ (ਵਿਥਕਾਰ)) * 111)) ਜਾਂ 2 ਮੀਲ ਦੀ ਦੂਰੀ 'ਤੇ (ਤੁਸੀਂ ਪਰਿਵਰਤਨ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਅਸਲ ਵਿੱਚ ਥੋੜਾ ਵੱਡਾ ਵਰਗ ਲੈ ਸਕਦੇ ਹੋ). ਫਿਰ ਉਸਦਾ ਨਤੀਜਾ ਲਓ ਅਤੇ ਇਸ ਨੂੰ ਰੇਡੀਅਲ ਸਿਲੈਕਟ ਵਿਚ ਫੀਡ ਕਰੋ. ਸਿਰਫ ਬਾਹਰ ਦੀ ਹੱਦ ਤਾਲਿਕਾਵਾਂ ਦਾ ਹਿਸਾਬ ਲਗਾਉਣਾ ਨਾ ਭੁੱਲੋ - ਜਿਵੇਂ ਕਿ ਸਵੀਕਾਰਯੋਗ ਲੰਬਾਈ ਦੀ ਰੇਂਜ -111 ਤੋਂ +69 ਹੈ ਅਤੇ ਸਵੀਕਾਰਯੋਗ ਵਿਥਕਾਰ ਦੀ ਰੇਂਜ -180 ਤੋਂ +180 ਹੈ - ਜੇ ਤੁਹਾਡੀ ਲੈਟਡਿਫ ਜਾਂ ਲਾਂਡਿਫ ਇਸ ਸੀਮਾ ਤੋਂ ਬਾਹਰ ਚਲਦੀ ਹੈ. . ਯਾਦ ਰੱਖੋ ਕਿ ਜ਼ਿਆਦਾਤਰ ਮਾਮਲਿਆਂ ਵਿੱਚ ਇਹ ਲਾਗੂ ਨਹੀਂ ਹੋ ਸਕਦਾ ਕਿਉਂਕਿ ਇਹ ਖੰਭੇ ਤੋਂ ਖੰਭੇ ਤੱਕ ਸ਼ਾਂਤ ਮਹਾਂਸਾਗਰ ਦੁਆਰਾ ਇੱਕ ਲਾਈਨ ਦੀਆਂ ਗਣਨਾਵਾਂ ਨੂੰ ਪ੍ਰਭਾਵਤ ਕਰਦਾ ਹੈ, ਹਾਲਾਂਕਿ ਇਹ ਚੁਕੋਤਕਾ ਦੇ ਕੁਝ ਹਿੱਸੇ ਅਤੇ ਅਲਾਸਕਾ ਦੇ ਇਕ ਦੂਜੇ ਨੂੰ ਤੋੜਦਾ ਹੈ.
ਜੋ ਅਸੀਂ ਇਸ ਦੁਆਰਾ ਪੂਰਾ ਕਰਦੇ ਹਾਂ ਉਹ ਬਿੰਦੂਆਂ ਦੀ ਸੰਖਿਆ ਵਿਚ ਮਹੱਤਵਪੂਰਣ ਕਮੀ ਹੈ ਜਿਸ ਦੇ ਵਿਰੁੱਧ ਤੁਸੀਂ ਇਹ ਗਣਨਾ ਕਰਦੇ ਹੋ. ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਡੇਟਾਬੇਸ ਵਿਚ ਇਕ ਮਿਲੀਅਨ ਗਲੋਬਲ ਪੁਆਇੰਟ ਇਕੋ ਜਿਹੇ ਬਰਾਬਰ ਵੰਡਿਆ ਗਿਆ ਹੈ ਅਤੇ ਤੁਸੀਂ 100 ਕਿਲੋਮੀਟਰ ਦੇ ਅੰਦਰ ਖੋਜ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੀ ਪਹਿਲੀ (ਤੇਜ਼) ਖੋਜ 10000 ਵਰਗ ਕਿਲੋਮੀਟਰ ਦੇ ਖੇਤਰ ਦੀ ਹੈ ਅਤੇ ਸੰਭਵ ਤੌਰ 'ਤੇ ਲਗਭਗ 20 ਨਤੀਜੇ ਆਉਣਗੇ (ਇਕ ਤੋਂ ਵੀ ਜ਼ਿਆਦਾ ਵੰਡ ਦੇ ਅਧਾਰ ਤੇ) ਲਗਭਗ 500 ਮੀਟਰ ਵਰਗ ਕਿਲੋਮੀਟਰ ਦਾ ਖੇਤਰਫਲ), ਜਿਸਦਾ ਅਰਥ ਹੈ ਕਿ ਤੁਸੀਂ ਇਸ ਪੁੱਛਗਿੱਛ ਲਈ ਗੁੰਝਲਦਾਰ ਦੂਰੀ ਗਣਨਾ ਨੂੰ ਇਕ ਮਿਲੀਅਨ ਵਾਰ ਦੀ ਬਜਾਏ 20 ਵਾਰ ਚਲਾਓ.
ਉਦਾਹਰਣ ਵਿਚ ਮਾਮੂਲੀ ਗਲਤੀ… ਇਹ 50 ਕਿਲੋਮੀਟਰ (100 ਨਹੀਂ) ਦੇ ਅੰਦਰ ਦੀ ਹੋਵੇਗੀ ਕਿਉਂਕਿ ਅਸੀਂ ਆਪਣੇ… ਵਰਗ ਦੇ “ਘੇਰੇ” ਵੱਲ ਵੇਖ ਰਹੇ ਹਾਂ.
ਸ਼ਾਨਦਾਰ ਸਲਾਹ! ਮੈਂ ਅਸਲ ਵਿੱਚ ਇੱਕ ਡਿਵੈਲਪਰ ਦੇ ਨਾਲ ਕੰਮ ਕੀਤਾ ਜਿਸਨੇ ਇੱਕ ਫੰਕਸ਼ਨ ਲਿਖਿਆ ਜਿਸਨੇ ਅੰਦਰਲੇ ਵਰਗ ਨੂੰ ਖਿੱਚਿਆ ਅਤੇ ਫਿਰ ਇੱਕ ਆਵਰਤੀ ਫੰਕਸ਼ਨ ਜਿਸਨੇ ਬਾਕੀ ਬਿੰਦੂਆਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਅਤੇ ਬਾਹਰ ਕੱ toਣ ਲਈ ਘੇਰੇ ਦੇ ਆਲੇ ਦੁਆਲੇ 'ਵਰਗ' ਬਣਾਏ. ਨਤੀਜਾ ਬਹੁਤ ਹੀ ਤੇਜ਼ ਨਤੀਜਾ ਸੀ - ਉਹ ਮਾਈਕਰੋਸਕਿੰਟ ਵਿਚ ਲੱਖਾਂ ਪੁਆਇੰਟਾਂ ਦਾ ਮੁਲਾਂਕਣ ਕਰ ਸਕਦਾ ਸੀ.
ਮੇਰੀ ਉਪਰਲੀ ਪਹੁੰਚ ਨਿਸ਼ਚਤ ਤੌਰ 'ਤੇ' ਕੱਚਾ 'ਹੈ ਪਰ ਸਮਰੱਥ ਹੈ. ਇੱਕ ਵਾਰ ਫਿਰ ਧੰਨਵਾਦ!
ਡੱਗ,
ਮੈਂ ਇਹ ਮੁਲਾਂਕਣ ਕਰਨ ਲਈ mysql ਅਤੇ php ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹਾਂ ਕਿ ਕੀ ਇੱਕ ਲੰਬਾ ਲੰਮਾ ਬਿੰਦੂ ਬਹੁਭਾਸ਼ਾਈ ਦੇ ਅੰਦਰ ਹੈ. ਕੀ ਤੁਹਾਨੂੰ ਪਤਾ ਹੈ ਕਿ ਜੇ ਤੁਹਾਡੇ ਡਿਵੈਲਪਰ ਦੋਸਤ ਨੇ ਇਸ ਕਾਰਜ ਨੂੰ ਕਿਵੇਂ ਪੂਰਾ ਕਰਨਾ ਹੈ ਇਸ ਬਾਰੇ ਕੋਈ ਉਦਾਹਰਣ ਪ੍ਰਕਾਸ਼ਤ ਕੀਤੀ. ਜਾਂ ਕੀ ਤੁਸੀਂ ਕੋਈ ਚੰਗੀ ਉਦਾਹਰਣ ਜਾਣਦੇ ਹੋ. ਪਹਿਲਾਂ ਹੀ ਧੰਨਵਾਦ.
ਸਾਰਿਆਂ ਨੂੰ ਹਾਇ, ਇਹ ਮੇਰਾ ਟੈਸਟ ਐਸਕਿQLਐਲ ਬਿਆਨ ਹੈ:
SELECT DISTINCT area_id, (
(
(
acos( sin( ( 13.65 * pi( ) /180 ) ) * sin( (
`lat_dec` * pi( ) /180 ) ) + cos( ( 13.65 * pi( ) /180 ) ) * cos( (
`lat_dec` * pi( ) /180 )
) * cos( (
( 51.02 - `lon_dec` ) * pi( ) /180 )
)
)
) *180 / pi( )
) *60 * 1.1515 * 1.609344
) AS distance
FROM `post_codes` WHERE distance <= 50
ਅਤੇ ਮਿਸਕੈਲ ਮੈਨੂੰ ਦੱਸ ਰਿਹਾ ਹੈ ਕਿ ਇਹ ਦੂਰੀ, ਇੱਕ ਕਾਲਮ ਦੇ ਰੂਪ ਵਿੱਚ ਮੌਜੂਦ ਨਹੀਂ ਹੈ, ਮੈਂ ਇਸ ਦੁਆਰਾ ਆਰਡਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹਾਂ, ਮੈਂ ਇਸ ਨੂੰ ਬਿਨਾਂ ਕਿਥੇ ਕਰ ਸਕਦਾ ਹਾਂ, ਅਤੇ ਇਹ ਕੰਮ ਕਰਦਾ ਹੈ, ਪਰ ਇਸ ਨਾਲ ਨਹੀਂ ...
“ਕਿੱਥੇ ਹੈ ਦੂਰੀ” ਨੂੰ “ਹੱਦ ਦੂਰੀ” ਨਾਲ ਬਦਲੋ।
ਇੱਕ ਸੁਹਜ ਵਾਂਗ ਕੰਮ ਕਰਦਾ ਹੈ, ਧੰਨਵਾਦ, ਡਗਲਸ!
ਇਹ ਬਹੁਤ ਵਧੀਆ ਹੈ, ਹਾਲਾਂਕਿ ਇਹ ਉਵੇਂ ਹੀ ਹੈ ਜਿਵੇਂ ਪੰਛੀ ਉਡਦੇ ਹਨ. ਗੂਗਲ ਮੈਪਸ ਏਪੀਆਈ ਨੂੰ ਇਸ ਵਿਚ ਕਿਸੇ ਤਰ੍ਹਾਂ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨਾ ਅਤੇ ਇਸ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਬਹੁਤ ਵਧੀਆ ਹੋਏਗਾ (ਸ਼ਾਇਦ ਸੜਕਾਂ ਦੀ ਵਰਤੋਂ ਆਦਿ) ਸਿਰਫ ਆਵਾਜਾਈ ਦੇ ਵੱਖਰੇ ਰੂਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਕ ਵਿਚਾਰ ਦੇਣ ਲਈ. ਮੇਰੇ ਕੋਲ ਅਜੇ ਵੀ ਪੀਐਚਪੀ ਵਿਚ ਇਕ ਸਿਮੂਲੇਟ ਐਨਲਿੰਗ ਫੰਕਸ਼ਨ ਕਰਨਾ ਬਾਕੀ ਹੈ ਜੋ ਯਾਤਰਾ ਕਰਨ ਵਾਲੇ ਸੇਲਜ਼ਮੈਨ ਸਮੱਸਿਆ ਲਈ ਇਕ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੱਲ ਪੇਸ਼ ਕਰਨ ਦੇ ਯੋਗ ਹੋਵੇਗਾ. ਪਰ ਮੈਨੂੰ ਲਗਦਾ ਹੈ ਕਿ ਅਜਿਹਾ ਕਰਨ ਲਈ ਮੈਂ ਤੁਹਾਡੇ ਕੁਝ ਕੋਡਾਂ ਦੀ ਮੁੜ ਵਰਤੋਂ ਕਰਨ ਦੇ ਯੋਗ ਹੋ ਸਕਦਾ ਹਾਂ.
ਹਾਇ ਡਗਲਸ,
ਇਸ ਲੇਖ ਲਈ ਤੁਹਾਡਾ ਬਹੁਤ ਧੰਨਵਾਦ - ਤੁਸੀਂ ਮੈਨੂੰ ਬਹੁਤ ਸਾਰਾ ਸਮਾਂ ਬਚਾਇਆ.
ਆਪਣਾ ਖਿਆਲ ਰੱਖਣਾ,
ਨੀਮਰੋਡ @ ਇਜ਼ਰਾਈਲ
ਚੰਗਾ ਲੇਖ! ਮੈਨੂੰ ਬਹੁਤ ਸਾਰੇ ਲੇਖ ਮਿਲੇ ਜੋ ਦੱਸਦੇ ਹਨ ਕਿ ਦੋ ਬਿੰਦੂਆਂ ਵਿਚਕਾਰ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਿਵੇਂ ਕੀਤੀ ਜਾਏ ਪਰ ਮੈਂ ਸੱਚਮੁੱਚ ਐਸਕਿQLਐਲ ਸਨਿੱਪਟ ਦੀ ਭਾਲ ਕਰ ਰਿਹਾ ਸੀ.
ਧੰਨਵਾਦ ਬਹੁਤ ਵਧੀਆ ਕੰਮ ਕਰਦਾ ਹੈ
ਇਸ ਫਾਰਮੂਲੇ ਲਈ ਤੁਹਾਡਾ ਬਹੁਤ ਧੰਨਵਾਦ. ਇਸ ਨੇ ਕੁਝ ਸਮੇਂ ਲਈ ਇੱਕ ਸਟੋਰ ਲੋਕੇਸ਼ਨ ਪ੍ਰੋਜੈਕਟ 'ਤੇ ਸ਼ੇਵ ਕਰ ਦਿੱਤਾ ਜੋ ਮੇਰੇ ਕੋਲ ਖਾ ਰਿਹਾ ਸੀ.
ਧੰਨਵਾਦ ਇਕ ਬੰਡਲ. ਕੋਡ ਦੀ ਇਸ ਛੋਟੀ ਜਿਹੀ ਲਾਈਨ ਨੇ ਮੈਨੂੰ ਸਟੋਰ ਲੋਕੇਸ਼ਨ ਪ੍ਰੋਜੈਕਟ ਵਿਚ ਕੁਝ ਕਾਫ਼ੀ ਸਮਾਂ ਬਚਾਇਆ!
# 1054 - ਅਣਜਾਣ ਕਾਲਮ 'ਦੂਰੀ' ਵਿਚ 'ਜਿੱਥੇ ਧਾਰਾ'
ਮਨਜ਼ੂਰ
ਮੇਰੇ ਵੱਲੋਂ ਵੀ! ਕੀ ਸੱਮਸਿਆ ਹੈ :-/? "ਦੂਰੀ" - ਕਾਲਮ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰੀਏ? ਸਾਡੀ ਮਦਦ ਕਰੋ ਜੀ !! 🙂
WHEE ਦੀ ਬਜਾਏ HAVING ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ
ਇਸ ਪੇਜ ਨੂੰ ਆਖਰਕਾਰ ਲੱਭਣ ਲਈ 2 ਦਿਨਾਂ ਦੀ ਖੋਜ ਜੋ ਮੇਰੀ ਸਮੱਸਿਆ ਦਾ ਹੱਲ ਕਰਦਾ ਹੈ. ਲਗਦਾ ਹੈ ਕਿ ਮੈਂ ਆਪਣੇ ਵੁਲਫਰਾਮ ਅਲਫਾ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਂਦਾ ਹਾਂ ਅਤੇ ਆਪਣੀ ਗਣਿਤ ਨੂੰ ਵੇਖਦਾ ਹਾਂ. ਵਰਕਿੰਗ ਆਰਡਰ ਵਿੱਚ WHERE ਤੋਂ HAVING ਵਿੱਚ ਮੇਰੀ ਸਕ੍ਰਿਪਟ ਹੈ. ਤੁਹਾਡਾ ਧੰਨਵਾਦ
ਇਸ ਦੀ ਬਜਾਏ ਕਿਥੇ ਧਾਰਾ ਦੀ ਵਰਤੋਂ ਕਰੋ:
ਰਹਿ ਰਹੀ ਦੂਰੀ <50
ਧੰਨਵਾਦ ਜਾਰਜੀ. ਮੈਨੂੰ ਕਾਲਮ ਮਿਲਦਾ ਰਿਹਾ 'ਦੂਰੀ' ਨਹੀਂ ਮਿਲੀ. ਇੱਕ ਵਾਰ ਜਦੋਂ ਮੈਂ WHEE ਨੂੰ ਤਬਦੀਲ ਕਰ ਰਿਹਾ ਹਾਂ ਤਾਂ ਇਹ ਇੱਕ ਸੁਹਜ ਵਾਂਗ ਕੰਮ ਕੀਤਾ!
ਕਾਸ਼ ਇਹ ਪਹਿਲਾ ਪੰਨਾ ਸੀ ਜੋ ਮੈਂ ਇਸ ਤੇ ਪਾਇਆ. ਬਹੁਤ ਸਾਰੇ ਵੱਖ ਵੱਖ ਕਮਾਂਡਾਂ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਬਾਅਦ ਇਹ ਸਹੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਨ ਲਈ ਇਕੋ ਇਕ ਸੀ, ਅਤੇ ਮੇਰੇ ਆਪਣੇ ਡੇਟਾਬੇਸ ਵਿਚ ਫਿੱਟ ਹੋਣ ਲਈ ਘੱਟੋ ਘੱਟ ਤਬਦੀਲੀਆਂ ਦੀ ਜ਼ਰੂਰਤ ਸੀ.
ਬਹੁਤ ਸਾਰਾ ਧੰਨਵਾਦ!
ਕਾਸ਼ ਇਹ ਪਹਿਲਾ ਪੰਨਾ ਸੀ ਜੋ ਮੈਂ ਇਸ ਤੇ ਪਾਇਆ. ਬਹੁਤ ਸਾਰੇ ਵੱਖ ਵੱਖ ਕਮਾਂਡਾਂ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਬਾਅਦ ਇਹ ਸਹੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਨ ਲਈ ਇਕੋ ਇਕ ਸੀ, ਅਤੇ ਮੇਰੇ ਆਪਣੇ ਡੇਟਾਬੇਸ ਵਿਚ ਫਿੱਟ ਹੋਣ ਲਈ ਘੱਟੋ ਘੱਟ ਤਬਦੀਲੀਆਂ ਦੀ ਜ਼ਰੂਰਤ ਸੀ.
ਬਹੁਤ ਸਾਰਾ ਧੰਨਵਾਦ!
ਬਹੁਤ ਸਾਰਾ ਧੰਨਵਾਦ!
ਬਹੁਤ ਸਾਰਾ ਧੰਨਵਾਦ!
ਮੈਨੂੰ ਨਹੀਂ ਲਗਦਾ ਕਿ ਕੋਡ ਹੋਰ ਦਿਖਾਈ ਦੇ ਰਿਹਾ ਹੈ. ਸ਼ਾਇਦ ਇਹ ਫਾਇਰਫਾਕਸ ਹੈ?
ਮੈਂ ਹੁਣੇ ਹੀ ਫਾਇਰਫਾਕਸ ਅਤੇ ਕ੍ਰੋਮ ਦੋਵਾਂ ਦੀ ਜਾਂਚ ਕੀਤੀ ਹੈ ਅਤੇ ਇਹ ਦਿਖਾਈ ਦੇ ਰਿਹਾ ਹੈ. ਫਿਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ?
ਹਾਇ ਬਹੁਤ ਸਾਰਾ ਧੰਨਵਾਦ. ਇਹ ਸੁਹਜ ਵਾਂਗ ਕੰਮ ਕਰਦਾ ਹੈ.
ਧੰਨਵਾਦ ਬਹੁਤ ਸਾਰਾ ਡਗਲਸ. ਇਹ ਸੰਪੂਰਨ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ.
ਮੈਂ ਜਾਣਦਾ ਹਾਂ ਕਿ ਇਹ ਫਾਰਮੂਲਾ ਕੰਮ ਕਰਦਾ ਹੈ, ਪਰ ਮੈਂ ਨਹੀਂ ਦੇਖ ਸਕਦਾ ਕਿ ਧਰਤੀ ਦੇ ਘੇਰੇ ਨੂੰ ਕਿੱਥੇ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ. ਕ੍ਰਿਪਾ ਕਰਕੇ ਕੋਈ ਮੈਨੂੰ ਪ੍ਰਕਾਸ਼ਵਾਨ ਕਰ ਸਕਦਾ ਹੈ?
ਟਿਮ, ਹੈਵਰਸਾਈਨ ਫਾਰਮੂਲੇ ਦੀ ਪੂਰੀ ਵਿਆਖਿਆ ਲਈ (ਇਹ ਕੋਡ ਨਹੀਂ ਹੈ), ਵਿਕੀਪੀਡੀਆ ਦਾ ਲੇਖ ਦੇਖੋ: http://en.wikipedia.org/wiki/Haversine_formula
ਸੁੰਦਰ! ਇਹ ਮੇਰੀ ਬਹੁਤ ਮਦਦ ਕੀਤੀ ਹੈ!
ਸ਼ਾਨਦਾਰ ਚੀਜ਼ਾਂ ਡਗਲਸ. ਕੀ ਤੁਸੀਂ ਦੋ ਪੁਆਇੰਟਾਂ ਨੂੰ ਲੰਮਾ / ਲੈਟ / ਬੇਅਰਿੰਗ ਦੇ ਕੇ ਲਾਂਘਾ ਪੁਆਇੰਟ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ?
ਹਾਲੇ ਇਹ ਨਹੀਂ ਕੀਤਾ, ਖਾਨ!
ਤੁਹਾਡਾ ਧੰਨਵਾਦ ਹੈ ਡਗਲਸ, ਐਸ ਕਿQLਐਲ ਕਿeryਰੀ ਬਿਲਕੁਲ ਉਹੀ ਹੈ ਜਿਸਦੀ ਮੈਨੂੰ ਲੋੜ ਸੀ, ਅਤੇ ਮੈਂ ਸੋਚਿਆ ਕਿ ਮੈਨੂੰ ਇਹ ਆਪਣੇ ਆਪ ਲਿਖਣਾ ਪਏਗਾ. ਤੁਸੀਂ ਮੈਨੂੰ ਸੰਭਵ ਤੌਰ 'ਤੇ ਘੰਟਿਆਂ ਦੇ ਲੰਬਕਾਰ ਸਿੱਖਣ ਦੇ ਵਕਰ ਤੋਂ ਬਚਾ ਲਿਆ ਹੈ!
ਮੈਂ ਤਰੁੱਟੀ-ਮੇਲ ਪ੍ਰਾਪਤ ਕਰਦਾ ਰਿਹਾ: MySQL ਕਿeryਰੀ 'ਤੇ' ਜਿਥੇ ਧਾਰਾ 'ਵਿਚ ਅਣਜਾਣ ਕਾਲਮ.
ਪੀਟਰ, ਕਿਰਪਾ ਕਰਕੇ ਹੋਰ ਟਿੱਪਣੀਆਂ ਨੂੰ ਪੜ੍ਹੋ. ਇਹ ਜਾਪਦਾ ਹੈ ਕਿ ਕੁਝ ਲੋਕਾਂ ਨੂੰ WHEE / HAVING ਲਈ ਇੱਕ ਵੱਖਰਾ ਸੰਟੈਕਸ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪਈ.
ਇਸ ਮਹਾਨ ਲੇਖ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ! ਮੇਰੇ ਡੀਬੀ 'ਤੇ ਕੋਡ ਨੂੰ ਸਿਰਫ ਟੈਸਟ ਕੀਤਾ ਅਤੇ ਵਧੀਆ ਕੰਮ ਕੀਤਾ!
ਡਗਲਸ, ਇਸ ਸ਼ਾਨਦਾਰ ਕੋਡ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ. ਮੇਰੇ ਜੀਪੀਐਸ ਕਮਿ communityਨਿਟੀ ਪੋਰਟਲ ਤੇ ਇਹ ਕਿਵੇਂ ਕਰਨਾ ਹੈ ਇਸ ਬਾਰੇ ਮੇਰੇ ਸਿਰ ਨੂੰ ਚੀਰ ਰਿਹਾ ਹੈ. ਤੁਸੀਂ ਮੇਰੇ ਘੰਟੇ ਬਚਾ ਲਏ ਹਨ.
ਸੁਣ ਕੇ ਬਹੁਤ ਵਧੀਆ, ਐਸ਼!
ਇਸ ਮਦਦਗਾਰ ਲੇਖ ਨੂੰ ਪੋਸਟ ਕਰਨ ਲਈ ਧੰਨਵਾਦ,
ਪਰ ਕਿਸੇ ਕਾਰਨ ਕਰਕੇ ਮੈਂ ਪੁੱਛਣਾ ਚਾਹਾਂਗਾ
mysql db ਵਿਚਲੇ ਕੋਆਰਡਾਂ ਅਤੇ ਯੂਜ਼ਰ ਦੁਆਰਾ ਪੀ ਐਚ ਪੀ ਵਿਚ ਪਾਉਣ ਵਾਲੇ ਕੋਆਰਡਾਂ ਵਿਚਕਾਰ ਦੂਰੀ ਕਿਵੇਂ ਪ੍ਰਾਪਤ ਕਰੀਏ?
ਵਧੇਰੇ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਵਰਣਨ ਲਈ:
1. ਉਪਭੋਗਤਾ ਨੂੰ ਡੀਬੀ ਅਤੇ ਉਪਭੋਗਤਾ ਦੇ ਖੁਦ ਦੇ ਕੋਆਰਡਾਂ ਤੋਂ ਨਿਰਧਾਰਤ ਡੇਟਾ ਦੀ ਚੋਣ ਕਰਨ ਲਈ [ਆਈਡੀ] ਪਾਉਣਾ ਪੈਂਦਾ ਹੈ
2. ਪੀ ਐੱਚ ਪੀ ਫਾਈਲ [ਆਈਡੀ] ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ ਟਾਰਗੇਟ ਡੇਟਾ (ਕੋਆਰਡਜ਼) ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ ਅਤੇ ਫਿਰ ਉਪਭੋਗਤਾ ਅਤੇ ਟੀਚੇ ਦੇ ਬਿੰਦੂ ਵਿਚਕਾਰ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰਦੀ ਹੈ
ਜਾਂ ਸਿਰਫ ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਤੋਂ ਦੂਰੀ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ?
$ ਕਿryਰੀ = “ਚੁਣੋ *, ((ਐਕੋਸ (ਪਾਪ ((.... ਵਿਥਕਾਰ." $ ਵਿਥਕਾਰ. "* ਪਾਈ () / 180)) ਕੋਸ ((` ਵਿਥਕਾਰ * ਪਾਈ () / 180)) * ਕੋਸ (((“. $ ਲੰਬਾਈ. ))) * 180 / pi ()) * 180 * 180 * 180) ਦੂਰੀ ਤੋਂ ਜਿਵੇਂ ਕਿ MyTable` ਜਿੱਥੋਂ ਦੀ ਦੂਰੀ> = ". $ ਦੂਰੀ." >>>> ਕੀ ਮੈਂ ਇਥੋਂ ਦੂਰੀ "ਬਾਹਰ ਕੱ” "ਸਕਦਾ ਹਾਂ?
ਇੱਕ ਵਾਰ ਫਿਰ ਧੰਨਵਾਦ,
ਟਿੰਮੀ ਐਸ
ਕੋਈ ਪ੍ਰਵਾਹ ਨਹੀਂ, ਮੈਂ ਇਹ ਪਤਾ ਲਗਾ ਲਿਆ ਹੈ ਕਿ php ਵਿਚ “ਕਾਰਜ” ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ
$ dis = getDistanceBetweenPPointNww ($ userLati, $ userLongi, $ lati, $ Longi, $ ਇਕਾਈ = 'Km')
ਬਹੁਤ ਸਾਰਾ ਧੰਨਵਾਦ!!
ਠੀਕ ਹੈ, ਜਿਹੜੀ ਵੀ ਮੈਂ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ ਉਹ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀ. ਮੇਰਾ ਮਤਲਬ, ਮੇਰੇ ਕੋਲ ਕੀ ਕੰਮ ਹੈ, ਪਰ ਦੂਰੀਆਂ ਬਹੁਤ ਦੂਰ ਹਨ.
ਕੋਈ ਵੀ ਸੰਭਵ ਤੌਰ 'ਤੇ ਦੇਖ ਸਕਦਾ ਹੈ ਕਿ ਇਸ ਕੋਡ ਵਿਚ ਕੀ ਗ਼ਲਤ ਹੈ?
ਜੇ (ਆਈਸੈੱਟ ($ _ POST ['ਪੇਸ਼ ”])) {$ z = $ _POST [' ਜ਼ਿਪਕੋਡ ']; $ r = $ _POST ['ਰੇਡੀਅਸ']; ਗੂੰਜ “ਲਈ ਨਤੀਜੇ“. $ z; $ sql = mysql_query (“ਸਿਲੈਕਟ ਕਰੋ ਡਿਸਸਟਿਕ ਐੱਮ. ਜ਼ਿਪਕੋਡ, ਐੱਮ. ਮਕੈਟਨੇਮ, ਐਮ. ਲੋਕਾਐਡਸਟੇਸਟ, ਐੱਮ. ਲੋਕਾ ਐਡੀਸਿਟੀ, ਐਮ. ਸ਼ਹਿਰ, z1.state ਤੋਂ mrk m, zip z1, zip z1 ਕਿੱਥੇ m.zipcode = z2.zipcode ਅਤੇ z1.zipcode = $ z ਅਤੇ (1 * ਏਕੋਜ਼ (ਟ੍ਰਾਂਸਕੇਟ (ਪਾਪ z z..lat / 1) * sin (m. y2 / 1) + ਕੋਸ (z2.lat / 3963) * ਕੋਸ (m.y2 / 57.2958) * ਕੋਸ (m.x1 / 57.2958 - z2.lon / 57.2958), 1)) <= $ r ") ਜਾਂ ਮਰ (mysql_error ()); ਜਦਕਿ ($ ਕਤਾਰ = mysql_fetch_array ($ sql)) {$ store57.2958 = $ ਕਤਾਰ ['MktName']. ""; $ ਸਟੋਰ = $ ਕਤਾਰ ['LocAddSt' ']. "”; . ਸਟੋਰ. = $ ਕਤਾਰ ['LocAddCity']. ",". $ ਕਤਾਰ ['LocAddState']. " “. $ ਕਤਾਰ ['ਜ਼ਿਪਕੋਡ']; itude ਵਿਥਕਾਰ 1 = $ ਕਤਾਰ ['ਲੈਟ']; $ ਲੰਬਕਾਰ 57.2958 = $ ਕਤਾਰ ['ਲੌਨ']; $ ਵਿਥਕਾਰ 2 = $ ਕਤਾਰ ['y57.2958']; $ ਲੰਬਕਾਰ 8 = $ ਕਤਾਰ ['x1']; $ ਸ਼ਹਿਰ = $ ਕਤਾਰ ['ਸ਼ਹਿਰ']; $ ਰਾਜ = $ ਕਤਾਰ ['ਸਟੇਟ']; $ ਡਿਸ = getnew ($ ਵਿਥਕਾਰ 1, $ ਲੰਬਕਾਰ 1, $ ਵਿਥਕਾਰ 2, $ ਲੰਬਕਾਰ 1, $ ਇਕਾਈ = 'ਮੀ'); // $ ਡਿਸ = ਦੂਰੀ ($ ਲੇਟ 2, $ ਲੋਂਨ 1, $ ਲੈਟ 1, $ ਲੋਂ 1); $ ਪ੍ਰਮਾਣਿਤ = $ ਕਤਾਰ ['ਪ੍ਰਮਾਣਿਤ']; ਜੇ ($ ਪ੍ਰਮਾਣਿਤ == '2') cho ਗੂੰਜ “”; ਏਕੋ "". $ ਸਟੋਰ. ""; ਇਕੋ $ ਡਿਸ. " ਮੀਲ ਦੂਰ"; ਗੂੰਜ “”; } ਹੋਰ {ਇਕੋ “”. $ ਸਟੋਰ। ””; ਇਕੋ $ ਡਿਸ. " ਮੀਲ ਦੂਰ"; ਗੂੰਜ “”; }}}
ਮੇਰੇ ਫੰਕਸ਼ਨ.ਐਫਪੀ ਕੋਡ
ਫੰਕਸ਼ਨ ਪ੍ਰਾਪਤ ਕਰੋ $ ਦੂਰੀ = (ਪਾਪ (ਡਿਗ 1ਰੇਡ ($ ਵਿਥਕਾਰ 1)) * ਪਾਪ (ਡਿਗ 2ਰੇਡ ($ ਵਿਥਕਾਰ 2)) + (ਕੋਸ (ਡਿਗ 1 ਬਰਾਡ ($ ਵਿਥਕਾਰ 2)) * ਕੋਸ (ਡਿਗ 2ਰੇਡ ($ ਵਿਥਕਾਰ 1)) ਕੋਸ (ਡੀਗ 2 ਪਾਰ ($ ਥੈਟਾ)) ); $ ਦੂਰੀ = ਏਕੋਸ ($ ਦੂਰੀ); $ ਦੂਰੀ = Rad2deg ($ ਦੂਰੀ); $ ਦੂਰੀ = $ ਦੂਰੀ * 2 * 1; ਸਵਿਚ ($ ਇਕਾਈ) {ਕੇਸ 'ਮੀ': ਬਰੇਕ; ਕੇਸ 'ਕਿਮੀ': $ ਦੂਰੀ = $ ਦੂਰੀ * 2; } ਵਾਪਸੀ (ਗੋਲ ($ ਦੂਰੀ, 2)); }
ਅਗਰਿਮ ਧੰਨਵਾਦ
ਇਸ ਲੇਖ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ. ਮੇਰੇ ਕੋਡ ਦੇ ਨਾਲ ਵਧੀਆ ਕੰਮ ਕਰਨਾ. 🙂
ਹੇ ਡਗਲਸ, ਮਹਾਨ ਲੇਖ. ਮੈਨੂੰ ਭੂਗੋਲਿਕ ਸੰਕਲਪਾਂ ਅਤੇ ਕੋਡ ਦੀ ਤੁਹਾਡੀ ਵਿਆਖਿਆ ਸੱਚਮੁੱਚ ਦਿਲਚਸਪ ਲੱਗੀ. ਮੇਰਾ ਇੱਕੋ ਇੱਕ ਸੁਝਾਅ ਸਪੇਸ ਅਤੇ ਡਿਸਪਲੇ ਲਈ ਕੋਡ ਨੂੰ ਜੋੜਨਾ (ਜਿਵੇਂ ਸਟੈਕਓਵਰਫਲੋ, ਉਦਾਹਰਣ ਵਜੋਂ) ਹੋਵੇਗਾ. ਮੈਂ ਸਮਝਦਾ ਹਾਂ ਕਿ ਤੁਸੀਂ ਸਪੇਸ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਪਰ ਰਵਾਇਤੀ ਕੋਡ ਫਾਸਲਾ / ਇੰਡੈਂਟੇਸ਼ਨ ਮੇਰੇ ਲਈ ਇੱਕ ਪ੍ਰੋਗਰਾਮਰ ਹੋਣ ਦੇ ਨਾਤੇ, ਪੜ੍ਹਨਾ ਅਤੇ ਵੰਡਣਾ ਬਹੁਤ ਸੌਖਾ ਬਣਾ ਦਿੰਦਾ ਹੈ. ਵੈਸੇ ਵੀ, ਇਹ ਇਕ ਛੋਟੀ ਜਿਹੀ ਚੀਜ਼ ਹੈ. ਮਹਾਨ ਕੰਮ ਜਾਰੀ ਰੱਖੋ.
ਧੰਨਵਾਦ! ਮੈਂ ਪੋਸਟ ਨੂੰ ਥੋੜਾ ਜਿਹਾ ਸੰਸ਼ੋਧਿਤ ਕੀਤਾ ਹੈ ... ਪਰ ਸਮੀਕਰਣਾਂ ਨੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਕਮਰਾ ਲਿਆ ਹੈ ਅਤੇ ਇੰਨੇ ਲੰਬੇ ਹਨ ਕਿ ਮੈਨੂੰ ਯਕੀਨ ਨਹੀਂ ਹੈ ਕਿ ਇਹ ਬਹੁਤ ਜ਼ਿਆਦਾ ਮਦਦ ਕਰਦਾ ਹੈ.
ਤੁਹਾਡਾ ਬਹੁਤ ਬਹੁਤ ਧੰਨਵਾਦ.
ਇੱਥੇ ਫੰਕਸ਼ਨ ਦੇ ਨਾਲ ਇਸਤੇਮਾਲ ਕਰਦੇ ਹੋਏ ਸਾਨੂੰ ਇੱਕ ਕਿਸਮ ਦੀ ਦੂਰੀ ਮਿਲ ਰਹੀ ਹੈ..ਜਦੋਂ ਇਸਦੀ ਆਉਣ ਵਾਲੀ ਦੂਸਰੀ ਕਿਸਮ ਦੀ ਦੂਰੀ ਨੂੰ ਪੁੱਛਦੇ ਹੋਏ
ਮੈਂ ਦੋ ਰਾਜਾਂ ਦਰਮਿਆਨ ਦੂਰੀ ਦੀ ਗਣਨਾ ਨਹੀਂ ਕਰਾਂਗਾ
ਮੁੱਕਸ ਗ੍ਰੇਸੀਅਸ ਪੋਰਨ ਟੈਨ ਹਰਮੋਸੋ ਕੋਡੀਗੋ…
ਇਹ ਮੈਂ ਵਧੀਆ ਕੋਸਿਨਸ ਫੰਕਸ਼ਨਾਂ ਵਿਚ ਸ਼ਾਮਲ ਹਾਂ. ਮੈਂ ਗਣਿਤ ਨੂੰ ਨਹੀਂ ਜਾਣਦਾ, ਪਰ ਧੰਨਵਾਦ!
ਵਧੀਆ ਨੌਕਰੀ… 🙂 (y)
ਇਹ ਚੁਣੋ ਕਿ ਤੇ ਕਿੱਥੇ ਹੈ ਅਤੇ ਕਿੱਥੇ ਦੋ ਵਾਰ ਫਾਰਮੂਲੇ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਤੇਜ਼ (mysql 5.9) ਲੱਗਦਾ ਹੈ.
$ ਫਾਰਮੂਲਾ = “(((ਏਕੋਸ (ਪਾਪ. (“. $ ਵਿਥਕਾਰ। ”* ਪਾਈ () / 180)) * ਪਾਪ ((` ਵਿਥਕਾਰ * ਪਾਈ () / 180)) + ਕੋਸ ((“. $ ਵਿਥਕਾਰ. ”* ਪਾਈ () / 180)) ਕੋਸ ((` ਵਿਥਕਾਰ * ਪਾਈ () / 180)) ਕੋਸ (((“. $ देशांतर.” - `देशांतर) * ਪੀ ((/ / 180)))) * 180 / ਪਾਈ ()) * 60 * 1.1515 * 1.609344) ";
$ ਵਰਗ = 'ਚੋਣ *,'. $ ਫਾਰਮੂਲਾ. ' ਜਿੱਥੋਂ ਫਾਸਲੇ ਟੇਬਲ ਤੋਂ ਦੂਰੀ '.. $ ਫਾਰਮੂਲਾ.' <= '. $ ਦੂਰੀ;
ਧੰਨਵਾਦ…
ਕੰਮ ਨਹੀ ਕਰ ਰਿਹਾ ਜੇ
“ਕਿੱਥੇ ਦੂਰੀ”
ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ, ਜੇ
“ਦੂਰੀ ਬਣਾ ਰਹੀ ਹੈ”
ਇਸ ਲੇਖ ਨੂੰ ਸ਼ੇਅਰ ਕਰਨ ਲਈ ਬਹੁਤ ਧੰਨਵਾਦ. ਇਹ ਬਹੁਤ ਮਦਦਗਾਰ ਹੈ.
ਪੀਐਚਪੀ ਪਹਿਲਾਂ ਇੱਕ ਸਧਾਰਣ ਸਕ੍ਰਿਪਟਿੰਗ ਪਲੇਟਫਾਰਮ ਵਜੋਂ ਬਣਾਈ ਗਈ ਸੀ ਜਿਸ ਨੂੰ "ਪਰਸਨਲ ਹੋਮ ਪੇਜ" ਕਹਿੰਦੇ ਹਨ. ਅੱਜ ਕੱਲ੍ਹ ਪੀਐਚਪੀ (ਹਾਈਪਰਟੈਕਸਟ ਪ੍ਰੀਪ੍ਰੋਸੈਸਸਰ ਲਈ ਛੋਟਾ) ਮਾਈਕਰੋਸੋਫਟ ਦੀ ਐਕਟਿਵ ਸਰਵਰ ਪੇਜਜ਼ (ਏਐਸਪੀ) ਤਕਨਾਲੋਜੀ ਦਾ ਵਿਕਲਪ ਹੈ.
ਪੀਐਚਪੀ ਇੱਕ ਓਪਨ ਸੋਰਸ ਸਰਵਰ-ਸਾਈਡ ਲੈਂਗਵੇਜ ਹੈ ਜੋ ਡਾਇਨਾਮਿਕ ਵੈੱਬ ਪੇਜਾਂ ਬਣਾਉਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ. ਇਸ ਨੂੰ HTML ਵਿਚ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਪੀਐਚਪੀ ਆਮ ਤੌਰ ਤੇ ਲੀਨਕਸ / ਯੂਨਿਕਸ ਵੈੱਬ ਸਰਵਰਾਂ ਤੇ ਇੱਕ ਮਾਈ ਐਸਕਿQLਐਲ ਡੇਟਾਬੇਸ ਦੇ ਨਾਲ ਜੋੜ ਕੇ ਵਰਤੀ ਜਾਂਦੀ ਹੈ. ਇਹ ਸ਼ਾਇਦ ਬਹੁਤ ਮਸ਼ਹੂਰ ਸਕ੍ਰਿਪਟਿੰਗ ਭਾਸ਼ਾ ਹੈ.
ਮੈਂ ਉਪਰੋਕਤ ਹੱਲ ਪਾਇਆ ਕਿ ਸਹੀ ਤਰ੍ਹਾਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ.
ਮੈਨੂੰ ਇਸ ਵਿੱਚ ਬਦਲਣ ਦੀ ਜ਼ਰੂਰਤ ਹੈ:
$ ਕਿqਕਿq = “ਚੁਣੋ *, ((ਐਕੋਸ (ਪਾਪ ((.... ਵਿਥਕਾਰ.” * ਪਾਈ () / 180)) * ਪਾਪ ((`ਲਾਟੀ * ਪੀਆਈ () / 180)) + ਕੋਸ ((". $ ਵਿਥਕਾਰ. "* ਪਾਈ () / 180)) ਕੋਸ ((` ਲਾਟੀ * ਪਾਈ () / 180)) * ਕੋਸ (((". $ ਲੰਬਾਈ." - `ਲੰਬਾਈ) * ਪਾਈ () / 180) ))) * 180 / ਪੀਆਈ ()) * 60 * 1.1515) ਦੂਰੀ ਤੋਂ "ਰਜਿਸਟਰ ਕਰੋ";
ਧੰਨਵਾਦ ਕੁਪੇਂਦਰ!
ਧੰਨਵਾਦ ਸਰ ਜੀ ਪੂਰੀ ਤਰਾਂ ਨਾਲ ਘੁੰਮ ਰਹੇ ਹਨ .. ਪਰ ਮੇਰਾ ਇਕ ਸਵਾਲ ਹੈ ਕਿ ਜੇ ਮੈਂ ਦਸ਼ਮਲਵ ਬਿੰਦੂ ਤੋਂ ਬਿਨਾਂ ਆਉਟਪੁੱਟ ਲੈਣਾ ਚਾਹੁੰਦਾ ਹਾਂ ਤਾਂ ਮੈਂ ਕੀ ਕਰ ਸਕਦਾ ਹਾਂ ..?
ਪਹਿਲਾਂ ਹੀ ਧੰਨਵਾਦ.
ਹੈਲੋ, ਕ੍ਰਿਪਾ ਕਰਕੇ ਮੈਨੂੰ ਇਸ ਵਿਚ ਤੁਹਾਡੀ ਮਦਦ ਦੀ ਸਚਮੁੱਚ ਜ਼ਰੂਰਤ ਹੋਏਗੀ.
ਮੈਂ ਆਪਣੇ ਵੈੱਬ-ਸਰਵਰ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਬੇਨਤੀ ਕੀਤੀ http://localhost:8000/users/findusers/53.47792/-2.23389/20/
53.47792 = itude ਵਿਥਕਾਰ
-2.23389 = itude ਲੰਬਾਈ
ਅਤੇ 20 = ਉਹ ਦੂਰੀ ਜੋ ਮੈਂ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ
ਹਾਲਾਂਕਿ ਤੁਹਾਡੇ ਫਾਰਮੂਲੇ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ, ਇਹ ਮੇਰੇ ਡੀ ਬੀ ਦੀਆਂ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ
$ ਨਤੀਜੇ = ਡੀ ਬੀ :: ਚੁਣੋ (ਡੀ ਬੀ :: ਕੱਚਾ ("ਚੁਣੋ *, ((ਐਕੋਸ (ਪਾਪ. (". $ ਵਿਥਕਾਰ. "* ਪਾਈ () / 180))) ਪਾਪ ((ਲੈਟ * ਪਾਈ () / 180 )) + ਕੋਸ ((“. $ ਵਿਥਕਾਰ.” * ਪਾਈ () / 180)) ਕੋਸ ((ਲਾਟ * ਪਾਈ () / 180)) * ਕੋਸ (((“. $ देशांतर।” - ਐਲਐਨਜੀ) * ਪੀਆਈ ( ) / 180)))) * 180 / ਪਾਈ ()) * 60 * 1.1515 * 1.609344) ਦੂਰੀਆਂ ਜਿਵੇਂ ਕਿ ਮਾਰਕਰਾਂ ਤੋਂ ਦੂਰੀ ਹੈ> = “. $ ਦੂਰੀ));
[{"ਆਈਡੀ": 1, "ਨਾਮ": "ਫ੍ਰੈਂਕੀ ਜੌਨੀ ਅਤੇ ਲੁਈਗੋ ਬਹੁਤ", "ਪਤਾ": "939 ਡਬਲਯੂ ਐਲ ਕੈਮਿਨੋ ਰੀਅਲ, ਮਾਉਂਟੇਨ ਵਿ View, ਸੀਏ", "ਲੈਟ": 37.386337280273, "ਐਲਐਨਜੀ": - 122.08582305908, "ਦੂਰੀ": 16079.294719663}, {"ਆਈਡੀ": 2, "ਨਾਮ": "ਐਮੀਸੀ ਦਾ ਈਸਟ ਕੋਸਟ ਪਾਈਜ਼ੇਰੀਆ", "ਪਤਾ": "790 ਕੈਸਟ੍ਰੋ ਸੇਂਟ, ਮਾਉਂਟੇਨ ਵਿ View, ਸੀਏ", "ਲੈਟ": 37.387138366699, "ਐਲਐਨਜੀ": -122.08323669434, "ਦੂਰੀ": 16079.175940152}, {"id": 3, "ਨਾਮ": "ਕਪਸ ਦਾ ਪੀਜ਼ਾ ਬਾਰ ਐਂਡ ਗਰਿਲ", "ਪਤਾ": "191 ਕੈਸਟ੍ਰੋ ਸੇਂਟ, ਮਾਉਂਟੇਨ ਵਿ View, CA", "ਲੈਟ": 37.393886566162, "Lng": - 122.07891845703, "ਦੂਰੀ": 16078.381373826}, {"ਆਈਡੀ": 4, "ਨਾਮ": "ਗੋਲ ਟੇਬਲ ਪੀਜ਼ਾ: ਮਾਉਂਟੇਨ ਵਿ View", "ਐਡਰੈੱਸ": "570 ਐਨ ਸ਼ੋਰੇਲਿਨ ਬਲਾਵਡੀ, ਮਾਉਂਟੇਨ ਵਿ View, ਸੀਏ", "Lat": 37.402652740479, "lng": - 122.07935333252, "ਦੂਰੀ": 16077.420540582}, {“id”: 5, ”ਨਾਮ”: “ਟੋਨੀ ਅਤੇ ਐਲਬਾ ਦਾ ਪੀਜ਼ਾ ਐਂਡ ਪਾਸਤਾ”, “ਪਤਾ”: ”619 ਐਸਕੁਏਲਾ ਐਵੇ, ਮਾਉਂਟੇਨ ਵੇਖੋ, CA "," ਲੈਟ ": 37.394012451172," lng ": - 122.09552764893," ਦੂਰੀ ": 16078.563225154}, {" id ": 6," ਨਾਮ ":" ਓਰੇਗਾਨੋ ਵੁੱਡ-ਫਾਈਡ ਪੀਜ਼ਾ "," ਪਤਾ ":" 4546 ਏਲ ਕੈਮਿਨੋ ਰੀਅਲ, ਲੋਸ ਅਲਟੌਸ, ਸੀਏ ”,“ ਲੈਟ ”: .37.401725769043,,“ ਐਲਐਨਜੀ ”: - १२२.१122.11464691162,,“ ਦੂਰੀ ”: 16077.937560795..7}, {“ id ": 24," ਨਾਮ ":" ਬਾਰ ਅਤੇ ਗਰਿੱਲ "," ਪਤਾ ":" 53.485118865967 ਵ੍ਹਾਈਟਲੀ ਸਟ੍ਰੀਟ, ਮੈਨਚੇਸਟਰ "," ਲੈਟ ": 2.1828699111938," lng ": - 8038.7620112314," ਦੂਰੀ ": XNUMX}]
ਮੈਂ ਸਿਰਫ 20 ਕਿਲੋਮੀਟਰ ਦੀਆਂ ਕਤਾਰਾਂ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ ਪਰ ਇਹ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਲਿਆਉਂਦਾ ਹੈ. ਕਿਰਪਾ ਕਰਕੇ ਮੈਂ ਕੀ ਗਲਤ ਕਰ ਰਿਹਾ ਹਾਂ
ਮੈਂ ਇੱਕ ਸਮਾਨ ਪੁੱਛਗਿੱਛ ਦੀ ਤਲਾਸ਼ ਕਰ ਰਿਹਾ ਹਾਂ ਪਰ ਥੋੜਾ ਜਿਹਾ ਅੱਗੇ ਵਧਿਆ - ਸੰਖੇਪ ਵਿੱਚ ਇਹ ਸਾਰੇ ਕੋਆਰਡੀਨੇਟਾਂ ਨੂੰ ਹਰੇਕ ਕੋਆਰਡੀਨੇਟ ਦੇ 2 ਮੀਲ ਦੇ ਅੰਦਰ ਸਮੂਹ ਕਰਨਾ ਹੈ ਅਤੇ ਫਿਰ ਗਿਣੋ ਕਿ ਹਰੇਕ ਸਮੂਹ ਵਿੱਚ ਕਿੰਨੇ ਕੋਆਰਡੀਨੇਟ ਹਨ ਅਤੇ ਸਿਰਫ ਇੱਕ ਸਮੂਹ ਨੂੰ ਆਉਟਪੁਟ ਕਰੋ ਜਿਸਦੇ ਕੋਲ ਸਭ ਤੋਂ ਵੱਧ ਕੋਆਰਡੀਨੇਟ ਹਨ - ਭਾਵੇਂ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਉਹਨਾਂ ਸਮੂਹਾਂ ਵਿੱਚ ਇੱਕ ਤੋਂ ਵੱਧ ਸਮੂਹ ਹਨ ਜਿਨ੍ਹਾਂ ਦੇ ਕੋਲ ਸਭ ਤੋਂ ਵੱਧ ਕੋਆਰਡੀਨੇਟ ਹਨ - ਸਿਰਫ ਉਹੀ ਸਭ ਤੋਂ ਵੱਡੀ ਸੰਖਿਆ ਵਾਲੇ ਸਮੂਹਾਂ ਤੋਂ ਬੇਤਰਤੀਬੇ ਸਮੂਹ ਨੂੰ ਆਉਟਪੁਟ ਕਰੋ -