Baidu Map API で、Java を使用して指定した場所の周囲の生活サービス情報を取得するにはどうすればよいですか?

PHPz
リリース: 2023-07-30 20:03:22
オリジナル
942 人が閲覧しました

Baidu Map API で、Java を使用して指定した場所の周囲の生活サービス情報を取得するにはどうすればよいですか?

Baidu Map API は、地図、ナビゲーション、LBS クラウド マップ、その他の機能を提供するオープン プラットフォームであり、開発者は API 呼び出しを通じて地図関連データを取得できます。その中でも、指定した場所の周辺の生活サービスに関する情報を入手したいというニーズは最も多いものの一つです。この記事では、Java コードを使用してこの機能を実装する方法を紹介します。

まず、Baidu Developer Platform で開発者アカウントを申請し、アプリケーションを作成する必要があります。アプリケーションの作成が成功すると、Baidu Map API にアクセスするための ID 識別子であるアプリケーション ak (アクセス キー) を取得します。

次に、ネットワーク リクエストと JSON データ解析に関連する Java ライブラリ ファイルをインポートする必要があります。この例では、ネットワーク リクエストには Apache の HttpClient を、JSON データ解析には Google の Gson ライブラリを使用できます。プロジェクトの pom.xml ファイルに次の依存関係を追加できます。

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
    
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.7</version>
    </dependency>
</dependencies>
ログイン後にコピー

次に、指定した場所で周囲の生活サービス情報を取得する機能を実装する Java コードを作成できます。以下はサンプル コードです。

import com.google.gson.Gson;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

public class BaiduMapApiExample {
    private static final String API_URL = "http://api.map.baidu.com/place/v2/search";
    private static final String AK = "your_access_key";

    public static void main(String[] args) throws IOException {
        String location = "31.2304,121.4737"; // 指定位置的经纬度
        String keyword = "餐馆"; // 搜索关键字
        int radius = 2000; // 搜索半径(单位:米)

        String url = String.format("%s?query=%s&location=%s&radius=%d&output=json&ak=%s",
                API_URL, URLEncoder.encode(keyword, StandardCharsets.UTF_8),
                location, radius, AK);

        HttpClient httpClient = HttpClients.createDefault();
        HttpGet httpGet = new HttpGet(url);
        String response = EntityUtils.toString(httpClient.execute(httpGet).getEntity());

        Gson gson = new Gson();
        ApiResponse apiResponse = gson.fromJson(response, ApiResponse.class);

        for (Place place : apiResponse.getResults()) {
            System.out.println("名称:" + place.getName());
            System.out.println("地址:" + place.getAddress());
            System.out.println("电话:" + place.getTelephone());
            System.out.println("--------------------------");
        }
    }

    private static class ApiResponse {
        private Place[] results;

        public Place[] getResults() {
            return results;
        }
    }

    private static class Place {
        private String name;
        private String address;
        private String telephone;

        public String getName() {
            return name;
        }

        public String getAddress() {
            return address;
        }

        public String getTelephone() {
            return telephone;
        }
    }
}
ログイン後にコピー

上記のコードでは、まずクエリ キーワード、場所、半径、アクセス キーなどの必要なパラメータを含む URL を構築します。次に、HttpClient を使用して HTTP GET リクエストを送信し、返された JSON 文字列を取得します。

次に、Gson ライブラリを使用して、JSON 文字列を Java オブジェクトに解析します。この例では、返された JSON データ構造に対応する 2 つのクラス ApiResponsePlace を定義します。最後に、解析された Place オブジェクトを走査し、関連情報を出力します。

上記は、Java コードを使用して、指定された場所の周囲の生活サービス情報を取得する例です。 Baidu Map API を呼び出すことで、さまざまなアプリケーションのニーズを満たす豊富な地理情報を取得できます。ニーズに応じてコードを変更し、より多くのシナリオに適応できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート