• 效果如图
  • 使用了高德地图API:https://lbs.amap.com/api/javascript-api/example/marker/massmarks
  • js代码如下:
  • function MapOperate() {
    
    }
    
    MapOperate.prototype.listensubmit = function () {
    var self = this;
    var submitBut = $(".submit-btn"); var time_id = $("#time-id");
    var time_now = new Date(time_id.html()); submitBut.click(function () {
    var btn = $(this);
    var data_id = btn.attr('data-id');
    var datas = self.format(time_now, "yyyy-MM-dd HH:mm");
    switch (data_id) {
    case data_id = "a":
    console.log("a");
    time_now = new Date(time_id.html());
    var t = time_now.getTime();
    t -= 1900000;
    datas = new Date(t);
    datas = self.format(datas, "yyyy-MM-dd HH:mm");
    break;
    case data_id = "b":
    console.log("b");
    time_now = new Date(time_id.html());
    var t = time_now.getTime();
    t -= 120000;
    datas = new Date(t);
    datas = self.format(datas, "yyyy-MM-dd HH:mm");
    break;
    case data_id = "c":
    console.log("c");
    datas = "2019-05-05 12:01";
    break;
    case data_id = "d":
    console.log("d");
    time_now = new Date(time_id.html());
    var t = time_now.getTime();
    t += 120000;
    datas = new Date(t);
    datas = self.format(datas, "yyyy-MM-dd HH:mm");
    break;
    case data_id = "e":
    console.log("e");
    time_now = new Date(time_id.html());
    var t = time_now.getTime();
    t += 1900000;
    datas = new Date(t);
    datas = self.format(datas, "yyyy-MM-dd HH:mm");
    break; }
    console.log(datas);
    var div = document.getElementById("time-id");
    div.innerText = datas; $.ajax({
    type: 'post',
    async: false,
    url: '/index',
    data: {
    "datas": datas,
    },
    success: function (result) {
    //stringify()用于从一个对象解析出字符串
    // jsonData = JSON.stringify(result['result']);
    // console.log(jsonData);
    //JSON.parse用于从一个字符串中解析出json对象
    var map = new AMap.Map('container', {
    zoom:15,
    center: [119.03797, 33.548503]
    });
    var jsondata = JSON.stringify(result['result']);
    var dt = JSON.parse(jsondata);
    if (dt.length > 0) {
    var style = [{
    url: 'https://a.amap.com/jsapi_demos/static/images/mass0.png',
    anchor: new AMap.Pixel(6, 6),
    size: new AMap.Size(8, 8)
    }, {
    url: 'https://a.amap.com/jsapi_demos/static/images/mass0.png',
    anchor: new AMap.Pixel(3, 3),
    size: new AMap.Size(8, 8)
    }, {
    url: 'https://a.amap.com/jsapi_demos/static/images/mass0.png',
    anchor: new AMap.Pixel(4, 4),
    size: new AMap.Size(8, 8)
    }
    ];
    var massMarks = [];
    for (var i = 0; i < dt.length; i++) {
    var point = {'lnglat': [dt[i][0], dt[i][1]], 'name': "1", 'id': i};
    massMarks.push(point);
    }
    var mass = new AMap.MassMarks(massMarks, {
    opacity: 0.8,
    zIndex: 111,
    cursor: 'pointer',
    style: style
    }); var marker = new AMap.Marker({content: ' ', map: map});
    mass.on('mouseover', function (e) {
    marker.setPosition(e.data.lnglat);
    marker.setLabel({content: e.data.name})
    });
    mass.setMap(map); }
    }
    }); });
    }; MapOperate.prototype.run = function () {
    var self = this;
    self.listensubmit();
    }; MapOperate.prototype.tool = function (ResultList) {
    // 创建地图实例
    var map = new AMap.Map("container", {
    zoom: 13,
    center: [119.038, 33.548],
    resizeEnable: true,
    mapStyle: 'amap://styles/whitesmoke'
    });
    var positions = ResultList;
    var anchor = [
    'bottom-left',
    'bottom-center',
    'bottom-right',
    'middle-left',
    'center',
    'middle-right',
    'top-left',
    'top-center',
    'top-right'
    ];
    var pos_icon = [];
    var pos_marker = [];
    var icon = [];
    var marker = [];
    for (var i = 0; i < 100; i++) {
    // 创建一个 Icon
    pos_icon[i] = new AMap.Icon({
    // 图标尺寸
    size: new AMap.Size(12, 12),
    // 图标的取图地址
    image: '//a.amap.com/jsapi_demos/static/demo-center/marker/marker.png',
    // 图标所用图片大小
    imageSize: new AMap.Size(12, 12),
    }); // 将 Icon 传入 marker
    pos_marker[i] = new AMap.Marker({
    position: positions[i],
    icon: pos_icon[i],
    anchor: 'center', //设置锚点
    offset: new AMap.Pixel(0, 0) //设置偏移量
    });
    map.add(pos_marker[i]); }
    }; $(function () {
    var map = new MapOperate();
    map.run();
    }); MapOperate.prototype.format = function (now, mask) { var d = now;
    var zeroize = function (value, length) {
    if (!length) length = 2;
    value = String(value);
    for (var i = 0, zeros = ''; i < (length - value.length); i++) {
    zeros += '0';
    }
    return zeros + value;
    }; return mask.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])\1?|[lLZ])\b/g, function ($0) {
    switch ($0) {
    case 'd':
    return d.getDate();
    case 'dd':
    return zeroize(d.getDate());
    case 'ddd':
    return ['Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat'][d.getDay()];
    case 'dddd':
    return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][d.getDay()];
    case 'M':
    return d.getMonth() + 1;
    case 'MM':
    return zeroize(d.getMonth() + 1);
    case 'MMM':
    return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][d.getMonth()];
    case 'MMMM':
    return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][d.getMonth()];
    case 'yy':
    return String(d.getFullYear()).substr(2);
    case 'yyyy':
    return d.getFullYear();
    case 'h':
    return d.getHours() % 12 || 12;
    case 'hh':
    return zeroize(d.getHours() % 12 || 12);
    case 'H':
    return d.getHours();
    case 'HH':
    return zeroize(d.getHours());
    case 'm':
    return d.getMinutes();
    case 'mm':
    return zeroize(d.getMinutes());
    case 's':
    return d.getSeconds();
    case 'ss':
    return zeroize(d.getSeconds());
    case 'l':
    return zeroize(d.getMilliseconds(), 3);
    case 'L':
    var m = d.getMilliseconds();
    if (m > 99) m = Math.round(m / 10);
    return zeroize(m);
    case 'tt':
    return d.getHours() < 12 ? 'am' : 'pm';
    case 'TT':
    return d.getHours() < 12 ? 'AM' : 'PM';
    case 'Z':
    return d.toUTCString().match(/[A-Z]+$/);
    // Return quoted strings with the surrounding quotes removed
    default:
    return $0.substr(1, $0.length - 2);
    }
    }); }

      

  • 项目地址:https://github.com/longbigbeard/Hellobike_webShow

