13

Google のジオコーディング サービスから json レスポンスを取得しようとしています。私はPHPを使用しています。私はfopenを試していましたが、file_get_contentsを使用する必要があるという別のstackoverflowの質問を読みましたが、うまくいきませんでした。それから私は検索を続け、別のフォーラムで、CURL を使用すればより良い解決策になると言っていた人を見つけたので、コードを変更しましたが機能しません。いずれの場合も、「エラー 400: 不正なリクエストです。クライアントが不正な形式または違法なリクエストを発行しました。」というメッセージが表示されました。

私のコードはこれです:

$jsonUrl = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $cityName . "&sensor=false";

    $geocurl = curl_init();
    curl_setopt($geocurl, CURLOPT_URL, $jsonUrl);
    curl_setopt($geocurl, CURLOPT_HEADER,0); //Change this to a 1 to return headers
    curl_setopt($geocurl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
    curl_setopt($geocurl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($geocurl, CURLOPT_RETURNTRANSFER, 1);

    $geofile = curl_exec($geocurl);

次に、コンテンツを印刷してエラーメッセージを受け取りました。

何か案は?

どうもありがとうございました。

4

3 に答える 3

22

さて、私はそれを理解しました。

私の $cityName 変数はこれでした:

$cityName = "Monterrey, NL";

コンマと「NL」の間の空白。str_replace を使用して " " を "+" に変更し、ドキュメントのように有効な URL を取得しました。

http://code.google.com/intl/es/apis/maps/documentation/geocoding/

ご挨拶とご協力ありがとうございました!

于 2011-03-22T18:31:55.793 に答える
1

APIキーが不足していると思います

ところで、設定する必要のある特別なヘッダーや従わなければならない http リダイレクトなどがないため、Google のジオコーダーに file_get_contents() を使用するだけです。

于 2011-03-22T18:15:15.283 に答える
0

参考までに、私はこれに遭遇しました。私の問題は、「アドレス」クエリ文字列パラメーターを間違って入力したことでした (「アドレス」ではなく「アドレス」と入力しました)。

于 2016-08-23T00:08:03.440 に答える