百度地图API是一套为开发者免费提供的基于百度地图的应用程序接口,包括JavaScript、iOS、Andriod、静态地图、Web服务等多种版本,提供基本地图、位置搜索、周边搜索、...

  1. <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=(百度API key,可免费申请)"></script>
  2. <style type="text/css">
  3. body,html,#allmap {
  4. width: 100%;
  5. height: 100%;
  6. overflow: hidden;
  7. margin: 0;
  8. }
  9. #allmap {
  10. margin-top: 35px;
  11. }
  12. #golist {
  13. display: none;
  14. }
  15. @media ( max-device-width : 780px) {
  16. #golist {
  17. display: block !important;
  18. }
  19. }
  20. .tuijian_listbox1 {
  21. position: fixed;
  22. background: #fff;
  23. height: 35px;
  24. top: 0px;
  25. left: 0px;
  26. width: 100%;
  27. }
  28. ul.tuijian_list2 li {
  29. width: 24%;
  30. height: 35px;
  31. float: left;
  32. text-align: center;
  33. line-height: 35px;
  34. }
  35. </style>
  36. <body>
  37. <div class="tuijian_listbox1">
  38. <ul class="tuijian_list2">
  39. <li val_class="景点">景点</li>
  40. <li val_class="住宿" style="border-left: solid 1px #e4e4e4;">住宿</li>
  41. <li val_class="农家乐" style="border-left: solid 1px #e4e4e4;">农家乐</li>
  42. <li val_class="小吃" style="border-left: solid 1px #e4e4e4;">特色小吃</li>
  43. </ul>
  44. </div>
  45. <div class="map" id="allmap"></div>
  46. <script type="text/javascript">
  47. var map;
  48. var bounds;
  49. var circle;
  50. var local;
  51. var lng='118.792255';
  52. var lat='32.047475';//指定位置的经度纬度可以到百度定位拾取系统去拿 http://api.map.baidu.com/lbsapi/getpoint/index.html
  53. var search= '景区';
  54. var MyMarker;
  55. // 百度地图API功能
  56. $(function(){
  57. map = new BMap.Map("allmap");
  58. GetLocation();
  59. var mPoint = new BMap.Point(lng,lat);
  60. var MyIcon = new BMap.Icon("标记箭头图标路径", new BMap.Size(18,28));
  61. MyMarker = new BMap.Marker(mPoint,{icon:MyIcon});
  62. map.enableScrollWheelZoom();
  63. map.centerAndZoom(mPoint,15);
  64. map.addOverlay(MyMarker);
  65. map.addEventListener("click", function(e){
  66. map.removeOverlay(MyMarker);
  67. mPoint = new BMap.Point(e.point.lng,e.point.lat);
  68. MyMarker = new BMap.Marker(mPoint,{icon:MyIcon});
  69. map.addOverlay(MyMarker);
  70. Search(search,mPoint);
  71. });
  72. $('.tuijian_list2 li').each(function(index) {
  73. $(this).click(function(){
  74. $(this).parents('.tuijian_list2').find('.tuijian_in').removeClass('tuijian_in');
  75. $(this).addClass("tuijian_in");
  76. search = $(this).attr('val_class');
  77. Search(search,mPoint);
  78. });
  79. });
  80. Search(search,mPoint);
  81. });
  82. /**
  83. * 得到圆的内接正方形bounds
  84. * @param {Point} centerPoi 圆形范围的圆心
  85. * @param {Number} r 圆形范围的半径
  86. * @return 无返回值
  87. */
  88. function getSquareBounds(centerPoi,r){
  89. var a = Math.sqrt(2) * r; //正方形边长
  90. var mPoi = getMecator(centerPoi);
  91. var x0 = mPoi.x, y0 = mPoi.y;
  92. var x1 = x0 + a / 2 , y1 = y0 + a / 2;//东北点
  93. var x2 = x0 - a / 2 , y2 = y0 - a / 2;//西南点
  94. var ne = getPoi(new BMap.Pixel(x1, y1)), sw = getPoi(new BMap.Pixel(x2, y2));
  95. return new BMap.Bounds(sw, ne);
  96. };
  97. //根据球面坐标获得平面坐标。
  98. function getMecator(poi){
  99. return map.getMapType().getProjection().lngLatToPoint(poi);
  100. };
  101. //根据平面坐标获得球面坐标。
  102. function getPoi(mecator){
  103. return map.getMapType().getProjection().pointToLngLat(mecator);
  104. };
  105. function Search(search,mPoint){
  106. map.clearOverlays();
  107. circle = new BMap.Circle(mPoint,1000,{stroke:"white",strokeWeight: 1 ,fillOpacity: 0.3, strokeOpacity: 0.3});
  108. map.addOverlay(circle);
  109. local =  new BMap.LocalSearch(map, {renderOptions: {map: map, autoViewport: false}});
  110. bounds = getSquareBounds(circle.getCenter(),circle.getRadius());
  111. local.searchInBounds(search,bounds);
  112. map.addOverlay(MyMarker);
  113. /*
  114. map.centerAndZoom(mPoint, 16);
  115. var local = new BMap.LocalSearch(map, {
  116. renderOptions: {map: map, panel: "r-result"}
  117. });
  118. local.search(search);
  119. */
  120. };
  121. function GetLocation(){
  122. var geolocation = new BMap.Geolocation();
  123. geolocation.getCurrentPosition(function(r){
  124. if(this.getStatus() == BMAP_STATUS_SUCCESS){
  125. lng = r.point.lng;
  126. lat = r.point.lat;
  127. }else{
  128. alert('failed'+this.getStatus());
  129. }
  130. },{enableHighAccuracy: true}
  131. );
  132. };
  133. </script>
  134. </body>
  135. </html>

