掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GoogleMaps API json (ID:44534)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
GoogleMaps API を利用して、緯度経度を取得するプログラムにおいての疑問です。 jsonを取得するのに、「http://maps.google.com/maps/api/geocode/json?address=東京駅&sensor=false」をGoogle Chrome に直接URLを放り込むと、日本語・漢字で帰ってくるのに、TIdHTTPを使って次のようにすると、英語で帰ってきます。 今回は、緯度経度は、問題なく得られるので目的に対する支障はないのですが、TIdHTTPを使って日本語で返すにはどうしたらよいのでしょうか。 環境はwin7、XE2です。 例1:Google Chromeに、直接「http://maps.google.com/maps/api/geocode/json?address=東京駅&sensor=false」を放り込ん場合 { "results" : [ { "address_components" : [ { "long_name" : "東京駅", "short_name" : "東京駅", "types" : [ "train_station", "transit_station", "establishment" ] }, { "long_name" : "東京都", "short_name" : "東京都", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "日本", "short_name" : "JP", "types" : [ "country", "political" ] } ], "formatted_address" : "日本, 東京駅(東京)", "geometry" : { "bounds" : { "northeast" : { "lat" : 35.691470, "lng" : 139.7783240 }, 以下略 例2:TIdHTTPを用いた場合 Add=東京駅 procedure TForm2.SetLatLng(const Add: string; var formatted_address, lat, lng: String); var req: string; jsonStr: string; jsonObj: TJSONObject; values: TJSONArray; // Add1: String; HTTP: TIdHTTP; MS: TMemoryStream; ENC: TEncoding; StringList1: TStringList; Add1: String; begin Add1 := Add; ENC := TEncoding.UTF8; MS := TMemoryStream.Create; HTTP := TIdHTTP.Create; StringList1 := TStringList.Create; req := 'http://maps.google.com/maps/api/geocode/json?address=' + TIdURI.ParamsEncode(Add1, TEncoding.UTF8) + '&sensor=false'; http.Get(req, MS); MS.Position := 0; StringList1.LoadFromStream(MS,ENC); jsonStr := StringList1.Text; //途中の処理は省略 end; StringList1の結果 { "results" : [ { "address_components" : [ { "long_name" : "Tokyo Station", "short_name" : "Tokyo Station", "types" : [ "train_station", "transit_station", "establishment" ] }, { "long_name" : "9", "short_name" : "9", "types" : [ "sublocality_level_3", "sublocality", "political" ] }, { "long_name" : "1丁目", "short_name" : "1丁目", "types" : [ "sublocality_level_2", "sublocality", "political" ] }, { "long_name" : "Marunouchi", "short_name" : "Marunouchi", "types" : [ "sublocality_level_1", "sublocality", "political" ] }, { "long_name" : "Chiyoda", "short_name" : "Chiyoda", "types" : [ "locality", "political" ] }, { "long_name" : "Tokyo", "short_name" : "Tokyo", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "Japan", "short_name" : "JP", "types" : [ "country", "political" ] } ], "formatted_address" : "Tokyo Station, 1丁目-9 Marunouchi, Chiyoda, Tokyo, Japan", "geometry" : { "bounds" : { "northeast" : { "lat" : 35.691470, "lng" : 139.7783240 }, 以下略
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.