0

私はしばらくGoogleマップAPIを使用しており、URL経由でアクセスし(下記参照)、php経由でsimple_xml_load_file経由で呼び出し、xmlを解析し、緯度と経度を保存しています。単純。

API 呼び出しの URL http://maps.google.com/maps/geo?output=xml&key=some_key&q=12+main%2C+chicago%2C+Illinois

このプロセスは、データベースに新しい場所を追加するときに機能します。ユーザーが地図を表示することを選択した場合、いくつかの php コードで上記の URL を介して座標が取得されます。今日、403エラーというエラーを受け取りました。他の何かが起きていると仮定して、キーを変更していません。

これを再び機能させようとして、新しい js API を試しました。これに関する問題は、少なくとも私の理解では、Web ページから実行し、javascript にアクセスして結果を取得する必要があることです。私はこれをすべて舞台裏で行っているため、これは私にとって問題を引き起こします。データを取得する方法を試してみると、データを取得するページは正常に作成されますが、ヘッダーの問題が発生します。

どちらの方法を使用してもかまいません (古い方法でも新しい方法でも、古い方法の方が簡単です)。他の人がヘッダーの問題なしに舞台裏で js API をどのように使用しているかを理解したいと思っています。私はこれを素早くやろうとしているので、攻撃する最善の方法を簡単に考えられません。また、「古い」方法がまだ機能しているが、何かを変更する必要がある場合、それは素晴らしいことです.

私のサイトの「新しい」プロセスの簡単な説明:

  • ユーザーがマップ ページをクリックします。
  • コードは、緯度と経度がデータベースに格納されているかどうかを確認します。
  • そうでない場合は、API 3 を使用してそれらの値を取得するために、ページに curl 要求を送信します。
  • これらの値は ajax 経由で別のページに送信され、保存されます
  • メイン コードは引き続き実行され、経度と緯度を選択しながら、その場所から x マイル以内にあるものを見つけ、それらのピンも作成します。

呼び出しは、curl_exec のヘッダー メッセージと共に返されます...

$ch = curl_init();
$post_array = array(
    'e_id' => $this->getId(),
    'address' => $this->getAddress()
);
curl_setopt($ch, CURLOPT_URL, base_url() . 'establishment/google_map_processor');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_array));
curl_exec($ch); 

複雑なことはわかっていますが、マップの使用に慣れているため、別の方法は考えられません。

お時間をいただき、ありがとうございました。

4

0 に答える 0