php结合JS百度地图实现手机gps精准定位wap端,使用浏览器页面获取地址

//JS地图计算距离
var map = new BMap.Map("allmap");
var point = new BMap.Point();
map.centerAndZoom(point, 12);
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function (r) {
//广告服务商的距离计算,后台查询传值主要是获取经纬度
var a_lat = $('#distance_a').attr('data-value');
var b_lat = $('#distance_b').attr('data-value');
var c_lat = $('#distance_c').attr('data-value');
var d_lat = $('#distance_d').attr('data-value');
a_lat = JSON.parse(a_lat);
b_lat = JSON.parse(b_lat);
c_lat = JSON.parse(c_lat);
d_lat = JSON.parse(d_lat);
//根据经纬度获取当前手机的位置
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
var pointA = new BMap.Point(r.point.lng, r.point.lat);
console.log(mk);
//广告服务商的距离计算
var arr1 = aDistance(a_lat, pointA, 'gg_key');
taskDetail(arr1, 'gg_user');
//安装师傅距离计算
var arr2 = aDistance(b_lat, pointA, 'az_key');
taskDetail(arr2, 'az_user');
//设计师定位
var arr3 = aDistance(c_lat, pointA, 'sj_key');
taskDetail(arr3, 'sj_user');
//商品距离定位
var arr4 = aDistance(d_lat, pointA, 'goodS');
shopDetail(arr4, 'goods-list')
}
else {
alert('failed' + this.getStatus());
}
});
//计算距离
function aDistance(data, point, marker) {
var arr = [];
$.each(data, function (k, v) {
var pointB = new BMap.Point(v.lng, v.lat);
data[k].ditance_a = (map.getDistance(point, pointB)).toFixed(0) / 1000;
//$('#' + marker + k).text((map.getDistance(point, pointB)).toFixed(0) / 1000 + 'km');
});
return data.sort(sortNumber);
}
function sortNumber(a, b) {
return a.ditance_a - b.ditance_a
}
//这里是JS渲染页面,由于距离是动态的,本人项目JQ渲染页面
//服务商距离排序
function taskDetail(arr, arr1) {
var html = '';
$.each(arr, function (a, b) {
html += '<li> <div class="item-content"> <div class="item-media"> <a href="javascript:;"> <img src="' + window.location.href + b.avatar + '" style="width: 3.3rem; height: 3.3rem;"> ' +
'</a> </div> <div class="item-inner"> <div class="item-title-row"> <div class="item-title"> <a href="/wap/task/breDetail/' + b.shopId + '">' + b.name + '</a>';
if (('' + b.user_type + '') && ('' + b.user_type + '') == 2) {
html += '<span class="f-label f-label-orange-b">企</span>';
}
if (('' + b.user_type + '') && ('' + b.user_type + '') == 1) {
html += '<span class="f-label f-label-orange-b">个</span>';
}
// if (('' + b.auth.alipay + '') && ('' + b.auth.alipay + '') == true) {
// html += '<span class="f-label f-label-orange-b">支</span>';
// }

html += '</div> <div class="item-after">' + b.ditance_a + 'km</div> </div> <div class="item-text">好评率:' + b.percent + '% | 成交量' + b.serviceNum + ' |保证金' + b.fund_money + '</div> ' +
'<div class="f-gray-line"></div> <div class="item-text">' + b.province_name + '' + b.city_name + '' + b.area_name + ' <i class="iconfont icon-dingwei"></i> </div> </div> </div> ' +
'</li>';
//$('#' + marker + a).text(b + 'km');
});
$('.' + arr1).append(html);
}
//商品距离排序
function shopDetail(arr, arr1) {
var html = '';
$.each(arr, function (a, b) {
html += '<div class="goods-item"> <div class="img-box"> <a href="/wap/task/shopDetail/' + b.id + '"><a href="/wap/task/shopDetail/' + b.id + '">';
console.log(b.cover);
if ('' + b.cover + '' != '') {
html += ' <img src="' + window.location.href + b.cover + '" alt="">';
}
else {
html += '<img src="/themes/assets/images/wap/goods-img01.png" alt="">'
}

html += '</a> </div> <div class="info-box"> <a href="/wap/task/shopDetail/' + b.id + '"> <p class="info-title"> ' +
'<a href="javascript:;">' + b.title + '&nbsp;';
if ('' + b.good_type + '' == 1) {
html += '定制'
}
else {
html += '成品'
}
html += '</a> </p> </a> <div class="info-row"> ' +
'<div class="info-text">¥ <span class="money">' + b.cash + '</span>' + b.sales_num + '人购买 </div> <div class="info-after" >' + b.ditance_a + 'km </div> </div> ' +
'<div class="info-row"> <div class="info-text">好评数:' + b.good_comment + '</div> <div class="info-after">' + b.province_name + '' + b.city_name + '' + b.area_name + '</div> ' +
'</div> </div> ' +
'</div>'
});
$('.' + arr1).append(html);
}

posted on 2018-02-05 15:45  guoke1970s  阅读(2905)  评论(0编辑  收藏  举报

导航