功能要求:实现一个地图里面可以显示出许多的营地地点,点击地点的弹出框跳转到相应的文字上面
本来找个工作想只干后台轻松点,没想到还是得写前端代码,有点尴尬呀。遇到找个功能刚开始是想让实现链家的那种按图找房的样式,但是无奈水平有限,只能曲线实现这样的效果,以后有时间了研究研究如何实现链家的 效果。
百度地图需要有AK才行,自己去申请一个就行啦。
主要是两个文件:代码中包含了许多垃圾代码。谨慎复制。
camp_metting.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, user-scalable=no,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><title></title><script type="text/javascript" src="../assets/jquery.min.js"></script><script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=你自己的ak"></script><script type="text/javascript" src="../js/camp_meeting.js"></script><style type="text/css">  html{height:100%}    body{height:100%;margin:0px;padding:0px}    #container{height:75%;width:96%;margin-left:2%;border-radius:15px}  #map_select{height:75%;width:100%;margin:0 auto;text-align:center;text-align-last:center;background:#fafdfe;border-radius:15px;border:2px solid #9bc0dd;  font-size: 20px;}</style>
</head><body><div class="map_select_div_class"></div><div id="container"></div><!-- 资讯 --><script type="text/template" id="map_select_div_id"><div id="map_select_div"><select class="sel" id="map_select" ><% for(var i=0; i < items.length; i++){ %><option id="option_select" value="<%=items[i].code_p%>"><%=items[i].name %></option><% } %></select></div></script><script type="text/template" id="policyListId"></script>
</body>
</html>

camp_meeting.js

$(function () {   /* maker点 */var pDatas = [];var cDatas = [];window.map = initMap();//初始化地图对象window.selectP =  initProList(); //初始化省份列表function initMap(){var map = new BMap.Map('container');map.centerAndZoom(new BMap.Point(113.42, 33.56), 7);map.enableScrollWheelZoom(true);//开启鼠标滚轮缩放map.addControl(new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT,offset: new BMap.Size(20, 20)}));var cr = new BMap.CopyrightControl({anchor: BMAP_ANCHOR_TOP_RIGHT,offset: new BMap.Size(20, 20)});   //设置版权控件位置var bs = map.getBounds();   //返回地图可视区域cr.addCopyright({id: 1, content: "<b style='color:#9bc0dd;font-size:15px;'>© 智慧营地</b>", bounds: bs});map.addControl(cr); //添加版权控件return map;}//初始化省份选择function initProList(){$.ajax({type:'get',url: path + '/top/info/getMapInfoList',dataType:'json',async:false,success:function(res){console.log(res.data);for(var i=0; i < res.data.length;i++){pDatas.push(res.data[i]);}}});var mokaDataProvinceHtml = template('map_select_div_id', { 'items': pDatas });document.querySelector('.map_select_div_class').innerHTML = mokaDataProvinceHtml;}function cityMarker(pamar){//      map.clearOverlays();var myGeo = new BMap.Geocoder();$.each(pamar,function(index,item){(function(i,t){myGeo.getPoint(t.city_code + t.county_code, function(point) { //获取行政区域var maker = new BMap.Marker(point);map.addOverlay(maker);var opts = {width:100,height:0,position: point, offset: new BMap.Size(30,-30)};var sContent ='<a style="margin:0;line-height:1.5;font-size:15px;"  href="'+ path +'/jsp/zhyk/html/new.html?tabType=1&source=news&news=news&infoId='+t.info_id+'"> '+t.title+'</a>';var infoWindow = new BMap.InfoWindow(sContent,opts);maker.addEventListener('click',function(){map.openInfoWindow(infoWindow,point);});}, t.city_code);})(index, item)});}/*** 获取省份信息列表*/$('#map_select').change(function(){var vs = $('select  option:selected').val();console.log(vs)$.each(pDatas,function(index,item){(function(i,t){if(vs == t.code_p){map.clearOverlays();getBoundary(t.name);/*var myGeo = new BMap.Geocoder();// 将地址解析结果显示在地图上,并调整地图视野//------------->设置地图范围中心点随着省份不同而变化,由于区域边界显示的存在,该功能暂时不需要但留存myGeo.getPoint(t.name, function(point){console.log("change>>>>>"+point.lng+":"+point.lat)map.centerAndZoom(new BMap.Point(point.lng, point.lat), 7);}, t.name)*/getMarkerData(t.code_p);}})(index,item);});});/*** 获取省份下的 城市列表数据*/function getMarkerData(code_p){$.ajax({type:'post',url: path + '/top/info/getMapInfoList',dataType:'json',async:false,data: {province: code_p},success:function(res){if (cDatas.length !== 0) {cDatas = [];}console.log(res.data);for(var i=0; i < res.data.length;i++){cDatas.push(res.data[i]);}}});}//获取区域边框function getBoundary(city_name){       var bdary = new BMap.Boundary();bdary.get(city_name, function(rs){       //获取行政区域map.clearOverlays();        //清除地图覆盖物       var count = rs.boundaries.length; //行政区域的点有多少个if (count === 0) {alert('未能获取当前输入行政区域');return ;}var pointArray = [];for (var i = 0; i < count; i++) {var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2, strokeColor: "#ff0000"}); //建立多边形覆盖物map.addOverlay(ply);  //添加覆盖物cityMarker(cDatas);       // 添加marker 标记点pointArray = pointArray.concat(ply.getPath());}    map.setViewport(pointArray);    //调整视野  });   }
})

