百度地图API 显示区域边界及地名定位

这个定位一共用了两个方法组成

一个是定位绘制区域边界线,另一个是地名定位

原理:

  当用户输入省、市、县、区这种大地名时,我们要定位用户输入的这个位置,并显示轮廓,即调用getBoundary方法;

  当用户输入乡,街道,某个学校这样的小地名时,这是由于区域太小,不需要对这片区域描边时,我们再调用dw方法

  1. <div id="l-map"></div>
  2. <div class="layout">
  3. <input id="value" value="青山湖区长春村" type="text">
         <input type="submit" onclick="pd()" value="定位">
  4. </div>
  1. //初始化地图
  2. var value='';var map = new BMap.Map("l-map");
  3. map.centerAndZoom('北京市',10);
  4. map.enableScrollWheelZoom();
  1. //定位区域,小地名,使用本地检索方法
  2. var dw=function(){
  3. //value=document.getElementById('value').value;
  4. var local = new BMap.LocalSearch(map, {
  5. renderOptions:{map: map}
  6. });
  7.  
  8. local.setMarkersSetCallback(function(pois){
  9. map.clearOverlays();//清除所有覆盖物后,在叠加第一个点
  10. var marker = new BMap.Marker(pois[0].point);
  11. map.addOverlay(marker);
  12. })
  13.  
  14. local.search(value);
  15. map.clearOverlays();
  16.  
  17. }
  1. //获取边界
  2. function getBoundary(){//获取边界
  3. var bdary = new BMap.Boundary();
  4. bdary.get(value, function(rs){ //获取行政区域
  5. map.clearOverlays(); //清除地图覆盖物
  6. var count = rs.boundaries.length; //行政区域的点有多少个
  7. for(var i = 0; i < count; i++){
  8. var ply = new BMap.Polygon(rs.boundaries[i], {
  9. strokeWeight: 1,
  10. strokeColor: "#ff0000"
  11. }); //建立多边形覆盖物
  12. map.addOverlay(ply); //添加覆盖物
  13. map.setViewport(ply.getPath()); //调整视野
  14. }
  15. });
  16. }
  1. //正则表达式,满足条件后调用
  2. var patter=/['省'|'市'|'区'|'县']$/;
  3. var pd=function(){
  4. value=document.getElementById('value').value;
  5. if(patter.test(value)==true){//关键字结尾是省市县区就调用下面方法
  6. getBoundary();
  7. if(/社区|小区$/.test(value)==true){//因为区后面结尾,会有小区和社区,即做了一个字方法
  8. dw();
  9. }
  10. }else{//关键字结尾没有省市县区结尾就调用此方法
  11. dw();
  12. }
  13. }

百度地图API 显示区域边界及地名定位的更多相关文章

  1. 百度地图API显示多个标注点并添加百度样式检索窗口

    原作者博客地址:http://blog.csdn.net/a497785609/article/details/24009031 在此基础上进行了修改: 1.添加闭包,将i传入内部 2.添加地图和卫星 ...

  2. 百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法

    原文:百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法 公司的网站改版要求在一个页面显示百度地图.上面要同时显示很多标注点,标注点当然要有提示信息嘛,提 ...

  3. 百度地图API显示多个标注点带百度样式信息检索窗口的代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 百度地图API显示多个标注点带提示的代码 / 单个标注点带提示代码

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  5. 百度地图API显示多个标注点带检索框

    通过百度地图的api,可以在地图上显示多个标注点,并给所有的标注点实现了带检索功能的信息框 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T ...

  6. 通过百度地图API显示当前位置在地图上(图标显示)--第三方开源--百度地图(二)

    1.下载百度地图的demo,下载地址:http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfuncti ...

  7. 百度地图api之----根据用户ip定位城市

    LocalCity 这个类是利用用户IP地址去百度数据库里查询得到IP所在的城市,用法如下: var objCity = new BMap.LocalCity(); objCity.get(funct ...

  8. HTML5地理定位,百度地图API,知识点熟悉

    推断浏览器的兼容问题: IE9+支持地理定位,FF Chrome新版支持地理定位  if (navigator.geolocation) {        alert('支持地理定位');   } e ...

  9. Qt开发北斗定位系统融合百度地图API及Qt程序打包发布

    Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1.上位机介绍 最近有个接了一个小型项目,内容很简单,就是解析北斗GPS的串口数据然后输出经纬度,但接过来觉得太简单,就发挥了主观能动性,增加 ...

随机推荐

  1. ThinkPHP的增删改查!

    对表的操作: 增加:M('表名')->add($data);  (可以是数组) 删除:M('表名')->delete($data); (不可以是数组,删除多个有另外的方法) 修改:M('表 ...

  2. ubuntu win7双系统设置开机启动顺序

    ctrl+alt+t打开命令终端 sudo chmod +w /boot/grub/grub.cfg (赋予该文件写权限) sudo gedit /boot/grub/grub.cfg 将set de ...

  3. php 判断变量函数

    1.isset功能:判断变量是否被初始化 判断变量是否被定义了 2.empty功能:检测变量是否为"空" 说明:任何一个未初始化的变量.值为 0 或 false 或 空字符串&qu ...

  4. asp.net mvc(一) ----------简单封装成通用的List<T>集合

    asp.net mvc(一) 这些天开始学习asp.net mvc,用传统的asp.net已经快四的年了,刚开始接触asp.net mvc确认感觉有点不适应,主要体现在asp.net mvc的实现上. ...

  5. MVC学习之简单的CRUD

    1.一点知识的总结 (1)MVC将展示页面和后台处理逻辑分离,不像ASPX中展示页面继承自后台的cs页面,MVC展示页面继承自ViewPage<dynamic>,最终继承自Page(使用A ...

  6. socket协议和http协议性能对比

    最近做了一次队列服务的性能测试,是通过两种协议windows socket和http分别往内存中写入url.对比哪种协议的效果更高,下图是测试结果.此次使用的工具是loadrunner.在压socke ...

  7. Just a Hook---hdu1698(线段树---区间处理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 现有n个金属(编号1---n),每个金属的材质都是铜,有m个操作,每个操作都是把编号 L 到 R ...

  8. Python开发【模块】:Pygal 绘制直方图

    Pygal Pygal可用来生成可缩放的矢量图形文件,对于需要在尺寸不同的屏幕上显示的图表,这很有用,可以自动缩放,自适应观看者的屏幕 1.Pygal模块安装 ① Windows系统 # Pygal模 ...

  9. Kubernetes实战(二):k8s v1.11.1 prometheus traefik组件安装及集群测试

    1.traefik traefik:HTTP层路由,官网:http://traefik.cn/,文档:https://docs.traefik.io/user-guide/kubernetes/ 功能 ...

  10. day17(JDBC入门&jdbcUtils工具介绍)

    day17 JDBC整体思维导图 JDBC入门 导jar包:驱动! 加载驱动类:Class.forName("类名"); 给出url.username.password,其中url ...