这是首页,点击进入商铺列表页面
请在手机上预览效果:
地址:http://www.10180.top/static/baidu/list.php
或扫下面二维码:


流程:

1. 提前录入商家店铺数据,(保存在数据库中),店铺名称,电话,地址,经纬度

//模拟店铺数据
$shop_data=array(
	array(
		'name'=>'店铺1',
		'tel'=>'13311111111',
		'address'=>'福建省漳州市漳州东站店铺',
		'lng'=>'117.751319',
		'lat'=>'24.570865'
	),
	array(
		'name'=>'店铺2',
		'tel'=>'13322222222',
		'address'=>'北京市天安门店铺',
		'lng'=>'116.403968',
		'lat'=>'39.915281'
	),	
	array(
		'name'=>'店铺3',
		'tel'=>'13333333333',
		'address'=>'陕西省西安市西安北站店铺',
		'lng'=>'108.944835',
		'lat'=>'34.382505'
	),
	array(
		'name'=>'店铺4',
		'tel'=>'13344444444',
		'address'=>'陕西省西安市火车站店铺',
		'lng'=>'108.97085',
		'lat'=>'34.28455'
	)
);
2. 用户打开页面时:获取用户位置,经纬度,计算与商家店铺之间的距离

利用客户的经纬度,与,店铺的经纬度,计算两者距离,即地球,球面上两点之间的弧线长度

//三个函数
function GetDistance($lat1, $lng1, $lat2, $lng2)
{
    $EARTH_RADIUS = 6378.137; //地球半径km
    $radLat1 = deg2rad($lat1);
    $radLat2 = deg2rad($lat2);
    $a = $radLat1 - $radLat2;
    $b = deg2rad($lng1) - deg2rad($lng2);
    $s = 2 * sin(sqrt(pow(sin($a/2),2) + cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)));
    $s = $s *$EARTH_RADIUS;
    $s = round($s * 10000) / 10000;
    return $s;
}
function formatDistance($km)
{
    if($km < 1){
        return intval($km * 1000).'m';
    }
    if($km >= 1){
        return intval($km).'km';
    }
    return $km;
}
function distance($lat1,$lng1,$lat2, $lng2)
{
    $km=GetDistance($lat1, $lng1, $lat2, $lng2);
    return formatDistance($km);
}


//遍历店铺数据
$str='您的坐标:('.$user_lng.','.$user_lat.')

'; foreach($shop_data as $k=>$v){ $juli=distance($user_lat,$user_lng,$v['lat'],$v['lng']); $str.='名称:'.$v['name'].'
电话:'.$v['tel'].'
地址:'.$v['address'].'
距离:'.$juli.'

'; }
3. 可以提示用户最近的店铺位置在哪儿?或者显示所有店铺地址与位置~