map.addEventListener("click", function(e){
//通过点击百度地图,可以获取到对应的point, 由point的lng、lat属性就可以获取对应的经度纬度
var pt = e.point;
geoc.getLocation(pt, function(rs){
//addressComponents对象可以获取到详细的地址信息
var addComp = rs.addressComponents;
//console.log(rs.point);
mapchoice(rs.point);
});
});
//点击地图定位显示相关列表 function mapchoice(point){
map.clearOverlays()
//删除之前的标注 var marker = new BMap.Marker(point);
// 创建标注map.addOverlay(marker);
// 将标注添加到地图中marker.setAnimation(BMAP_ANIMATION_BOUNCE);
//跳动的动画 console.log(point);
if (0 === 0) { //alert('定位成功'); var url = "http://api.map.baidu.com/geocoder/v2/?ak=77AX39DjfpXutECiNSu1u2u63qQyAR3f&callback=renderReverse&location=" + point.lat + "," + point.lng + "&output=json&pois=1"; $.ajax({ type: "GET", dataType: "jsonp", url: url,
success: function(json)
{ var loc = json.result.addressComponent; if (json.status == 0) { //console.log(json); var loc = json.result.addressComponent; $.ajax({ type:"post", url:"{:U('saveArea')}", data:{city:loc.city,area:loc.district},
dataType:"text",
success:function(re){ if(re=='err'){ alert('定位失败'); } } }) var htm = ""; var arr = json.result.pois; var cityname = json.result.addressComponent.province + json.result.addressComponent.city +json.result.addressComponent.district ; for(var i=0;i';
}
$('.address-list-ul').html(htm)
$('.address-list li').on('touchstart touchmove touchend',function(event){
switch(event.type) {
case 'touchstart':
falg = false;
break;
case 'touchmove':
falg = true;
break;
case 'touchend':
if( !falg ) {
$('.addressTextarea').val($(this).html())
$('.map-t').hide();
$('.province').html(cityname);
console.log('點擊');
} else {
console.log('滑动');
}
break;
}
})
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(latlon + "地址位置获取失败");
}
});
}
}
//进入地图 geolocation.getCurrentPosition(function(r){if(this.getStatus() == BMAP_STATUS_SUCCESS){
//地址转换后触发的函数 translateCallback = function(data) {
var mk = new BMap.Marker(data.points[0]); map.addOverlay(mk); map.panTo(data.points[0]);
//地图左上角问题 var nowHc2=document.documentElement.clientHeight/5;
//算出高的一半 var nowWc2=$(window).width()/2;
//宽的一半 map.panBy(nowWc2,nowHc2);
//定位 if (data.status === 0) {
//console.log(data) geoc.getLocation(data.points[0], function(rs){
//addressComponents对象可以获取到详细的地址信息
var addComp = rs.addressComponents;
//console.log(rs)
var mapcity = addComp.province + addComp.city + addComp.district ; $('.province').html(mapcity) }); var url = "http://api.map.baidu.com/geocoder/v2/?ak=77AX39DjfpXutECiNSu1u2u63qQyAR3f&callback=renderReverse&location=" + data.points[0].lat + "," + data.points[0].lng + "&output=json&pois=1";
$.ajax({ type: "GET", dataType: "jsonp", url: url, success: function(json) { var loc = json.result.addressComponent; if (json.status == 0) { console.log(json); var loc = json.result.addressComponent; $.ajax({ type:"post", url:"{:U('saveArea')}", data:{city:loc.city,area:loc.district}, dataType:"text", success:function(re){ if(re=='err'){ alert('定位失败'); } } }); var htm = ""; var arr = json.result.pois; var cityname = json.result.addressComponent.province + json.result.addressComponent.city +json.result.addressComponent.district ; for(var i=0;i';
}
$('.address-list-ul').html(htm)
$('.address-list li').on('touchstart touchmove touchend',function(event){
switch(event.type) {
case 'touchstart':
falg = false;
break;
case 'touchmove':
falg = true;
break;
case 'touchend':
if( !falg ) {
$('.addressTextarea').val($(this).html())
$('.map-t').hide();
$('.province').html(cityname);
console.log('點擊');
} else {
console.log('滑动');
}
break;
}
});
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(latlon + "地址位置获取失败");
}
});
}
} ;
//地址转换
var pointArr = [];
pointArr.push(r.point);
var convertor = new BMap.Convertor();
convertor.translate(pointArr, 1, 5, translateCallback);
}
else {
alert('failed'+this.getStatus());
}
},{enableHighAccuracy: true})