0

我一直在使用谷歌地图 API,通过 url 访问(见下文),通过 php 通过 simple_xml_load_file 调用,解析 xml,并存储 lat 和 long。简单的。

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。这个问题是,至少据我了解,我需要从网页运行它,访问 javascript,获取结果。这给我带来了一个问题,因为我在幕后做这一切。当我尝试一种获取数据的方法时,我成功地创建了一个获取数据的页面,但这会产生标题问题。

我不在乎我使用哪种方式(旧方式或新方式,但旧方式对我来说更简单)。我正在寻找了解其他人如何在没有标题问题的情况下在幕后使用 js API。由于我试图快速做到这一点,我很容易想不出最好的攻击方式。此外,如果“旧”方式仍然有效,但我需要改变一些东西,那就太棒了。

在我的网站上快速解释“新”流程:

  • 用户点击地图页面。
  • 该代码查看纬度和经度是否存储在数据库中。
  • 如果没有,它会向页面发送 curl 请求以使用 api 3 获取这些值。
  • 然后通过 ajax 将这些值发送到另一个页面进行存储
  • 主代码继续运行,选择 long 和 lat,同时在该位置 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