頁面中加入地圖 座標地址自動識別

//其它jquery

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=F372ba2499981fed68d8a6d820cd0f36"></script>

<script type="text/javascript">
       
        //地圖
        var map;
        var infoWindow = null, marker;
        function findPosit(addr) {
            addr = addr;
            var gc = new BMap.Geocoder(); //地址解析類
            gc.getPoint(addr, function (p) {
                if (p) {
                    //經度
                    var opts = {
                        width: 200,     // 信息窗口寬度
                        height: 60,     // 信息窗口高度
                        title: "活動地點", // 信息窗口標題
                        enableMessage: true, //設置允許信息窗發送短息
                        message: "活動地點:" + addr
                    }
                    Easy.get("SLocation").value = p.lng + "," + p.lat;
                    infoWindow = new BMap.InfoWindow("地址:" + addr, opts);  // 創建信息窗口對象
                    infoWindow.disableCloseOnClick();
                    map.openInfoWindow(infoWindow, p); //開啓信息窗口
                    map.centerAndZoom(p, 18);
                    if (!marker) {
                        marker = new BMap.Marker(p);
                    } else {
                        marker.setPosition(p);
                    }
                    marker.setTitle("活動地點");
                    map.addOverlay(marker);          // 將標註添加到地圖中
                    marker.enableDragging();    //可拖拽
                    marker.addEventListener("dragend", function (e) {
                        var p = marker.getPosition(); //獲取marker的位置
                        var dom = $('#SLocation');
                        dom.val(p.lng + "," + p.lat);
                        gc.getLocation(p, function (rs) {
                            $('#ActivityPlace').val(rs.address);
                            var opts = {
                                width: 200,     // 信息窗口寬度
                                height: 60,     // 信息窗口高度
                                title: "活動地點", // 信息窗口標題
                                enableMessage: true, //設置允許信息窗發送短息
                                message: "活動地點:" + rs.address
                            }
                            infoWindow = new BMap.InfoWindow("地址:" + rs.address, opts);  // 創建信息窗口對象
                            infoWindow.disableCloseOnClick();
                            map.openInfoWindow(infoWindow, p); //開啓信息窗口
                        });
                    });
                }
            });
        }


        function getMapLoc(loc, addr) {
            if (typeof (loc) == "undefined" || $.trim(loc) == "") {
                loc = "119.649248,29.082041";
            }
            var arr = loc.split(',')
            map = new BMap.Map("map");
            map.addControl(new BMap.NavigationControl());  //添加默認縮放平移控件
            map.enableScrollWheelZoom(); //開啓鼠標滾動放大縮小
            var point = new BMap.Point(arr[0], arr[1]);
            map.centerAndZoom(point, 18);
            if (!marker) {
                marker = new BMap.Marker(point);
            } else {
                marker.setPosition(point);
            }
            marker.setTitle("商鋪地點");
            map.addOverlay(marker);              // 將標註添加到地圖中
            marker.enableDragging();    //可拖拽
            marker.addEventListener("dragend", function (e) {
                var p = marker.getPosition(); //獲取marker的位置
                var dom = $('#SLocation');
                dom.val(p.lng + "," + p.lat);
                //獲取地址信息 
                var gc = new BMap.Geocoder(); //地址解析類  
                gc.getLocation(p, function (rs) {
                    $('#ActivityPlace').val(rs.address);
                    var opts = {
                        width: 200,     // 信息窗口寬度
                        height: 60,     // 信息窗口高度
                        title: "商鋪地點", // 信息窗口標題
                        enableMessage: true, //設置允許信息窗發送短息
                        message: "商鋪地點:" + rs.address
                    }
                    infoWindow = new BMap.InfoWindow("地址:" + rs.address, opts);  // 創建信息窗口對象
                    infoWindow.disableCloseOnClick();
                    map.openInfoWindow(infoWindow, p); //開啓信息窗口
                });
            });
            if (addr) {
                var opts = {
                    width: 200,     // 信息窗口寬度
                    height: 60,     // 信息窗口高度
                    title: "商鋪地點", // 信息窗口標題
                    enableMessage: true, //設置允許信息窗發送短息
                    message: "商鋪地點:" + addr
                }
                infoWindow = new BMap.InfoWindow("地址:" + addr, opts);  // 創建信息窗口對象
                infoWindow.disableCloseOnClick();
                map.openInfoWindow(infoWindow, point); //開啓信息窗口
            }
            //右鍵菜單
            var contextMenu = new BMap.ContextMenu();
            var txtMenuItem = [
{
   text: '在此設置商鋪地點',
   callback: function (p) {
       marker.setPosition(p);
       var dom = $('#SLocation');
       dom.val(p.lng + "," + p.lat);
       var gc = new BMap.Geocoder(); //地址解析類  
       gc.getLocation(p, function (rs) {
           $('#ActivityPlace').val(rs.ActivityPlace);
       });
   }
},
 {
     text: '放大',
     callback: function () { map.zoomIn() }
 },
 {
     text: '縮小',
     callback: function () { map.zoomOut() }
 },
 {
     text: '放置到最大級',
     callback: function () { map.setZoom(18) }
 }
];


            for (var i = 0; i < txtMenuItem.length; i++) {
                contextMenu.addItem(new BMap.MenuItem(txtMenuItem[i].text, txtMenuItem[i].callback, 100));
                if (i == 1 || i == 3) {
                    contextMenu.addSeparator();
                }
            }
            map.addContextMenu(contextMenu);


        }
</script>



頁面關鍵代碼:

<div class='field left'>
            <label class="lbl">地址:</label>
            <input type='text' name='ActivityPlace' id="ActivityPlace" datatype="*" isnull="true" onchange="findPosit(this.value);" placeholder="活動地址"/>
            <input type="hidden" name="SLocation" id="SLocation" />
            <div class='clear'></div>
        </div>

<div class='field'>
   <label class='lbl'>地圖:</label>
   <div class='left'>
   <div id="map" style="height: 300px; width: 920px"></div>
   </div>
   <div class='clear'></div>
</div>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章