Baidu Map API で、Java を使用して指定した場所の地下鉄路線情報を取得するにはどうすればよいですか?
地下鉄は現代の都市交通において重要な役割を果たしており、ユーザーが地下鉄の路線情報を見つけやすくするために、Baidu Maps は対応する API インターフェイスを提供しています。この記事では、Java コードを使用して、Baidu Map API を通じて指定した場所の地下鉄路線情報を取得する方法を紹介します。
まず、Baidu Map 開発者キーを取得する必要があります。百度地図オープンプラットフォームに登録・ログイン後、「アプリケーション管理」ページで新規アプリケーションを作成し、「キー管理」で開発者キーを取得します。キーを取得したら、そのキーを使用して後続の API 呼び出しを行うことができます。
次に、関連する Java ライブラリをインポートする必要があります。 Java 開発パッケージ管理ツール Maven を使用して依存関係を管理できます。次の依存関係をプロジェクトの pom.xml ファイルに追加します。
<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.9</version> </dependency> </dependencies>
コードでは、まず HTTP リクエストを構築し、リクエストされた URL、リクエスト パラメータ、およびその他の情報を設定する必要があります。次に、HTTP リクエストを送信し、戻り結果を取得します。最後に、返された結果が解析され、必要な地下鉄路線情報が抽出されます。
次は、Java を使用して指定した場所の地下鉄路線情報を取得する方法を示すサンプル コードです:
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class BaiduMapAPI { public static void main(String[] args) { String url = "http://api.map.baidu.com/place/v2/search?query=地铁站&location=40.057406,116.296440&radius=2000&output=json&ak=Your_AK"; String result = sendHttpRequest(url); Map<String, String> subwayLines = parseSubwayLines(result); System.out.println("地铁线路信息:"); for (String lineName : subwayLines.keySet()) { System.out.println(lineName + ":" + subwayLines.get(lineName)); } } private static String sendHttpRequest(String urlString) { try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = in.readLine()) != null) { response.append(line); } in.close(); return response.toString(); } else { System.out.println("HTTP请求失败,错误码:" + responseCode); } } catch (Exception e) { e.printStackTrace(); } return null; } private static Map<String, String> parseSubwayLines(String json) { Map<String, String> subwayLines = new HashMap<>(); JSONObject jsonObject = JSON.parseObject(json); JSONArray results = jsonObject.getJSONArray("results"); for (int i = 0; i < results.size(); i++) { JSONObject result = results.getJSONObject(i); String name = result.getString("name"); String detail = result.getString("detail_info"); subwayLines.put(name, detail); } return subwayLines; } }
上記のコードでは、Your_AK## を置き換える必要があります。 # 独自の Baidu Map API 開発者キーを使用します。
locationパラメータは、特定の場所の経度と緯度の座標を指定するために使用されます。ここでは北京の座標が使用されます。
radiusパラメータは検索エリアの半径を指定するために使用されます。ここでは 2000 メートルに設定されています。
query パラメータは検索キーワードを指定するために使用されます。ここでは「地下鉄駅」が使用されています。
以上がBaidu Map API で、Java を使用して指定した場所の地下鉄路線情報を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。