Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP melaksanakan pesanan berasaskan lokasi

PHP melaksanakan pesanan berasaskan lokasi

王林
王林asal
2023-05-07 11:39:07490semak imbas

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&amp;sensor=true&amp;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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn