基于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 相关文章推荐
通用JS事件写法实现代码
Jan 07 Javascript
javascript学习笔记(二)数组和对象部分
Sep 30 Javascript
jquery中ajax跨域方法实例分析
Dec 18 Javascript
js实现精确到秒的倒计时效果
May 29 Javascript
JavaScript实现图像模糊化的方法实例
Jan 15 Javascript
Vue组件Draggable实现拖拽功能
Dec 01 Javascript
创建Vue项目以及引入Iview的方法示例
Dec 03 Javascript
layui table单元格事件修改值的方法
Sep 24 Javascript
layui禁用侧边导航栏点击事件的解决方法
Sep 25 Javascript
vue中@change兼容问题详解
Oct 25 Javascript
vue 开发之路由配置方法详解
Dec 02 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 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
php print EOF实现方法
2009/05/21 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
JavaScript手机振动API
2016/06/11 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
python类和函数中使用静态变量的方法
2015/05/09 Python
理解Python中的With语句
2016/03/18 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
企业车辆管理制度
2014/01/24 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python