<script type="text/javascript">
// 百度地图API功能
var map = new BMap.Map('allmap');
var poi = new BMap.Point(116.307852, 40.057031);
var addressPost;
var CURRENT_LNG;
var CURRENT_LAT;
map.centerAndZoom(poi, 18);
map.enableScrollWheelZoom();
//获取当前位置信息
var getCurrentLocation = function (lg, lt) {
geoc.getLocation(new BMap.Point(lg, lt), function (rs) {
var addComp = rs.address;
var fujinAddeessArr = rs.surroundingPois[0];
document.getElementById('resultText').innerText = '当前位置 :' + fujinAddeessArr.title + '——' + fujinAddeessArr.address;
addressPost = fujinAddeessArr.title + '——' + fujinAddeessArr.address;
CURRENT_LNG = lg;
CURRENT_LAT = lt;
});
}
var lng, lat;
//获取当前定位
var geoc = new BMap.Geocoder();
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function (r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
lng = r.point.lng
lat = r.point.lat
getCurrentLocation(lng, lat)
}
else {
alert('failed' + this.getStatus());
}
}, { enableHighAccuracy: true })
map.addEventListener("touchstart", function (e) { //给地图添加点击事件
map.clearOverlays();//清除地图上所有覆盖物
//获取经纬度
var lng = e.point.lng;
var lat = e.point.lat;
//创建标注位置
var pt = new BMap.Point(lng, lat);
var myIcon = new BMap.Icon("../../static/img/Location1.png", new BMap.Size(20, 25), { anchor: new BMap.Size(5, 20), infoWindowAnchor: new BMap.Size(10, 0) });
var marker2 = new BMap.Marker(pt, { icon: myIcon }); // 创建标注
map.addOverlay(marker2); //方法向地图中添加单个覆盖物时会触发此事件,将标注添加到地图中
getCurrentLocation(lng, lat)
});
var ac = new BMap.Autocomplete( //建立一个自动完成的对象
{
"input": "suggestId",
"location": map
});
function G(id) {
return document.getElementById(id);
}
var myValue;
ac.addEventListener("onconfirm", function (e) { //鼠标点击下拉列表后的事件
var _value = e.item.value;
myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
G("searchResultPanel").innerHTML = "onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
setPlace();
});
function setPlace() {
map.clearOverlays(); //清除地图上所有覆盖物
function myFun() {
var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
map.centerAndZoom(pp, 18);
map.addOverlay(new BMap.Marker(pp)); //添加标注
getCurrentLocation(pp.lng, pp.lat)
}
var local = new BMap.LocalSearch(map, { //智能搜索
onSearchComplete: myFun
});
local.search(myValue);
}
super丶千
相关分类