百度地图根据通过查询地址获取经纬度,点击地图获取经纬度

xiaoxiao2021-02-28  85

<%@ page language="java" contentType="text/html; charset=utf-8"     pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title>根据地址查询经纬度</title>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">     <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=kRHuqFbkaoDcf5CsmOY0fwlpOZZgMxkt"></script>   </head> <body style="background:#CBE1FF">     <div style="width:730px;margin:auto;">            要查询的地址:<input id="text_" type="text" value="" style="margin-right:100px;"/>         查询结果(经纬度):<input id="result_" type="text" />         <input type="button" value="查询" οnclick="searchByStationName();"/>              </div>     <div id="container"          style="width:1600px;height:900px; margin:auto;">     </div> </body> <script type="text/javascript">     var map = new BMap.Map("container");     map.centerAndZoom("宁波", 12);     map.enableScrollWheelZoom();    //启用滚轮放大缩小,默认禁用     map.enableContinuousZoom();    //启用地图惯性拖拽,默认禁用     map.addControl(new BMap.NavigationControl());  //添加默认缩放平移控件     map.addControl(new BMap.OverviewMapControl()); //添加默认缩略地图控件     map.addControl(new BMap.OverviewMapControl({ isOpen: true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT }));   //右下角,打开     var localSearch = new BMap.LocalSearch(map);     localSearch.enableAutoViewport(); //允许自动调节窗体大小 function searchByStationName() {    map.clearOverlays();//清空原来的标注    var keyword = document.getElementById("text_").value;    localSearch.setSearchCompleteCallback(function (searchResult) {        var poi = searchResult.getPoi(0);        document.getElementById("result_").value = poi.point.lng + "," + poi.point.lat;        map.centerAndZoom(poi.point, 13);        var marker = new BMap.Marker(new BMap.Point(poi.point.lng, poi.point.lat));  // 创建标注,为要查询的地方对应的经纬度        map.addOverlay(marker);        var content = document.getElementById("text_").value + "<br/><br/>经度:" + poi.point.lng + "<br/>纬度:" + poi.point.lat;        var infoWindow = new BMap.InfoWindow("<p style='font-size:14px;'>" + content + "</p>");        marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); });    });    localSearch.search(keyword); }  map.addEventListener("click", function(e){ var point = new BMap.Point(116.331398,39.897445);     map.centerAndZoom(point,12);     map.enableScrollWheelZoom(true);     var geoc = new BMap.Geocoder();     //通过点击百度地图,可以获取到对应的point, 由point的lng、lat属性就可以获取对应的经度纬度          var pt = e.point;     geoc.getLocation(pt, function(rs){         //addressComponents对象可以获取到详细的地址信息         var addComp = rs.addressComponents;         var site = addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber;                  localSearch.setSearchCompleteCallback(function (searchResult) {             var poi = searchResult.getPoi(0);             document.getElementById("result_").value = poi.point.lng + "," + poi.point.lat;             map.centerAndZoom(poi.point, 13);             var marker = new BMap.Marker(new BMap.Point(poi.point.lng, poi.point.lat));  // 创建标注,为要查询的地方对应的经纬度             map.addOverlay(marker);             var content = document.getElementById("text_").value + "<br/><br/>经度:" + poi.point.lng + "<br/>纬度:" + poi.point.lat;             var infoWindow = new BMap.InfoWindow("<p style='font-size:14px;'>" + content + "</p>");             marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); });         });         localSearch.search(site);              });         }); </script> </html>
转载请注明原文地址: https://www.6miu.com/read-2626778.html

最新回复(0)