var id = mobile.getUrlVars('id'); var index; var map = new BMap.Map("map"); var myGeo = new BMap.Geocoder(); var mypoint; mui.init(); mui.ready(function() { initmap(); $("#location").on("tap","li",function(){ $('#location').hide(); mypoint = new BMap.Point($(this).find(".longitude").html(),$(this).find(".latitude").html()); var allOverlay = map.getOverlays(); for (var i = 0; i < allOverlay.length -1; i++){ console.info(allOverlay[i].getTitle()); if(allOverlay[i].getTitle() == "位置"){ map.removeOverlay(allOverlay[i]); } } addPoint(); }); //搜索 $(".mui-search").on("input propertychange","input[type='search']",function(){ var key = $.trim($('.mui-indexed-list-search-input').val()); local.search(key); }); //搜索 $("#search").on("tap",function(){ var key = $.trim($('.mui-indexed-list-search-input').val()); local.search(key); }); //隐藏 $(".mui-icon-closeempty").on("tap",function(){ $('.source').hide(); }); var options = { onSearchComplete: function(results){ $('#location').html(''); if (local.getStatus() == BMAP_STATUS_SUCCESS){ for (var i = 0; i < results.getCurrentNumPois(); i ++){ (function(i){ var place = results.getPoi(i); var point = new BMap.Point(place.point.lng,place.point.lat); myGeo.getLocation(point, function(result){ if (result){ var addComp = result.addressComponents; var html = '
  • ' + '

    '+ '' + place.title + '

    ' + '' + '' + '' + '
  • '; $('#location').append(html); $('#location').show(); } }); })(i); } } } }; var local = new BMap.LocalSearch(map, options); }); //初始化地图 function initmap() { $("#map").css("height",$(window).height()-$(".mui-search").height()-$(".mui-bar-tab").height()); map.centerAndZoom(new BMap.Point(117.950, 28.463), 16); var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_SMALL}); map.addControl(top_right_navigation); map.enableScrollWheelZoom(); map.enableDragging(); wx.ready(function(){ index = layer.open({type: 3, shadeClose:false, content: '定位中...'}); wx.getLocation({ type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' success: function (res) { $.ajax({ url:'http://api.map.baidu.com/geoconv/v1/?coords='+res.longitude+','+res.latitude+'&from=1&to=5&ak=3Q4laSROftZI4chFMPVUno90', dataType:'jsonp', processData: false, type:'get', success:function(data){ layer.close(index); if (data.status=='0'){ var latitude=data.result[0].y; var longitude=data.result[0].x; mypoint = new BMap.Point(longitude,latitude); addPoint(); }else{ layer.msg('坐标转换失败'); } }, error:function(XMLHttpRequest, textStatus, errorThrown) { layer.close(index); layer.msg('坐标转换失败'); } }); } }); }); } function getAddress(baiduPointLat, baiduPointLng) { $('#location').html(''); var url = 'http://api.map.baidu.com/geocoder/v2/?ak=3Q4laSROftZI4chFMPVUno90' + '&callback=renderReverse' + '&location=' + baiduPointLat + ',' + baiduPointLng + '&output=json' + '&pois=1'; $.ajax({ type: 'GET', dataType: 'jsonp', url: url, beforeSend: function() { //index = layer.open({type: 3, shadeClose:false, content: '加载中...'}); }, success: function(json) { layer.close(index); if (json == null || typeof (json) == 'undefined') { return; } if (json.status != '0') { return; } var result = json.result; var province = result.addressComponent.province; var city = result.addressComponent.city; var district = result.addressComponent.district; for (var i = 0; i < json.result.pois.length; i++) { var poi = json.result.pois[i]; var html = '
  • ' + '

    '+ '' + poi.name + '

    ' + '

    ' + poi.addr + '

    ' + '' + '' + '' + '
  • '; $('#location').append(html); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { layer.close(index); layer.open({content:'地址位置获取失败', time:3}); $('#refreshLocation').show(); } }); } function addPoint(){ map.clearOverlays(); map.panTo(mypoint); var myIcon = new BMap.Icon(base+"/static/mobile/image/p.png", new BMap.Size(48,48)); var marker = new BMap.Marker(mypoint,{icon:myIcon});// 创建标注 marker.setTitle("位置"); map.addOverlay(marker);// 将标注添加到地图中 yiying(); } function yiying(){ var min=0; var minYiqing; var km3=0; var km5=0; $.each(yiqing,function (i,item) { var point = new BMap.Point(item.lng,item.lat); var myIcon = new BMap.Icon(base+"/static/mobile/image/y.png", new BMap.Size(40,40)); var marker = new BMap.Marker(point,{icon:myIcon});// 创建标注 marker.setTitle("病历"); map.addOverlay(marker);// 将标注添加到地图中 var distance = parseInt(map.getDistance(mypoint,point)); if (distance<=3000){ km3++; } if (distance<=5000){ km5++; } if (i==0 ){ min = distance; minYiqing=item; }else{ if (distance