私はしばらく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);
複雑なことはわかっていますが、マップの使用に慣れているため、別の方法は考えられません。
お時間をいただき、ありがとうございました。