欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php 附近店鋪

吳曉飛1年前8瀏覽0評論
PHP實現附近店鋪功能 現在,當我們想要找到周圍的餐館、超市、咖啡店等等,我們可以使用我們的手機地圖應用程序。這些應用程序可以根據我們當前的位置來顯示我們附近的服務商和商店。但是,這些應用程序如何知道附近的店鋪呢?答案就是:經緯度。 1、通過經緯度來計算距離 PHP內建了一個數學函數庫,可以很方便地計算兩個地球坐標之間的距離,這個庫在PHP5及更高版本中可以使用,輕松處理地球上的經緯度。 function getDistance($lat1, $lng1, $lat2, $lng2) { $earthRadius = 6378137; // approx Earth radius in meters // convert from degrees to radians $latFrom = deg2rad($lat1); $lonFrom = deg2rad($lng1); $latTo = deg2rad($lat2); $lonTo = deg2rad($lng2); $latDelta = $latTo - $latFrom; $lonDelta = $lonTo - $lonFrom; $angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) + cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2))); return round($angle * $earthRadius); } 上述代碼可以計算出任意兩個地球坐標之間的距離(單位為米),我們可以用這個函數來過濾掉那些距離當前位置太遠的店。 2、將店鋪的坐標存儲到數據庫中 如果把幾千個店鋪的坐標直接存在一個PHP數組里,那么這將是一種可行的策略,但是如果要添加或刪除一家店鋪,就需要編輯PHP代碼了。這個過程不僅麻煩,還可能會導致代碼錯誤。因此,最好的方法是根據需要將店鋪的信息存儲在數據庫表中。 我們需要以下列存儲店鋪信息的數據表: 建立shops表 CREATE TABLE shops ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, lat DECIMAL(10, 8) NOT NULL, lng DECIMAL(11, 8) NOT NULL, PRIMARY KEY (id) ); 然后,通過將店鋪的信息插入到這個表中來創建新店。 3、獲取當前位置的經緯度并查詢數據庫 對于web應用程序,要獲取用戶的經緯度,可以使用H5的Geolocation API。當我們通過JavaScript代碼調用navigator.geolocation.getCurrentPosition()方法時,瀏覽器將請求用戶的位置。如果用戶同意,瀏覽器將返回其經緯度。 function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { alert("Geolocation is not supported by this browser."); } } function showPosition(position) { console.log("Latitude: " + position.coords.latitude + "
Longitude: " + position.coords.longitude); } 我們可以在PHP中使用sql語句查詢數據庫來獲取到這個位置附近的店鋪。 function getNearbyShops($lat, $lng, $distance) { $mysqli = new mysqli("localhost", "user", "password", "dbname"); $sql = "SELECT name, lat, lng, ( 6378137 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM shops HAVING distance< " . $distance . " ORDER BY distance ASC;"; $result = $mysqli->query($sql); $shops = array(); while($row = $result->fetch_assoc()) { $shops[] = $row; } $mysqli->close(); return $shops; } 通過上述代碼,我們就可以獲取到當前位置附近指定距離內的店鋪的相關信息,并返回到前端展示給用戶。 綜上所述,PHP可以很方便地實現附近店鋪的功能。只要掌握了如何通過經緯度計算距離和將店鋪的信息存儲在數據庫中,就可以輕松地獲取用戶的位置和附近的店鋪。在本文所提供的代碼的基礎上進行調整和擴展,基本上就可以創建一個功能齊全的附近店鋪應用程序了。