//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 + ' '; 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);}