效果图如下:


下拉列表选择省份,点击省份显示标记点。

百度地图JavaScript 选择 省份 显示 出省份的区域以及省份下的信息标点相关推荐

  1. Android百度地图定位APP,显示出当前位置坐标

    Android百度地图定位APP,显示出当前位置坐标 官网配置百度地图 通过CMD命令获取SHA1 在百度的官网里面创建一个应用 Android配置 显示地图即定位 配置 AndroidManifes ...

  2. 百度地图 JavaScript API

    文章目录 1.账号申请 2.创建应用 3.使用地图 介绍 示例 4.具体使用 控件 个性地图 带高度的点(标记地点.覆盖物) 点击事件 参考资料: 入门百度地图 JavaScript API | 8月 ...

  3. 百度地图调用加载显示Marker,并添加点击事件

    百度地图调用加载显示Marker,并添加点击事件 注册百度开发者账号,申请应用AK 百度地图开发平台官网 点击右上角控制台,选择创建应用 创建应用,勾选浏览器端,白名单填写* 注:如上线更改为公网IP ...

  4. 百度地图JavaScript开发入门教程

    自从openGPS.cn小编在2011年的一个WEB项目中用到了百度地图做售楼数量分布显示功能之后,就一发不可收拾,在位置服务的领域一路走了5年之久.今天难得时间充裕,给WEB开发者分享一点自己的经验 ...

  5. 百度地图JavaScript API覆盖物旋转时出现偏移

    在项目中,调用百度地图JavaScript API,做覆盖物的旋转再添加到地图上,结果出现偏移了. 调试过程中的效果图: 发现图片的旋转并不是按车子的中心来的,而是之外的一个点.最后发现犯了一个很细节 ...

  6. html5 百度地图api文档,开发指南--百度地图JavaScript API大众版.doc

    开发指南--百度地图JavaScriptAPI大众版开发指南--百度地图JavaScriptAPI大众版 简介 JavaScript API大众版 JavaScript API功能介绍 百度地图Jav ...

  7. 百度地图JavaScript版api使用说明

    步骤一:申请百度地图密钥: JavaScript API v1.4以及以前的版本无序申请秘钥(ak),自v1.5版本开始需要先申请秘钥(ak),才可以使用,如需获取更高的配额,需要申请         ...

  8. 百度地图JavaScript API GL—简易行政区划图层

    map开发 百度地图JavaScript API GL-简易行政区划图层 administrator 2022年6月6日 简易行政区划图层 更新时间:2022年3月12日 简介 DistrictLay ...

  9. vue3调用百度地图标注选择位置并获取经纬度

    vue3调用百度地图标注选择位置并获取经纬度 参考了很多文章,最终结合百度文档各有采取完成地图选取经纬度. 第一步:引入百度地图,在当前需要地图的页面引入就行. const loadMapScript ...

  10. 百度地图JavaScript API经纬度查询-MAP

    百度地图JavaScript API经纬度查询-MAP-ABCDEFGHIJKMHNOPQRSTUVWXYZ: 搜索:<input type="text" size=&quo ...

最新文章

  1. debian10 简单搭建squid
  2. Python---哈夫曼树---Huffman Tree
  3. Java面试宝典系列之面试复习提纲
  4. 【Qt】简单Qt文本查找功能
  5. 深入理解InnoDB(4)—索引使用
  6. java中文处理_Java的中文乱码处理
  7. 2019专业赛事活动承办平台有哪些?—创成汇
  8. 数据库正确建立索引以及最左前缀原则
  9. 关于配置tomcat多版本同eclipse的配置问题
  10. c语言 称重系统设计,基于L—PSIII的电子称重系统的设计
  11. pic单片机c语言程序设计实例精粹 pdf,PIC单片机C语言程序设计.pdf
  12. SQL 分页查询显示
  13. PyTorch :transforms的二十二个方法
  14. Autoware安装使用教程
  15. 简单易上手的MMD-Ray渲基础教程
  16. 基于Java、MySQL的毕业设计,房屋租赁系统
  17. 二元函数最大最小值定理证明_Von Neumann最小最大值定理的归纳法证明
  18. SQL全称量词使用存在量词替代
  19. 对使用字符指针变量和字符数组的讨论
  20. html5怎么查看路由器状态,怎么看路由器是否正常_怎么看路由器是否联网?-192路由网...

热门文章

  1. 手机端和wap端页面的自适应技术方案
  2. matlab图像低通滤波,用于RGB图像的Matlab低通滤波器
  3. 从零开始自制实现C++ High-Performance WebServer 全流程记录
  4. linux下oracle安装教程
  5. 嵌入式linux 中文输入法,基于嵌入式Linux的汉字输入法
  6. java实战——照片编辑器
  7. msf后渗透之获取登入password、远程控制、调用摄像头
  8. Windows 上好用的7款下载工具
  9. 计算机平面设计的专业技能,计算机平面设计专业学生技能培养途径
  10. 如何写好工作周报?工作周报模板