123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- 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 = '<li class="mui-table-view-cell" style="padding: 0.15rem 0.3rem" province="'+place.province+'" city="'+place.city+'" district="'+addComp.district+'">' +
- '<p class="mui-ellipsis-2 color1 fs16">'+
- '<i class="fs16 color2 mui-icon iconfont icon-shouhuodizhi"></i><span class="address">' + place.title + '</span></p>' +
- '<span class="longitude" style="display: none;">' + place.point.lng + '</span>' +
- '<span class="latitude" style="display: none;">' + place.point.lat + '</span>' +
- '<span class="postCode" style="display: none;"></span>' +
- '</li>';
- $('#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 = '<li class="mui-table-view-cell" province="'+province+'" city="'+city+'" district="'+district+'">' +
- '<p class="mui-ellipsis-2 color1 fs16 mb5">'+
- '<i class="fs16 color2 mui-icon iconfont icon-shouhuodizhi"></i><span class="address">' + poi.name + '</span></p>' +
- '<p>' + poi.addr + '</p>' +
- '<span class="longitude" style="display: none;">' + poi.point.x + '</span>' +
- '<span class="latitude" style="display: none;">' + poi.point.y + '</span>' +
- '<span class="postCode" style="display: none;">' + poi.zip + '</span>' +
- '</li>';
- $('#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<min){
- min = distance;
- minYiqing=item;
- }
- }
- });
- $(".distance").html(getDistance(min));
- $(".address").html(minYiqing.address);
- $(".km3").html("3公里内有"+km3+"个病例");
- $(".km5").html("5公里内有"+km5+"个病例");
- var point = new BMap.Point(minYiqing.lng,minYiqing.lat);
- map.panTo(point);
- $(".source").show();
- }
- function getDistance(distance){
- var i= parseInt(distance);
- if(i<1000){
- return i+"米";
- }else{
- var f = parseFloat(i/1000);
- if (isNaN(f)) {
- return;
- }
- f = Math.round(i/1000 * 10) / 10;
- return f+"公里";
- }
- }
|