百度API获取位置范围内的周边服务的更多相关文章

  1. Python 读取照片的信息:拍摄时间、拍摄设备、经纬度等,以及根据经纬度通过百度地图API获取位置

    通过第三方库exifread读取照片信息.exifread官网:https://pypi.org/project/ExifRead/ 一.安装exifreadpip install exifread ...

  2. 【转】百度API获取城市名地名(附源码)

    在做一个软件时,用到了定位功能.网上有很多关于google 的GPS定位,但网上关于google定位都没有用, 搜索下原因:(这里建议大家在中国就尽量不使用系统自带的定位) 因为Google的服务器不 ...

  3. html5获取经纬度,百度api获取街区名,并使用JS保存进cookie

    引用js<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak= ...

  4. java工具类(一)之服务端java实现根据地址从百度API获取经纬度

    服务端java实现根据地址从百度API获取经纬度 代码: package com.pb.baiduapi; import java.io.BufferedReader; import java.io. ...

  5. 【前端】html5获取经纬度,百度api获取街区名,并使用JS保存进cookie

    引用js<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak= ...

  6. Vue 通过调用百度API获取地理位置-经度纬度省份城市

    一.首先在百度api注册获得ak密钥 二.新建js文件,我命名为loadBMap.js,里面创建script,代码如下: /** * 加载地图 * @param {Function} callback ...

  7. 百度API获取经纬度使用

    首先通过百度地图,注册账号,然后申请密钥 http://lbsyun.baidu.com/apiconsole/key 搜索某个关键字 http://api.map.baidu.com/place/v ...

  8. 爬虫——python——百度地图经纬度查询——经纬度查看地点地名——利用百度API获取地名经纬度——爬取所有的中国地址

    import requests address = '40.8587960,86.866991' url = 'http://api.map.baidu.com/geocoder?output=jso ...

  9. 通过百度api 获取当前城市3种方法

    方法一:function showLocation(data) { console.log(data.content); //alert(data.content.address_detail.cit ...

随机推荐

  1. eureka学习(二)

    eureka服务端创建好后,现在我们让eureka客户端(也就是服务提供者)注册到eureka上去. 首先加入依赖包: <!--将微服务provider注册到eureka--> <d ...

  2. 2019牛客多校第五场H - subsequence 2 拓扑

    H - subsequence 2 题意 要你使用前\(m\)个小写字母构造一个长度为\(n\)的字符串 有\(m*(m-1)/2\)个限制条件: \(c_{1} .c_{2}. len\):表示除去 ...

  3. Service系统服务(六):rsync基本用法、rsync+SSH同步、配置rsync服务端、访问rsync共享资源、使用inotifywait工具、配置Web镜像同步、配置并验证Split分离解析

    一.rsync基本用法 目标: 本例要求掌握远程同步的基本操作,使用rsync命令完成下列任务: 1> 将目录 /boot 同步到目录 /todir 下   2> 将目录 /boot 下的 ...

  4. Qt获取文件路径、文件夹路径

    1.首先是选择文件 QString file_path = QFileDialog::getOpenFileName(this, "请选择文件路径...", "默认路径( ...

  5. 修改 DbVisualizer 自动完成快捷键

    1.找到 DbVisualizer 安装目录 lib目录 下的 dbvis.jar 包. 2.使用 WinRaR 打开dbvis.jar包,编辑 dbvis-actions.xml 文件(解压或直接修 ...

  6. (61)C# 可枚举类型和迭代器

    一.可枚举类型 枚举器-Enumerator  是一个只读且只能在值序列向前移动的游标 枚举器需要实现下列接口之一 System.Collections.IEnumerator System.Coll ...

  7. 简单了解Redis

    redis是什么 redis是一种支持key-value等多种数据结构的存储系统,可用于缓存,事件发布,消息队列等场景,支持多种数据类型 string.hash.list.set.zset.而且基于内 ...

  8. [JXOI2017]数列

    题目 一个不太一样的做法 当\(A_{i-1}=x\),称\(A_1\)到\(A_{i-2}\)中大于等于\(A_{i-1}\)的最小值\(R\)为上界,\(A_1\)到\(A_{i-2}\)中小于等 ...

  9. HDU 4652 Dice (概率DP)

    版权声明:欢迎关注我的博客,本文为博主[炒饭君]原创文章,未经博主同意不得转载 https://blog.csdn.net/a1061747415/article/details/36685493 D ...

  10. 实用的Python(2)利用Python制作gif动图

    一.简介 moviepy是一个专门用于视频剪辑制作的模块,可以自动化完成很多繁琐的视频剪辑处理工作,除了处理视频数据之外,moviepy中还内置了可以制作gif动图的功能,通过使用moviepy.ed ...