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

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

闲话不多,下面就直接给大家介绍下,具体要怎么调用百度地图API。
首先新建一个html页面。然后引用api

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>网站引用百度地图 根据地址查询经纬度</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>
<!--<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=gVNM7VnRHRcZkOLZTeZW6oEf"></script>--></head><body style="background:#CBE1FF">
</body>
</html>

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

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

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

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

<div id="container" style="position:absolute;margin-top:30px;width:730px;height:590px;top:50;border:1px solid gray;overflow:hidden;"></div>

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

<script type="text/javascript">var map = new BMap.Map("container");map.centerAndZoom("深圳", 12);
</script>

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代码如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>根据地址查询经纬度</title>
<!--<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>-->
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=gVNM7VnRHRcZkOLZTeZW6oEf"></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="查询" onclick="searchByStationName();"/><div id="container" style="position: absolute;margin-top:30px; width: 730px; height: 590px; top: 50; border: 1px solid gray;overflow:hidden;"></div>
</div>
</body>
</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 + "<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); });//marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
    });localSearch.search(keyword);
}

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>根据地址查询经纬度</title>
<!--<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>-->
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=gVNM7VnRHRcZkOLZTeZW6oEf"></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="查询" onclick="searchByStationName();"/><div id="container" style="position: absolute;margin-top:30px; width: 730px; height: 590px; top: 50; border: 1px solid gray;overflow:hidden;"></div>
</div>
<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); });//marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
    });localSearch.search(keyword);
}
searchByStationName();
</script>
</body>
</html>

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

网站调用百度地图 根据地址查询经纬度相关推荐

  1. 百度地图AK申请注意+百度地图API生成热力图+调用百度地图API自动获取经纬度和地址

    文章目录 一.百度地图AK密钥申请 二.调用百度地图API生成热力图 三.调用百度地图API自动获取经纬度和地址 一.百度地图AK密钥申请 点击百度地图API控制台,输入登录账户,即可进入,若账户未完 ...

  2. python+百度地图 实现地址转换为经纬度(全网最简单方法)

    python+百度地图实现地址转换经纬度 前期准备 安装requests包 在百度地图开放平台申请AK 接下来进入正题 首先, AK使用方法 最后,上代码 前期准备 首先安装需要的库,requests ...

  3. Python调用百度地图api路径查询

    通过调用百度地图api获取两个地点的距离和时间.参数详见百度地图api官方文档. # -*- coding: utf-8 -*- """ Created on Thu M ...

  4. 百度地图 获取地址转换为经纬度

    最近在项目中用到百度地图,由于以前没有接触过,所以刚开始感觉无从下手;百度地图JavaScript API是用JavaScript编写的程序接口,废话不多说了看例子.(这是我第一次写博客,欢迎大家指教 ...

  5. php地址转换成经纬度,百度地图 获取地址转换为经纬度

    html> 根据地址查询经纬度 a.{ margin-right:100px; } style="position: absolute; margin-top:30px; width: ...

  6. python 调用百度地图api 实现批量经纬度转换为实际省市地点(api调用,json解析,mysql读取与写入)

    1.获取秘钥 调用百度地图API实现得申请百度账号或者登陆百度账号,然后申请自己的ak秘钥.链接如下:添加链接描述 下面是百度创建的app设置: 2.调用API将经纬度信息解析成json信息 def ...

  7. html百度地图获取城镇街道,集成百度地图根据地址获取经纬度,定位地址到街道...

    根据地址查询经纬度 $(function(){ var map = new BMap.Map("container"); map.centerAndZoom("北京&qu ...

  8. python调用百度地图API批量查询全国高速收费站点经纬度

    写在前面 大家好,我是饭都吃不起的南南 昨天帮朋友爬了全国的高速站点收费站这里下载 [http://www.bestunion.cn/gaosu/p_4/sfzlist.html] 由于该网站并没有西 ...

  9. Python 调用 百度地图API接口 查询 详细地址名称 [转载]

    需要批量 查询文件中的地址在 百度地图中的名称 与坐标 Step 1 . 下载chromedriver 下载地址 : ChromeDriver下载. 注意需要下载和chrome浏览器相同版本的driv ...

最新文章

  1. 陈松松:视频营销成交率低,这三个因素没到位
  2. 一看就懂的动态规划入门教程
  3. 极大似然估计 摘自维基百科
  4. ini_set的用法介绍
  5. C#探秘系列(八)WPF数据绑定
  6. [渝粤教育] 广东-国家-开放大学 21秋期末考试大学英语210262k2
  7. python爬虫之多线程、多进程爬虫_python 多线程,多进程,高效爬虫
  8. 十分钟教你使用NoteExpress
  9. hdoj1160:FatMouse's Speed(dp+最长递减子序列思想+数组巧妙记录输出)
  10. STM32/STM8选型手册
  11. Javascript上传图片转base64并预览
  12. 2015年蓝桥杯省赛C++(A组) 第三题 奇妙的数字
  13. 计算机技术专业求职简历,计算机技术专业求职简历模板
  14. 蛋白互作常用的研究方法
  15. python-提取特征 特征选择
  16. Echarts 柱状图横向展示和竖向展示
  17. WINDWOS XP应用大全
  18. 【操作系统】第三章:内存管理
  19. 数据分析岗位面试准备请看这篇!
  20. Python中的各种占位符

热门文章

  1. 解决织梦(DedeCMS)系统自定义字段图片调用问题
  2. 使用openssl生成PEM格式私钥和公钥及ECDSA签名
  3. 你知道K8S暴露服务的方式有哪些吗?
  4. DNS递归查询与迭代查询
  5. PAT1103 Integer Factorization (30)(DFS:回溯)
  6. Css 分类 属性 选择器
  7. PL/Sql快速执行 insert语句的.sql文件
  8. 【Keras】从两个实际任务掌握图像分类
  9. 《Ruby程序员修炼之道》(第2版)—第1章1.4节易用的Ruby工具和应用程序
  10. JavaWeb之Cookie