百度地图,通过地址获取坐标和通过坐标获取地址

<html>

<head>

    <style>

        body, html {

            width: 100%;

            height: 100%;

            margin: 0;

            font-family: "微软雅黑";

        }


        #allmap {

            height: 500px;

            width: 100%;

        }


        #r-result {

            width: 100%;

            font-size: 14px;

        }


        tr {

            height: 40px;

        }

    </style>

    <script src="https://code.jquery.com/jquery-1.11.3.js"></script>

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


    <script>

        $(document).ready(function () {

            // 初始化百度地图

            initBaiduMap(116.322987, 39.983424);


            $(".selectLan").click(function () {

                doOptions();

                initBaiduMap($("#addhouseLongitude").val(), $("#addhouseLatitude").val());

            });

        });

        /**

         *

         * 初始化百度地图

         */

        function initBaiduMap(x, y) {

            // 百度地图API功能

            map = new BMap.Map("allmap");

            var point = new BMap.Point(x, y);

            map.centerAndZoom(point, 15);

            //map.centerAndZoom("北京", 13);

            map.enableScrollWheelZoom(true);

            // 设置地图显示的城市 此项是必须设置的

            map.setCurrentCity("北京");

            // 添加地图类型控件

            map.addControl(new BMap.MapTypeControl());

            // 左上角,添加比例尺

            var top_left_control = new BMap.ScaleControl({

                anchor: BMAP_ANCHOR_TOP_LEFT

            });

            // 左上角,添加默认缩放平移控件

            var top_left_navigation = new BMap.NavigationControl();

            // 右上角,仅包含平移和缩放按钮

            var top_right_navigation = new BMap.NavigationControl({

                anchor: BMAP_ANCHOR_TOP_RIGHT,

                type: BMAP_NAVIGATION_CONTROL_SMALL

            });

            /*

             * 缩放控件type有四种类型: BMAP_NAVIGATION_CONTROL_SMALL:仅包含平移和缩放按钮;

             * BMAP_NAVIGATION_CONTROL_PAN:仅包含平移按钮; BMAP_NAVIGATION_CONTROL_ZOOM:仅包含缩放按钮

             */

            map.addControl(top_left_control);

            map.addControl(top_left_navigation);


            map.clearOverlays();

            // 创建标注

            var marker = new BMap.Marker(point);

            // 将标注添加到地图中

            map.addOverlay(marker);

            map.panTo(point);


            // 鼠标点击获取坐标,并设置标注

            //map.addEventListener("click", function (e) {

            //    //通过坐标获取详细地址

            //    $("#addhouseLongitude").val(e.point.lng);

            //    $("#addhouseLatitude").val(e.point.lat);

            //    map.clearOverlays();

            //    var new_point = new BMap.Point(

            //        document.getElementById("addhouseLongitude").value,

            //        document.getElementById("addhouseLatitude").value);

            //    // 创建标注

            //    var marker = new BMap.Marker(new_point);

            //    // 将标注添加到地图中

            //    map.addOverlay(marker);

            //    map.panTo(new_point);

            //});

        }


        //通过地址推出坐标

        var advancedOptions = "";

        var address = "";

        var cityname = "";

        var SAMPLE_ADVANCED_POST = "http://api.map.baidu.com/geocoder/v2/?ak=B3f7707c25da5b29a6ff69618788a296&callback=renderOption&output=json";

        //通过坐标反推地址的

        var addressOptions = "";

        var lat = "";

        var lng = "";

        var SAMPLE_ADDRESS_POST = "http://api.map.baidu.com/geocoder/v2/?ak=B3f7707c25da5b29a6ff69618788a296&callback=renderReverse&output=json&pois=1";


        function doOptions() {

            var script = document.createElement('script');

            script.type = 'text/javascript';

            showOptionsURL();

            script.src = advancedOptions;

            document.body.appendChild(script);

        };

        function doAddress() {

            var script = document.createElement('script');

            script.type = 'text/javascript';

            showAddressURL();

            script.src = addressOptions;

            document.body.appendChild(script);

        };


        function showOptionsURL() {

            advancedOptions = SAMPLE_ADVANCED_POST;

            address = document.getElementById("location").value;

            cityname = document.getElementById("cityname").value;

            advancedOptions += "&address=" + encodeURIComponent(address);

            advancedOptions += "&city=" + encodeURIComponent(cityname);

            var safe = advancedOptions;

            GetCode(safe);

        };


        function showAddressURL() {

            addressOptions = SAMPLE_ADDRESS_POST;

            lat = document.getElementById("addhouseLatitude").value;

            lng = document.getElementById("addhouseLongitude").value;

            addressOptions += "&location=" + lat + "," + lng;

            var safe = addressOptions;

            GetAddress(safe);

        };


        function GetCode(url) {

            $.ajax({

                type: "get",

                url: url,

                dataType: "JSONP",

                success: function (data) {

                    renderOption(data);

                },

                error: function (data) {

                    renderOption(data);

                }


            });

        }


        function GetAddress(url) {

            $.ajax({

                type: "get",

                url: url,

                dataType: "JSONP",

                success: function (data) {

                    renderReverse(data);

                },

                error: function (data) {

                    renderReverse(data);

                }


            });

        }


        function renderOption(response) {

            var html = '';

            if (response.status) {

                var text = "无正确的返回结果:\n";

                document.getElementById('optionsNarrative').innerHTML = text;

                return;

            } else {

                var location = response.result.location;

                $("#addhouseLongitude").val(location.lng);

                $("#addhouseLatitude").val(location.lat);

                document.getElementById('optionsNarrative').innerHTML = '<p>坐标:纬度: ' + location.lat + "  经度: " + location.lng + '<br/>';

                return;

            }

        }

        function renderReverse(response) {

            var html = '';

            if (response.status) {

                var text = "无正确的返回结果:\n";

                document.getElementById('optionsNarrative').innerHTML = text;

                return;

            } else {

                var location = response.result;


                html += '<p>详细地址: ' + location.formatted_address + '<br/>';

                html += '<p>城市: ' + location.addressComponent.country + location.addressComponent.province + '<br/>';

                html += '<p>市区: ' + location.addressComponent.city + location.addressComponent.district + '<br/>';

                html += '<p>地址: ' + location.addressComponent.street + location.addressComponent.street_number + '<br/>';

                document.getElementById('optionsNarrative').innerHTML = html;

                return;

            }

        }

    </script>

