博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网站调用百度地图 根据地址查询经纬度
阅读量:6523 次
发布时间:2019-06-24

本文共 3395 字,大约阅读时间需要 11 分钟。

百度地图API简单应用—根据地址查询经纬度

简单几步注册获得一个ak,就能直接调用(PS:好像1.3版本前的无需注册获取ak,就能直接调用api)。

闲话不多,下面就直接给大家介绍下,具体要怎么调用百度地图API。

首先新建一个html页面。然后引用api

网站引用百度地图 根据地址查询经纬度

这里我直接引用了1.3的版本,要引用1.3版本以上的话要加上ak

如此几行代码就成功引用了百度地图api,接下来就是调用他的一些方法了。

1.首先在body中添加一个div,用来加载地图,简单写下样式。

2.然后写javascript代码,调用api中的方法。首先创建一个地图,设置地图显示的中心地图,及显示的放大倍数

3.启用地图的放大缩小功能,以及地图的拖拽功能

map.enableScrollWheelZoom();   //启用滚轮放大缩小,默认禁用map.enableContinuousZoom();    //启用地图惯性拖拽,默认禁用

4.为了使用地图更加方便,我们还可以添加缩放的平移控件,以及地图的缩略图控件,并设置控件显示的位置

map.addControl(new BMap.NavigationControl());  //添加默认缩放平移控件map.addControl(new BMap.OverviewMapControl()); //添加默认缩略地图控件map.addControl(new BMap.OverviewMapControl({ isOpen: true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT }));   //右下角,打开

BMAP_ANCHOR_BOTTOM_RIGHT为控件显示的位置,表示控件位于地图的右下角,可以按照自己的喜欢添加参数值。

主要有以下四种显示方式:
BMAP_ANCHOR_TOP_LEFT           表示控件定位于地图的左上角。
BMAP_ANCHOR_TOP_RIGHT         表示控件定位于地图的右上角。
BMAP_ANCHOR_BOTTOM_LEFT     表示控件定位于地图的左下角。
BMAP_ANCHOR_BOTTOM_RIGHT   表示控件定位于地图的右下角。

好了,地图的一些基本设置已经完成,如果需要其他功能,可以查看百度地图API的Demo来获取调用的方法。

http://developer.baidu.com/map/jsdemo.htm

5.接下来就要实现我们的主要功能了,首先,在页面上添加两个文本框和一个查询按钮。第一个文本框是用来输入要查询的地址,第二个文本框是用来显示查询所得的经纬度。html代码如下

根据地址查询经纬度
要查询的地址:
查询结果(经纬度):

6.接下来要构建一个查询

var localSearch = new BMap.LocalSearch(map);localSearch.enableAutoViewport(); //允许自动调节窗体大小

7.然后我们就开始做最关键的一步了,获取地址的具体经纬度

function searchByStationName() {  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);  });  localSearch.search(keyword);}

8.为了使效果更加明显,我们还可以添加标注点到查询的地址上。于是,上面的代码可以改成

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);    });    localSearch.search(keyword);}

9.还可以在标注上添加详情信息,使点击后能看到具体信息。于是,再一次修改代码

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 + "
经度:" + poi.point.lng + "
纬度:" + poi.point.lat; var infoWindow = new BMap.InfoWindow("

" + content + "

"); marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); }); //marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 }); localSearch.search(keyword);}

10.好了,基本功能都实现了,下面是完整的代码

根据地址查询经纬度
要查询的地址:
查询结果(经纬度):

 

转载于:https://www.cnblogs.com/afish/p/3929546.html

你可能感兴趣的文章
【转】如何使用分区助手完美迁移系统到SSD固态硬盘?
查看>>
NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
查看>>
ios兼容iphonex刘海屏解决方案
查看>>
就是要你懂TCP -- 握手和挥手
查看>>
Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
查看>>
《Python游戏编程快速上手》一1.3 如何使用本书
查看>>
《Android游戏开发详解》——第1章,第1.3节声明和初始化变量
查看>>
《Visual Studio程序员箴言》----1.2 滚动与导航
查看>>
Processing编程学习指南2.7 Processing参考文档
查看>>
架构师速成-架构目标之伸缩性\安全性
查看>>
执行可运行jar包时读取jar包中的文件
查看>>
linux下ExtMail邮件使用及管理平台
查看>>
linux中iptables设置自建dns服务器的端口
查看>>
TP5+PHPexcel导入xls,xlsx文件读取数据
查看>>
基于Yum安装zabbix3.0
查看>>
Master-work模式
查看>>
dos命令行 指令
查看>>
RT-Thread--时间管理
查看>>
BUPT 63T 高才生 找最佳基站
查看>>
linux 学习(二)防火墙
查看>>