抓取某高校附近共享单车位置,并使用web方式展示过去几天的位置变化的更多相关文章

  1. 利用Crowbar抓取网页异步加载的内容 [Python俱乐部]

    利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 在做 Web 信息提取.数据挖掘的过程中,一个关键步骤就是网页源代码的获取.但是出于各种原因 ...

  2. python requests 模拟登陆网站,抓取数据

    抓取页面数据的时候,有时候我们需要登陆才可以获取页面资源,那么我们需要登陆以后才可以跳转到对应的资源页面,那么我们需要通过模拟登陆,登陆成功以后再次去抓取对应的数据. 首先我们需要通过手动方式来登陆一 ...

  3. 解决在静态页面上使用动态参数,造成spider多次和重复抓取的问题

    我们在使用百度统计中的SEO建议检查网站时,总是发现“静态页参数”一项被扣了18分,扣分原因是“在静态页面上使用动态参数,会造成spider多次和重复抓取”.一般来说静态页面上使用少量的动态参数的话并 ...

  4. Scrapy 使用CrawlSpider整站抓取文章内容实现

    刚接触Scrapy框架,不是很熟悉,之前用webdriver+selenium实现过头条的抓取,但是感觉对于整站抓取,之前的这种用无GUI的浏览器方式,效率不够高,所以尝试用CrawlSpider来实 ...

  5. Android端抓取日志

    一.背景: ADT-Bundlee for Windows 是由GoogleAndroid官方提供的集成式IDE,已经包含了Eclipse,你无需再去下载Eclipse,并且里面已集成了插件,它解决大 ...

  6. 抓取摩拜单车API数据,并做可视化分析

    抓取摩拜单车API数据,并做可视化分析 纵聊天下 百家号|04-19 15:16 关注 警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的. 摩拜是最早进入成都的共享单车,每天我从地铁站下来的时 ...

  7. Scrapy实战篇(八)之爬取教育部高校名单抓取和分析

    本节我们以网址https://daxue.eol.cn/mingdan.shtml为初始链接,爬取教育部公布的正规高校名单. 思路: 1.首先以上面的地址开始链接,抓取到下面省份对应的链接. 2.在解 ...

  8. 爬取ofo共享单车信息

    前段时间看到很多微信公众号在转发一篇爬取mobike单车的信息,也不知道什么原因,在网上搜索了下很少有人在爬取ofo共享单车的数据,所以决定看看可以爬取ofo共享单车的那些数据. 抓取数据开始的时候, ...

  9. 【Java EE 学习 48】【Hibernate学习第五天】【抓取策略】【二级缓存】【HQL】

    一.抓取策略. 1.hibernate中提供了三种抓取策略. (1)连接抓取(Join Fetch):这种抓取方式是默认的抓取方式.使用这种抓取方式hibernate会在select中内连接的方式获取 ...

