- <script type="text/javascript">
- function G(id) {
- return document.getElementById(id);
- }
- var map = new BMap.Map("allmap");
- var point = new BMap.Point(116.331398, 39.897445);
- map.centerAndZoom(point, 16);
- 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);
- var marker = new BMap.Marker(point); // 创建标注
- map.addOverlay(marker);
- marker.enableDragging(); //可拖拽
- map.addControl(new BMap.NavigationControl()); //添加默认缩放平移控件
- // map.addControl(new BMap.OverviewMapControl()); //添加默认缩略地图控件
- // map.addControl(new BMap.OverviewMapControl({isOpen:true, anchor: BMAP_ANCHOR_TOP_RIGHT})); //右上角,打开
- map.addControl(new BMap.ScaleControl()); // 添加默认比例尺控件
- map.addControl(new BMap.MapTypeControl({ mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP] })); //2D图,卫星图
- map.addControl(new BMap.MapTypeControl({ anchor: BMAP_ANCHOR_TOP_LEFT })); //左上角,默认地图控件
- map.enableScrollWheelZoom(true);// 允许鼠标滑轮放大缩小
- map.disableDragging(); //禁止拖拽
- setTimeout(function () {
- map.enableDragging(); //三秒后开启拖拽
- map.enableInertialDragging(); //三秒后开启惯性拖拽
- }, 2000);
- var ac = new BMap.Autocomplete( //建立一个自动完成的对象
- {
- "input": "suggestId"
- , "location": map
- });
- ac.addEventListener("onhighlight", function (e) { //鼠标放在下拉列表上的事件
- var str = "";
- var _value = e.fromitem.value;
- var value = "";
- if (e.fromitem.index > -1) {
- value = _value.province + _value.city + _value.district + _value.street + _value.business;
- }
- str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;
- value = "";
- if (e.toitem.index > -1) {
- _value = e.toitem.value;
- value = _value.province + _value.city + _value.district + _value.street + _value.business;
- }
- str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
- G("searchResultPanel").innerhtml = str;
- });
- 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)); //添加标注
- }
- var local = new BMap.LocalSearch(map, { //智能搜索
- onSearchComplete: myFun
- });
- local.search(myValue);
- }
- // alert('您的位置:'+r.point.lng+','+r.point.lat);
- }
- else {
- // alert('failed'+this.getStatus());
- }
- }, { enableHighAccuracy: true })
- //关于状态码
- //BMAP_STATUS_SUCCESS 检索成功。对应数值“0”。
- //BMAP_STATUS_CITY_LIST 城市列表。对应数值“1”。
- //BMAP_STATUS_UNKNOWN_LOCATION 位置结果未知。对应数值“2”。
- //BMAP_STATUS_UNKNOWN_ROUTE 导航结果未知。对应数值“3”。
- //BMAP_STATUS_INVALID_KEY 非法密钥。对应数值“4”。
- //BMAP_STATUS_INVALID_REQUEST 非法请求。对应数值“5”。
- //BMAP_STATUS_PERMISSION_DENIED 没有权限。对应数值“6”。(自 1.1 新增)
- //BMAP_STATUS_SERVICE_UNAVAILABLE 服务不可用。对应数值“7”。(自 1.1 新增)
- //BMAP_STATUS_TIMEOUT 超时。对应数值“8”。(自 1.1 新增)
- </script>
- //该片段来自于http://www.codesnippet.cn/detail/121220137975.html
来源: http://www.codesnippet.cn/detail/121220137975.html