gpt4 book ai didi

php - 将大量地点转换为经纬度并使用 PHP 更新 MySQL 数据库

转载 作者:行者123 更新时间:2023-11-29 06:47:05 24 4
gpt4 key购买 nike

我刚接触PHP,想获取一个地方的经纬度,然后将它们添加到MySQL数据库中。

我正在使用 Google Geo-code API 来获取它们,这就是我在右行所做的

for ($i = 0; $i<1000; $i++) {
$sql = mysql_query("SELECT place_address FROM place_locator WHERE place_id =".$i, $this->db) or die('invalide request : ' . mysql_error());

if (mysql_num_rows($sql)) {
while ($place = mysql_fetch_assoc($sql)) {

//Encode the place string I got, to get rid of space
$encodePlace = str_replace(" ", "%20", $place["place_address"]);
//Use Google API
$url = 'http://maps.googleapis.com/maps/api/geocode/json?address='.$encodePlace.'&sensor=false';
//Use Curl to send the request
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);
$obj = json_decode($response, true);


$updateSql = mysql_query("UPDATE `place_locator`.`place_locator` SET
`latitude` = '".$obj["results"][0]["geometry"]["location"]["lat"]."',
`longitude` = '".$obj["results"][0]["geometry"]["location"]["lng"]."' WHERE `place_locator`.`place_id` = ".$i, $this->db) or die('Invalide : ' . mysql_error());

curl_close($ch);
}
}

循环10次,到1000次时会耗费很多时间,很多结果没有更新到数据库。

我认为多线程应该有帮助,但我真的不知道它是如何工作的,请帮助我。

提前致谢

最佳答案

我遇到了同样的问题。 Google 限制了请求的频率!在循环中尝试 sleep(1);,它会起作用,但需要更多时间。

关于php - 将大量地点转换为经纬度并使用 PHP 更新 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18045859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com