ホームページ  >  記事  >  Java  >  Baidu Map API で、Java を使用して指定した場所の近くの観光スポット情報を取得するにはどうすればよいですか?

Baidu Map API で、Java を使用して指定した場所の近くの観光スポット情報を取得するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-07-29 14:13:14939ブラウズ

Baidu Map API で、Java を使用して指定した場所の近くの観光スポット情報を取得するにはどうすればよいですか?

観光の発展に伴い、人々はより便利になり、旅行先に関するパーソナライズされた情報を追い求めるようになりました。ユーザーに提供できるように、特定の場所で近くの観光スポット情報を取得する必要があることがよくあります。この機能は、Baidu Map API を使用して簡単に実装できます。この記事では、Java プログラミング言語を使用して、Baidu Map API で指定した場所の周辺観光情報を取得する方法を紹介します。

まず、Baidu Map 開発者アカウントを準備し、Baidu Map AK (アクセス キー) を取得する必要があります。

次に、関連する Java ライブラリを紹介する必要があります。この例では、HttpClient ライブラリを使用して HTTP リクエストを作成し、Json ライブラリを使用して返された JSON データを処理します。

import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

次に、近くのアトラクション情報の URL をパラメータとして受け取り、応答の JSON 文字列を返す HTTP リクエストを送信するメソッドを定義する必要があります。

public static String sendGetRequest(String url) throws ClientProtocolException, IOException {
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpGet httpGet = new HttpGet(url);
    HttpResponse response = httpClient.execute(httpGet);
    HttpEntity entity = response.getEntity();
    String result = EntityUtils.toString(entity);
    return result;
}

次に、返された JSON データを解析し、近くの観光スポットに関する情報を抽出するメソッドを作成する必要があります。

public static void getNearbyPlaces(String location) {
    String ak = "YOUR_AK_HERE";
    String url = "http://api.map.baidu.com/place/v2/search?query=景点&location=" + location + "&radius=2000&output=json&ak=" + ak;
    try {
        String result = sendGetRequest(url);
        JSONObject jsonObject = JSON.parseObject(result);
        JSONArray results = jsonObject.getJSONArray("results");
        
        for (int i = 0; i < results.size(); i++) {
            JSONObject place = results.getJSONObject(i);
            String name = place.getString("name");
            String address = place.getString("address");
            double lng = place.getJSONObject("location").getDouble("lng");
            double lat = place.getJSONObject("location").getDouble("lat");
            
            System.out.println("名称:" + name);
            System.out.println("地址:" + address);
            System.out.println("经度:" + lng);
            System.out.println("纬度:" + lat);
            System.out.println("-----------------------------------");
        }
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

上記のコードでは、最初に URL を構築し、AK、クエリ タイプ (クエリ)、緯度と経度 (場所)、検索半径 (半径)、および戻り形式 (出力) をパラメータとして URL に追加します。 URL。次に、HTTP リクエストを送信して返された JSON データを取得し、JSON 解析を通じて近くの観光スポットの名前、住所、経度、緯度を抽出します。最後に、この情報を出力します。

最後に、getNearbyPlaces メソッドを呼び出し、指定した場所の経度と緯度を渡して、近くの観光スポットに関する情報を取得します。

public static void main(String[] args) {
    String location = "116.404,39.915";
    getNearbyPlaces(location);
}

上記は、Java を使用して、Baidu Map API で指定された場所の近くの観光スポットに関する情報を取得する簡単な例です。この事例により、近隣の観光スポット情報を取得する機能を簡単に実装することができ、よりパーソナライズされた正確な旅行サービスをユーザーに提供することができます。この記事がお役に立てば幸いです!

以上がBaidu Map API で、Java を使用して指定した場所の近くの観光スポット情報を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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