地址转经纬度

<?php
date_default_timezone_set('Asia/Chongqing');
header('content-type:text/html; charset=utf-8');
ini_set('display_errors', 1);
error_reporting(E_ALL);
set_time_limit(0);

/**
* @author gf
* 获取经纬度修改数据
* Class Importkindgarten
*/
class Importkindgarten
{

private $dbhost = '127.0.0.1';
private $dbuser = 'root';
private $dbpw = '123';
private $dbname = 'mypolyguide';

private $dbcharset = 'utf8';
private $write_db = null;

public function __construct()
{
$this->db_write_link();
}

/**
* 连接数据库
* @return null|resource
*/
public function db_write_link()
{
$this->write_db = mysql_connect($this->dbhost, $this->dbuser, $this->dbpw);
if (!$this->write_db) {
die('Could not connect: ' . mysql_error());
}
mysql_query('SET character_set_connection=' . $this->dbcharset . ', character_set_results=' . $this->dbcharset . ', character_set_client=binary', $this->write_db);
mysql_query('SET names utf8', $this->write_db);
mysql_select_db($this->dbname, $this->write_db);

return $this->write_db;
}

/**
* 执行死循环进行查询修改
*/
public function roundKgList()
{
$i = 0;
while(true)
{
$res = $this->getKgList();
if(empty($res['kgdata']))
{
break;
}
else
{
if(!empty($res['kgdata'])) foreach($res['kgdata'] as $k1=>$v1)
{
$info = $this->getAreanameById($v1['provinceId']);
$area = $info[0];
$address=$v1['kgName'];
$returnArr = $this->curlGetWeb($area,$address);
$kgPosition = implode(',',$returnArr);
$updatesql = "UPDATE kindgartenbak SET lng='{$returnArr['lng']}', lat='{$returnArr['lat']}', kgPosition='{$kgPosition}',runflag='1' WHERE kgId={$v1['kgId']}";
mysql_query($updatesql, $this->write_db);
$i++;
}
else
{
break;
}
}
}
}

/**
* 获取列表
* @return mixed
*/
public function getKgList()
{
$sql = 'SELECT kgId,provinceId,kgName FROM kindgartenbak WHERE deleteFlag = 1 AND status = 2 AND runflag = 0 ORDER BY kgId DESC LIMIT 100';
$query = mysql_query($sql, $this->write_db);
while($result = mysql_fetch_array($query,MYSQL_ASSOC))
{
$res['kgdata'][] = $result;
}
return $res;
}

/**
* 拿取城市
* @return mixed
*/
public function getAreanameById($provinceId)
{
$sql = 'SELECT areaname FROM area WHERE id ='.$provinceId;
$query = mysql_query($sql, $this->write_db);
$info = mysql_fetch_row($query);
if(!empty($info))
{
return $info;
}
else
{
return false;
}
}

/**
* 从百度地图api以curl获取经纬度
* 数组形式返回
*/
public function curlGetWeb($area,$address)
{
$Url="http://api.map.baidu.com/geocoder?address=".trim($area).trim($address)."&output=json&key=96980ac7cf166499cbbcc946687fb414";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果把这行注释掉的话,就会直接输出
$result=curl_exec($ch);
curl_close($ch);
$infolist=json_decode($result);
$array=array();
if(isset($infolist->result->location) && !empty($infolist->result->location)){
$array=array(
'lng'=>$infolist->result->location->lng,
'lat'=>$infolist->result->location->lat,
);
return $array;
}
else
{
return false;
}
}
}

$start_date = date('Y-m-d H:i:s');
$start = microtime(true);
$db = new Importkindgarten();
$i = $db->roundKgList();
$end = microtime(true);
echo '重置经纬度:'.$start_date.'----用时--'.($end-$start).'----共更新('.$i.')条';
?>

转载于:https://www.cnblogs.com/jerryliuxin/p/11327130.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值