</head>

<body>

    <table style="width: 60%;" border="1">

        <tr>

            <td></td>

            <td>

                <input type="text" id="cityname" style="width: 200px;">

                <br />

                <input type="text" id="location" style="width: 200px;">

                <br />

                <input type="button" class="selectLan" value="查询坐标" />

                <br />

                <div id="optionsNarrative"></div>

            </td>

        </tr>

        <tr>

            <td>位置及周边</td>

            <td>

                <div id="r-result">

                    经度: <input id="addhouseLongitude" type="text" style="width: 180px; height: 30px; margin-right: 10px;" /><br />

                    纬度: <input id="addhouseLatitude" type="text" style="width: 180px; height: 30px; margin-right: 10px;" />

                </div>

                <div id="allmap"></div>

            </td>

        </tr>


    </table>

</body>

</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以通过以下步骤来实现百度坐标拾取和地址检索: 1. 在百度地图开放平台申请开发者账号,并创建应用,获取API密钥。 2. 在需要使用地图的页面中引入百度地图JavaScript API库文件。 ```html <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> ``` 3. 在页面中创建一个地图容器。 ```html <div id="map"></div> ``` 4. 初始化地图对象,设置地图中心点和缩放级别。 ```javascript var map = new BMap.Map("map"); // 创建地图实例 var point = new BMap.Point(116.404, 39.915); // 创建中心点坐标 map.centerAndZoom(point, 15); // 初始化地图,设置中心点和缩放级别 ``` 5. 在地图上添加一个标注,并监听标注的拖拽事件,获取标注的坐标。 ```javascript var marker = new BMap.Marker(point); // 创建标注 marker.enableDragging(); // 设置标注可拖拽 map.addOverlay(marker); // 将标注添加到地图中 marker.addEventListener("dragend", function(e) { // 监听拖拽事件 var point = e.point; // 获取标注的坐标 console.log(point.lng, point.lat); }); ``` 6. 使用百度地图API的地址解析服务,将地址转换为坐标,并在地图上添加一个标注。 ```javascript var geocoder = new BMap.Geocoder(); // 创建地址解析器实例 geocoder.getPoint("北京市海淀区上地信息路9号", function(point) { // 将地址解析为坐标 if (point) { map.centerAndZoom(point, 15); // 将地图中心点设置为解析出的坐标 var marker = new BMap.Marker(point); // 创建标注 map.addOverlay(marker); // 将标注添加到地图中 } else { alert("您选择地址没有解析到结果!"); } }, "北京市"); // 指定地址所在的城市 ``` 以上就是百度地图实现地址检索获取结果列表和坐标的基本步骤。您可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值