閱讀746 返回首頁    go 阿裏雲 go 技術社區[雲棲]


凨-百度地圖API之地圖標注(JS版),地理位置信息,根據地址獲取經度緯度

使用的時候記得更改百度地圖的開發者KEY

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>凨-百度地圖API之地圖標注(JS版),地理位置信息,根據地址獲取經度緯度</title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=8277432c34c6f58ba75d3a541ed2559e"></script>
</head>
<body>
<div>
    <p>搜索:
        <input  type="text" size="50"/> <input  type="button" value="搜索"
                                                           />
    </p>

    <p> 緯度:<input name="lng" type="text"   value="120.570464"/>
        經度:<input name="lat" type="text"   value="31.300216"/>
        標注點所在區域:<input name="address" type="text"  />
    </p>
</div>
<div  >
</div>
<div >
    <input  type="button" value="標注" />
</div>
<script type="text/javascript">
    var map = new BMap.Map("container");
    //創建地址解析的實例
    var myGeo = new BMap.Geocoder();
    var lng = $('#lng').val(), lat = $('#lat').val();
    //默認根據IP讀取當前城市
    var LocalCity = true;
    //默認北京市,或經度緯度不正確情況下
    if (!lng || !lat) {
        lng = 116.331398;
        lat = 39.897445;
    } else {
        LocalCity = false;
    }
    //設置地圖中心坐標
    map.centerAndZoom(new BMap.Point(lng, lat), 12);
    //添加默認縮放平移控件
    map.addControl(new BMap.NavigationControl());
    //開啟縮小放大
    map.enableScrollWheelZoom();
    //當前城市
    if (LocalCity) {
        var myCity = new BMap.LocalCity();
        myCity.get(setCenter);
    }else{
        //設置覆蓋物
        var point = new BMap.Point(lng, lat);
        setPoint(point);
    }
    //搜索
    $('#Search').bind('click', function () {
        //清空覆蓋物
        map.clearOverlays();
        var searchTxt = $("#keyword").val();
        myGeo.getPoint(searchTxt, function (point) {
            setPoint(point);
        }, "全國");

    });
    //搜索
    $('#biao').bind('click', function () {
        //清空覆蓋物
        map.clearOverlays();
        var center = map.getCenter();
        var point = new BMap.Point(center.lng, center.lat);
        setPoint(point);
    });
    /**
     * 回調函數
     */
    function setCenter(result) {
        var cityName = result.name;
        //把地圖設置當前城市
        map.setCenter(cityName);
    }
    /**
     * 設置覆蓋物,獲取坐標
     * @param point
     */
    function setPoint(point) {
        if (point) {
            //坐標賦值
            $('#lng').val(point.lng);
            $('#lat').val(point.lat);
            Geocoder(point);

            map.centerAndZoom(point, 12);
            var marker = new BMap.Marker(point);
            map.addOverlay(marker);
            marker.enableDragging();//可以拖動
            //創建信息窗口
            var infoWindow = new BMap.InfoWindow("這就是您公司的位置。<br/>如果不正確,請拖動紅色圖標");
            //顯示窗口
            marker.openInfoWindow(infoWindow);
            //點擊監聽
            marker.addEventListener("click", function () {
                this.openInfoWindow(infoWindow);
            });
            //拖動監聽
            marker.addEventListener("dragend", function (e) {
                //坐標賦值
                $('#lng').val(e.point.lng);
                $('#lat').val(e.point.lat);
                Geocoder(e.point);
            });
        }
    }
    /**
     * 根據坐標獲取地址
     * @param point
     * @constructor
     */
    function Geocoder(point) {
        var gc = new BMap.Geocoder();
        gc.getLocation(point, function (rs) {
            var addComp = rs.addressComponents;
            $('#address').val(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
        });
    }

</script>
</body>
</html>

最後更新:2017-04-03 12:56:33

  上一篇:go Sql_Server中如何判斷表中某列是否存在
  下一篇:go undone搜索總論