PHP melaksanakan pesanan makanan berasaskan lokasi
Dalam kehidupan yang selesa hari ini, memesan makanan telah menjadi perkhidmatan yang mudah didapati pelbagai jenis makanan. Walaupun begitu mudah, pesanan makanan juga menghadapi beberapa masalah, seperti lokasi restoran yang tidak jelas, kedudukan yang tidak tepat, dsb. Hari ini, kami akan memperkenalkan cara menggunakan PHP untuk melaksanakan pesanan berasaskan lokasi.
Langkah 1: Dapatkan alamat pengguna
Untuk mencapai pesanan berdasarkan lokasi, kami perlu mendapatkan maklumat alamat pengguna terlebih dahulu untuk melakukan ini, kami boleh menggunakan perkhidmatan lokasi JavaScript perlu menambahkannya pada halaman HTML Tambahkan kod berikut untuk merujuk API Peta Google dan perkhidmatan lokasi JavaScript.
<script src="//maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=true&libraries=places"></script>
Seterusnya, tulis kod berikut dalam JavaScript untuk mendapatkan lokasi pengguna menggunakan API Geolokasi HTML5.
if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { alert("Geolocation is not supported by this browser."); } function showPosition(position) { var lat = position.coords.latitude; var lng = position.coords.longitude; var geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(lat, lng); geocoder.geocode({'latLng': latlng}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (results[0]) { var address = results[0].formatted_address; document.getElementById("userAddress").value = address; } } }); }
Dalam kod di atas, kami menggunakan fungsi geocoder.geocode untuk menukar latitud dan longitud pengguna yang diperolehi kepada maklumat alamat yang lebih mudah dibaca dan menetapkannya pada kotak input HTML dengan ID "usetAddress" tengah. Melalui pelaksanaan kod di atas, kami boleh mendapatkan maklumat alamat pengguna dan menyediakan perkhidmatan tempahan makanan seterusnya.
Langkah 2: Laksanakan halaman pesanan berdasarkan lokasi
Untuk melaksanakan pesanan berdasarkan lokasi, kami perlu membangunkan halaman pesanan terlebih dahulu. Halaman ini akan bertanggungjawab untuk memaparkan alamat pengguna, senarai restoran , dan pelbagai keadaan penapisan. Dalam halaman HTML, kita boleh menggunakan kod berikut untuk melaksanakan susun atur halaman yang mudah.
<div> <label>Address:</label> <input type="text" id="userAddress" readonly> </div> <div> <label>Restaurant Name:</label> <input type="text" id="restaurantName"> </div> <div> <label>Category:</label> <select id="category"> <option value="">All</option> <option value="Chinese">Chinese</option> <option value="Japanese">Japanese</option> <option value="Italian">Italian</option> </select> </div> <div> <button onclick="searchRestaurants()">Search</button> </div> <div id="restaurants"></div>
Dalam reka letak di atas, kami telah melaksanakan struktur asas halaman pesanan melalui elemen seperti kotak input dan butang pertanyaan. Antaranya, fungsi "searchRestaurants()" akan ditakrifkan dalam langkah seterusnya.
Langkah 3: Dapatkan maklumat restoran
Untuk mendapatkan maklumat restoran, kami perlu menggunakan maklumat lokasi restoran, serta nama dan kategori restoran yang kami tentukan dalam langkah kedua. Begitu juga, kami boleh menggunakan API Peta Google dan perkhidmatan lokasi JavaScript untuk mendapatkan maklumat lokasi restoran.
function searchRestaurants() { var restaurantName = document.getElementById("restaurantName").value; var category = document.getElementById("category").value; var userAddress = document.getElementById("userAddress").value; var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': userAddress}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { var userLocation = results[0].geometry.location; var request = { location: userLocation, radius: 5000, keyword: restaurantName, type: category }; var service = new google.maps.places.PlacesService(document.createElement('DIV')); service.nearbySearch(request, function(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { showRestaurants(results); } }); } else { alert("Geocode was not successful for the following reason: " + status); } }); }
Seperti yang ditunjukkan dalam kod di atas, kami menggunakan fungsi Carian berdekatan bagi perkhidmatan Tempat Peta Google untuk mendapatkan maklumat restoran yang memenuhi syarat pertanyaan Melalui fungsi showRestaurants, kami boleh memaparkan maklumat ini.
Langkah 4: Paparkan maklumat restoran
Selepas mendapatkan maklumat restoran, kami perlu menambahkan maklumat ini pada halaman HTML untuk dipilih oleh pengguna. Untuk mencapai matlamat ini, kita boleh menggunakan kod berikut:
function showRestaurants(restaurants) { var html = ""; for (var i = 0; i < restaurants.length; i++) { html += "<div>"; html += "<h4>" + restaurants[i].name + "</h4>"; html += "<p>" + restaurants[i].vicinity + "</p>"; html += "</div>"; } document.getElementById("restaurants").innerHTML = html; }
Kod di atas membina senarai restoran dan memaparkan nama restoran dan maklumat lokasi yang memenuhi syarat pertanyaan dalam halaman HTML.
Langkah 5: Laksanakan perkhidmatan pesanan
Langkah terakhir ialah kami perlu menyediakan pengguna dengan perkhidmatan pesanan selepas mereka memilih restoran. Untuk mencapai matlamat ini, kita boleh menggunakan kod berikut:
function orderFood() { //实现订餐服务 }
Dalam pelaksanaan kod di atas, kita boleh melaksanakan perkhidmatan pesanan dengan memanggil antara muka atau melompat ke halaman lain.
Ringkasan
Melalui langkah di atas, kami telah berjaya melaksanakan perkhidmatan pesanan berdasarkan lokasi Pengguna boleh mencari restoran berdekatan dan memilih makanan kegemaran mereka dengan mudah. Selain itu, kami juga boleh menggabungkan bahasa dan API belakang untuk mencapai perkhidmatan pesanan makanan yang lebih lengkap, seperti pembayaran dalam talian, pengurusan pesanan dan fungsi lain. Saya harap artikel ini dapat membantu semua orang yang mempelajari PHP.
Atas ialah kandungan terperinci PHP melaksanakan pesanan berasaskan lokasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!