ホームページ  >  記事  >  バックエンド開発  >  PHP は位置ベースの順序付けを実装します

PHP は位置ベースの順序付けを実装します

王林
王林オリジナル
2023-05-07 11:39:07440ブラウズ

PHP で位置情報に基づいた注文を実現

便利な生活の中で、手軽に食べられるサービスとなった料理の注文だからこそ、外出せずに楽しめるサービスがあります。食品の。とても便利な一方で、お店の場所がわかりにくい、位置が正確でないなど、料理の注文にはいくつかの問題もあります。今回は、PHP を使用して位置情報に基づく注文を実装する方法を紹介します。

ステップ 1: ユーザー アドレスの取得

位置ベースの注文を実現するには、まずユーザーの住所情報を取得する必要があります。これを行うには、JavaScript 位置情報サービスを使用できます。まず、次のことが必要です。 HTML ページに追加するには、次のコードを追加して、Google Maps API と JavaScript 位置情報サービスを参照します。

<script src="//maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&amp;sensor=true&amp;libraries=places"></script>

次に、JavaScript で次のコードを記述し、HTML5 の Geolocation API を使用してユーザーの位置を取得します。

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;
      }
    }
  });
}

上記のコードでは、geocoder.geocode 関数を使用して、取得したユーザーの経度と緯度をより読みやすい住所情報に変換し、ID「usetAddress」中央の HTML 入力ボックスに設定します。上記のコードを実行することで、ユーザーの住所情報を取得し、その後の食事注文サービスを提供することができます。

ステップ 2: 場所ベースの注文ページを実装する

場所ベースの注文を実装するには、まず注文ページを開発する必要があります。このページは、ユーザーの住所、レストランのリストを表示する役割を果たします。 、およびさまざまなフィルタリング条件。 HTML ページでは、次のコードを使用して単純なページ レイアウトを実装できます。

<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>

上記のレイアウトでは、入力ボックスやクエリ ボタンなどの要素を通じて注文ページの基本構造を実装しました。このうち「searchRestaurants()」関数は後続のステップで定義します。

ステップ 3: レストラン情報の取得

レストラン情報を取得するには、レストランの位置情報に加え、2 番目のステップで定義したレストラン名とカテゴリを使用する必要があります。同様に、Google Maps API と JavaScript 位置情報サービスを使用してレストランの位置情報を取得できます。

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);
    }
  });
}

上記コードのように、Google Maps PlacesサービスのnearSearch関数を利用して、クエリ条件を満たすレストラン情報を取得し、showRestaurants関数で表示することができます。

ステップ 4: レストラン情報を表示する

レストラン情報を取得したら、ユーザーが選択できるようにこの情報を HTML ページに追加する必要があります。この目標を達成するには、次のコードを使用します。

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;
}

上記のコードは、レストランのリストを作成し、クエリ条件を満たすレストランの名前と場所の情報を HTML ページに表示します。

ステップ 5: 注文サービスを実装する

最後のステップでは、ユーザーがレストランを選択した後に注文サービスを提供する必要があります。この目標を達成するには、次のコードを使用します。

function orderFood() {
  //实现订餐服务
}

上記のコード実装では、インターフェイスを呼び出すか、別のページにジャンプすることで、順序付けサービスを実装できます。

まとめ

以上の手順により、ユーザーは近くのレストランを簡単に検索し、好みの料理を選択できる、位置情報に基づいた注文サービスを実装することができました。さらに、バックエンド言語と API を組み合わせて、オンライン支払い、注文管理、その他の機能など、より完全な食品注文サービスを実現することもできます。この記事が PHP を学習するすべての人に役立つことを願っています。

以上がPHP は位置ベースの順序付けを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。