随机推荐

  1. jquery.lazyload (JS懒加载框架使用详解)

    /** 本地加载方式加载JS*/        NSString *path = [[NSBundle mainBundle] pathForResource:@"jquery.js&quo ...

  2. mailstats - 显示邮件状态信息

    总览 mailstats [-o] [-C cffile] [-f stfile] 描述 mailstats工具显示当前的邮件状态信息. 首先,先显示统计启动时所记录的时间,当然是以ctime(3)所 ...

  3. PAT Advanced 1006 Sign In and Sign Out (25 分)

    At the beginning of every day, the first person who signs in the computer room will unlock the door, ...

  4. Java Annotation 刷课笔记(二)

    1.反射机制性能问题(安全检查) 1.1setAccessible 启用和禁用访问安全检查的开关,值为true,则指示反射的对象在使用时应该取消Java语言访问检查,值为false,则指示反射的对象应 ...

  5. Beta冲刺-(1/3)

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/ 这个作业要求在哪里 https://edu.cnbl ...

  6. c++ 创建线程用CreateThread后,线程直接就开始执行了吗

    //CreateThread函数的参数原型如下 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD SIZE_T ...

  7. Flask【第2篇】:Flask基础

    Flask基础 知识点回顾 1.flask依赖wsgi,实现wsgi的模块:wsgiref,werkzeug,uwsgi 2.实例化Flask对象,里面是有参数的 app = Flask(__name ...

  8. java: 列出本机java环境

    java: 列出本机java环境 System.getProperties().list(System.out);

  9. H5是什么?

    找工作面试官都会问你H5吗? 然后做一个前端的我一脸蒙蔽,到底什么是H5? 一般来说刚开始H5 是 Html5标准的简称,但是仅仅是html5标签,几乎什么也做不出来了,最多就是个静态网页,还得用到j ...

  10. 【leetcode】1106. Parsing A Boolean Expression

    题目如下: Return the result of evaluating a given boolean expression, represented as a string. An expres ...