基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例


Posted in Javascript onAugust 27, 2019

效果如图

基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例

使用了高德地图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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery function的正确书写方法
Aug 02 Javascript
网页广告中JS代码的信息监听示例
Apr 02 Javascript
使用Script元素发送JSONP请求的方法
Jun 12 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
Sep 12 Javascript
微信小程序-详解数据缓存
Nov 24 Javascript
javascript 跨域问题以及解决办法
Jul 17 Javascript
深入解读Node.js中的koa源码
Jun 17 Javascript
VUE.js实现动态设置输入框disabled属性
Oct 28 Javascript
prettier自动格式化去换行的实现代码
Aug 25 Javascript
解决VueCil代理本地proxytable无效报错404的问题
Nov 07 Javascript
Angular CLI发布路径的配置项浅析
Mar 29 Javascript
JavaScript前端面试组合函数
Jun 21 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
Aug 27 #Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 #Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 #jQuery
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
Aug 26 #Javascript
javascript实现抢购倒计时程序
Aug 26 #Javascript
VUE路由动态加载实例代码讲解
Aug 26 #Javascript
vue项目部署到nginx/tomcat服务器的实现
Aug 26 #Javascript
You might like
PHP7下协程的实现方法详解
2017/12/17 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
vue实现计步器功能
2019/11/01 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
实习自荐信
2013/10/13 职场文书
优秀求职信范文分享
2013/12/19 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
投标单位介绍信
2015/05/05 职场文书