1.前言 
将地图嵌入到项目中的需求很多,好吧,我一般都是用的百度地图。那么今天就主要写一个完整的demo。展示一个列表,点击列表的任一内容,在地图上定位到该位置,并有动画效果。来来来,直接上demo 
2.详细流程 
1.引入文件

  1. <script type="text/javascript" src="http://api.map.baidu.com/api?v1.5&ak=AFb5d4d8279a19b2fc3a16d063f26772"></script>
    <script typet="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>

2.本demo用到两张图片 第一张是头像 sxs.jpg 第二张地图中定位图片 positionBg.png;图片你们自行替换,但是大小不一样,图片不一样,样式要自己微调哦。

3.css样式

  1.      *{margin:; padding:;}
  2. .cleanfloat:after{display:block;clear:both;content:"";visibility:hidden;height:;}
  3. #allmap{width:100%; height:800px}
  4. .list{position:absolute; left:50px; top:50px;background:#fff; width:240px; border:1px solid #d1d1d1; }
  5. .list p{width:100%; height:35px; line-height:35px; background-color:#4985d7; color:#fff; font-weight:bold; text-align:center;font-size:14px;}
  6. ul li{list-style:none;border-bottom:1px dashed #d1d1d1; font:500 12px/30px '微软雅黑'; margin:8px; color:#666; cursor:pointer;}
  7. ul li:last-child{border-bottom:none;}
  8. ul li img{width:26px; height:26px; border-radius:13px; float:left; margin-right:8px;}
  9. ul li a{float:right; color:red;}

4.html内容

  1.   <div id="allmap"></div>
  2. <div class="list">
  3. <p>位置分布</p>
  4. <ul class="cleanfloat"></ul>
  5. </div>

5.js代码

  1. //初始化地图并定位到当前位置
  2. var map = new BMap.Map("allmap");
  3. var geolocation = new BMap.Geolocation();
  4.  
  5. //游览器会弹出询问是否获取当前位置 ,点击“允许”
  6. geolocation.getCurrentPosition(function (r) {
  7. if (this.getStatus() == BMAP_STATUS_SUCCESS) {
  8. map.centerAndZoom(new BMap.Point(r.point.lng, r.point.lat), 15);
  9. }
  10. }, { enableHighAccuracy: true })
  11.  
  12. $(function () {
  13. infoFun();
  14. })
  15.  
  16. var sxs_array = [{ where: '我在北京', id:1, lng: '116.406778', lat: '39.915743', val: '我在天安门' }, { where: '我在上海',id:2, lng: '121.453503', lat: '31.159839', val: '我在上海南站' },
  17. { where: '我在深圳',id:3, lng: '114.004074', lat: '22.605086', val: '我在深圳野生动物园' }, {where:'我在这里',id:4},{where:'你在哪里',id:5}]
  18.  
  19. function infoFun() {
  20. for (j in sxs_array) {
  21. if (sxs_array[j].where) {
  22. $("ul").append("<li data-id='"+sxs_array[j].id+"' data-lng='" + sxs_array[j].lng + "' data-lat='" + sxs_array[j].lat + "'data-val='" + sxs_array[j].val + "'><img src='../images/sxs.jpg'><span>" + sxs_array[j].where + "</span><a>点我</a></li>");
  23. var content = '<div id="'+sxs_array[j].id+'" ><img src="../images/positionBg.png" ><img style="position:absolute;left:7px; top:6px; border-radius:30px;" src="../images/sxs.jpg"></div>';
  24. if (sxs_array[j].lng) {
  25. var point = new BMap.Point(sxs_array[j].lng, sxs_array[j].lat);
  26. var info = new BMap.Label(content, { offset: new BMap.Size(-10, -10), position: point });
  27. info.setStyle({
  28. backgroundColor: "none",
  29. border: "0"
  30. });
  31. map.addOverlay(info);
  32. }
  33. }
  34. }
  35. }
  36.  
  37. //点击定位到列表所在位置并放大效果
  38. $(document).on("click", "ul li", function () {
  39. var lng = $(this).attr('data-lng');
  40. var lat = $(this).attr('data-lat');
  41. var id = $(this).attr('data-id');
  42. var val = $(this).attr('data-val');
  43. if (lng == 'undefined' || lat == 'undefined') alert($(this).find("span").eq(0).text());
  44. else {
  45. var point = new BMap.Point(lng, lat);
  46. map.panTo(new BMap.Point(lng, lat));//定位到所点击的位置
  47. //制作动画效果 图片逐渐变大,并返回原大小;
  48. $("#allmap label.BMapLabel div#" + id + " img").eq(0).animate({ width: '70px', height: '100px' }, 500);
  49. $("#allmap label.BMapLabel div#" + id + " img").eq(1).animate({ width: '60px', height: '60px' }, 500);
  50. $("#allmap label.BMapLabel div#" + id + " img").eq(0).animate({ width: '50px', height: '75px' }, 500);
  51. $("#allmap label.BMapLabel div#" + id + " img").eq(1).animate({ width: '40px', height: '40px' }, 500);
  52. //alert(val);弹出你的位置
  53. }
  54.  
  55. })

6.展示效果

3.总结

我靠,竟然花了快3个小时,从有写这个demo的想法,并开始实施,开始找图片,画页面,调试,我承认,我比较追求完美(我呸,看不出来哪里完美)至少样式也是要好好调的好吧,要不然,展现太不好看了,显得我很菜。但是我所写的每一个demo都是自己一个单词一个单词敲的,并不断的调试,虽然很简单的demo,但是我也认真对待。 
如果有什么写的不好的地方,还请多指教,我必定认真改。

完整版百度地图点击列表定位到对应位置并有交互动画效果demo的更多相关文章

  1. Android百度地图2.0运行定位到当前位置时“服务没有启动”

    现象:运行mapView.requestLocation(),返回值为1即“服务没有启动”. 解决方案:看一下主配置文件中服务是否配置了,具体如下: <service android:name= ...

  2. 如何利用【百度地图API】进行定位?非GPS定位

    原文:如何利用[百度地图API]进行定位?非GPS定位 如果你可以上网,如果你有火狐浏览器,那么恭喜你.你能很容易使用以下代码进行定位! ------------------------------- ...

  3. HTML5调用百度地图API进行地理定位实例

    自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发.虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情.今天为大家带来的是使用HTML5调用百度地图AP ...

  4. 利用百度地图Android sdk高仿微信发送位置功能

    接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 (假设须要完整demo.请评论留下邮箱) (眼下源代码已经不发送,假设须要源代码.加qq31 ...

  5. javascript百度地图使用(根据地名定位、根据经纬度定位)

    需要购买阿里云产品和服务的,点击此链接领取优惠券红包,优惠购买哦,领取后一个月内有效: https://promotion.aliyun.com/ntms/yunparter/invite.html? ...

  6. 百度地图API的IP定位城市和浏览器定位(转)

    百度地图API提供了Geolocation 和 LocalCity两个服务类. 这俩API可以分别供用户在JavaScript中进行定位和城市确认. 1 本质上,Geolocation这个类是使用了支 ...

  7. 百度地图js根据经纬度定位和拖动定位点

    <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...

  8. 使用百度地图开发一个导航定位demo-android学习之旅(77)

    首先介绍如何导入百度地图 步骤(其实官方文档写的很清楚了)http://developer.baidu.com/map/index.php?title=androidsdk/guide/introdu ...

  9. 百度地图点击地图显示地址详情的默认方法怎么关闭,去掉百度地图api图标信息

    去掉百度地图api图标信息 调用百度地图API时,如果想去掉百度的logo,只需要在css里设置: <style> .anchorBL{display:none} </style&g ...

随机推荐

  1. JAVA WEBSERVICE服务端&客户端的配置及调用(基于JDK)

    前言:我之前是从事C#开发的,因公司项目目前转战JAVA&ANDROID开发,由于对JAVA的各种不了解,遇到的也是重重困难.目前在做WEBSERVICE提供数据支持,看了网上相关大片的资料也 ...

  2. Linux回炉复习系列文章大纲

    本人最近在回炉Linux的内容,也做了很多整理,顺便也想将整理的内容分享出来. 由于该系列文章的内容主要是复习整理而来,其中绝大多数命令都是翻译和整理man或info文档总结的,另外很多地方也没有给出 ...

  3. 推荐几个Dynamic Crm的大神博客

    ghostbear的博客:http://blog.csdn.net/ghostbear/article/category/1072859 ghostbear大神的博客是新手学习Dynamics Crm ...

  4. jenkins跑maven项目的时候报错,看评论

    Started by user admin Building in workspace /var/jenkins_home/workspace/helloworld [WS-CLEANUP] Dele ...

  5. vmware克隆虚拟机后网卡名称及网络地址xiuf

    使用vmware克隆虚拟机后,若原主机网卡名称为eth0,那么克隆后的主机使用ifconfig查看仅能看到一个名称为eth1的网卡 并且在/etc/sysconfig/network-scripts/ ...

  6. DataTable多线程操作报错情况

    最近在写一个http接口时用了DataTable这个强大的利器,接口用浏览器跑起来没任何问题.当时也没考虑并发问题,后来用一个压力测试工具做大并发测试,1000+/s次速度测试.发现程序报错了.程序报 ...

  7. 实现AOP功能的封装与配置的小框架

    内容 java基础巩固笔记 - 实现AOP功能的封装与配置的小框架 设计(目录): XXX = java.util.ArrayList中 代码 Advice接口 MyAdvice类 BeanFacto ...

  8. 【Android Developers Training】 25. 保存文件

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  9. python webserver, based on SimpleHTTPServer

    #-*- coding:utf-8 -*- #author: lichmama #email: nextgodhand@163.com #filename: httpd.py import io im ...

  10. voa 2015.4.29

    Nepal has declared three days of mourning for the victims of Saturday's 7.8 magnitude earthquake tha ...