物流数据展示源代码展示

地图

var width = 1000, height = 800; // 定义SVG宽高

var color = d3.scaleOrdinal(d3.schemeCategory10)

//添加画布

var svg = d3.select("body div.fxmap")

.append("svg")

.attr("width", width)

.attr("height", height)

.style("background", "#000")

.style('opacity', '.7');

gmap = svg.append("g").attr("id", "map").attr("stroke", "white").attr("stroke-width", 1);

mline = svg.append("g").attr("id", "moveto").attr("stroke", "#FFF").attr("stroke-width", 1.5).attr("fill", "#FFF");

button = svg.append("g").attr("id", "button").attr("stroke", "white").attr("stroke-width", 1).attr("fill", "white");

var projection = d3.geoEquirectangular()

.center([465, 395]) // 指定投影中心,注意[]中的是经纬度

.scale(height)

.translate([width / 2, height / 2]);

//地图路径设置

var path = d3.geoPath().projection(projection);

//添加标记点

marker = svg.append("defs")

.append("marker")

.append("marker")

.attr("id", "pointer")

.attr("viewBox", "0 0 12 12") // 可见范围

.attr("markerWidth", "12") // 标记宽度

.attr("markerHeight", "12") // 标记高度

.attr("orient", "auto") //

.attr("markerUnits", "strokeWidth") // 随连接线宽度进行缩放

.attr("refX", "6") // 连接点坐标

.attr("refY", "6")

// 绘制标记中心圆

marker.append("circle")

.attr("cx", "6")

.attr("cy", "6")

.attr("r", "3")

.attr("fill", "white");

// 绘制标记外圆,之后在timer()中添加闪烁效果

marker.append("circle")

.attr("id", "markerC")

.attr("cx", "6")

.attr("cy", "6")

.attr("r", "5")

.attr("fill-opacity", "0")

.attr("stroke-width", "1")

.attr("stroke", "white");

// 记录长沙坐标

var changsha = projection([112.59, 28.12]);

// 读取地图数据,并绘制中国地图

mapdata = [];

d3.json('/Public/offline/bounds/100000.geojson').then(function (data) {

console.log(data);

// 读取地图数据

mapdata = data.features;

console.log(mapdata);

// 绘制地图

gmap.selectAll("path")

.data(mapdata)

.enter()

.append("path")

.attr("d", path)

.attr('fill', (d, i) => color(i));

// 标记长沙 起始点

gmap.append("circle").attr("id", "changsha")

.attr("cx", changsha[0])

.attr("cy", changsha[1])

.attr("r", "6")

.attr("fill", "yellow")

gmap.append("circle").attr("id", "changshaC")

.attr("cx", changsha[0])

.attr("cy", changsha[1])

.attr("r", "10")

.attr("stroke-width", "2")

.attr("fill-opacity", "0");

// 创建对象,保存每个城市的物流记录数量

var citylist = new Object();

// 创建方法,输入data坐标,绘制发射线

var moveto = function (city, data) {

var pf = { x: projection([112.59, 28.12])[0], y: projection([112.59, 28.12])[1] };

var pt = { x: projection(data)[0], y: projection(data)[1] };

var distance = Math.sqrt((pt.x - pf.x) ** 2 + (pt.y - pf.y) ** 2);

if (city in citylist) {

citylist[city]++;

} else {

mline.append("line")

.attr("x1", pf.x)

.attr("y1", pf.y)

.attr("x2", pt.x)

.attr("y2", pt.y)

.attr('fill', 'red')

.attr("marker-end", "url(#pointer)")

.style("stroke-dasharray", " " + distance + ", " + distance + " ")

.transition()

.duration(distance * 30)

.styleTween("stroke-dashoffset", function () {

return d3.interpolateNumber(distance, 0);

});

citylist[city] = 1;

};

mline.append("circle")

.attr("cx", pf.x)

.attr("cy", pf.y)

.attr("r", 3)

.attr('fill', 'red')

.transition()

.duration(distance * 30)

.attr("transform", "translate(" + (pt.x - pf.x) + "," + (pt.y - pf.y) + ")")

.remove();

};

var scale = d3.scaleLinear();

scale.domain([0, 1000, 2000])

.range([0, 1, 0]);

var start = Date.now();

d3.timer(function () {

var s1 = scale((Date.now() - start) % 2000);

// console.log(s1);

gmap.select("circle#changshaC")

.attr("stroke-opacity", s1);

marker.select("circle#markerC")

.attr("stroke-opacity", s1);

});

var cityordinate = {

'哈尔滨': [126.5416150000, 45.8088260000],

'石家庄': [116.46, 39.92],

'北京': [116.39564503787867, 39.92998577808024],

'上海': [121.480539, 31.235929],

'广州': [113.271431, 23.135336],

'重庆': [106.558434, 29.568996],

'青岛': [120.38442818368189, 36.10521490127382],

'福州': [119.30347, 26.080429],

'兰州': [103.840521, 36.067235],

'贵阳': [106.636577, 26.653325],

'成都': [104.081534, 30.655822],

'西安': [108.946466, 34.347269],

'长春': [125.3306020000, 43.8219540000],

'台湾': [120.961454, 23.80406],

'呼和浩特': [111.7555090000, 40.8484230000],

'澳门': [113.5494640000, 22.1929190000],

'武汉': [114.3115820000, 30.5984670000],

'昆明': [102.71460113878045, 25.049153100453159],

'乌鲁木齐': [87.56498774111579, 43.84038034721766],

'益阳': [112.36654664522563, 28.58808777988717],

'南京': [118.77807440802562, 32.05723550180587],

'武昌': [114.35362228468498, 30.56486029278519],

};

// 随机获得目标城市

var cityname = [], total = 0;

for (var key in cityordinate) {

cityname[total++] = key;

};

//定时器开始生产点

setInterval(() => {

var _index = ~~(Math.random() * total);

moveto(cityname[_index], cityordinate[cityname[_index]]);

}, 1000);

});

android 地图显示物流,离线地图相关推荐

  1. android如何设置离线地图优先,高德地图离线导航优先怎么设置-高德地图离线导航优先的设置方法 - 河东软件园...

    高德地图是我们出门驾驶必备的软件,它可以智能导航,根据我们目前行驶的方向来为我们定制最合适的路线.但是这款软件在导航的时候会使用很多的手机流量,经常使用实在是浪费流量.最好的方法就是使用离线导航功能了 ...

  2. android定制离线地图,在Android上创建离线地图

    这是一个绝对最小的示例项目,我之前做了Osmdroid. package osmdemo.demo; import org.osmdroid.tileprovider.tilesource.TileS ...

  3. Android百度地图(四)如何引入离线地图包

    Android百度地图(四)如何引入离线地图包 本文代码在http://blog.csdn.net/xyzz609/article/details/51955363的基础上进一步修改,有兴趣的同学可以 ...

  4. Arcgis For Android之离线地图实现的几种方式

    一. 在Arcgis For Android API下,既能加载Arc Server的切片文件,也能加载10.1的Title Package文件(*.tpk). 一般来说,我们都是将Server的切片 ...

  5. Android高德地图基本开发/在线高德离线地图开发/断网使用离线地图(Assets文件夹的使用)

    文章目录 高德SDK基本使用 前置操作 需求一:显示地图,并以当前所在位置为中心 权限申请 布局功能代码 活动功能代码 效果展示 需求二:离线地图(直接添加到应用端项目内) 需求三 :点击数据后以数据 ...

  6. android百度离线地图,Android SDK

    1.简介 离线地图功能位于地图和覆盖物组件模块. 使用离线地图,可满足在无网络环境下查看地图信息的需求,此外,在有离线地图的情况下,SDK会优先加载离线地图使用,减少用户流量方面的开销,为用户提供更流 ...

  7. Android课程设计:基于离线地图服务器的Android地图应用

    Android开发课程设计:基于离线地图服务器的Android地图应用 此项目的灵感来源于伯克利cs61b的Project3: cs61b的官网地址:Project 3: Bear Maps 我的实验 ...

  8. 如何在Android中使用离线的谷歌地图Google maps

    Google maps真的太好用了!如果能在Android中使用离线的谷歌地图将是一件很爽的事情! 按照如下步骤做吧! 以下操作在windows下进行! 安裝 Java 執行環境 (JRE 或 JDK ...

  9. Mapbox Android学习笔记(8)离线地图

    Offline 通常,您可能会发现您的用户群大部分时间都不在网格上.Maps SDK允许您下载和存储预先选择的区域,以便在设备脱机时使用.下载地图的结果是使用下载区域内的style.tile和其他资源 ...

最新文章

  1. 多功能监护系统开发与设计
  2. mysql eval,mysql中是否有类似于eval的写法的,答案在这里
  3. GDCM:gdcm::PersonName的测试程序
  4. Walle 瓦力 web部署系统
  5. 见识决定眼界,关注这些让你变得博学且有趣
  6. 简明 Python 教程学习笔记_2_函数
  7. Oracle EBS 入门
  8. python判断输入的数字是完全平方还是三次方
  9. 浅析:浅拷贝 及 深拷贝的传统写法
  10. SQL Cookbook(读书笔记)No.2
  11. android切图双数,浅谈网页设计切图规范
  12. VRay渲染器之家装户型渲染实战记录
  13. 4.4 输入法图片 android,支持安卓4.4!搜狗输入法5.1新版发布
  14. 程序员量子力学-海森堡式BUG
  15. Python/python/xpath爬虫--妙招网
  16. 葫芦兄弟java7723_颠峰对决之喜羊羊大战葫芦娃
  17. 支付宝小程序生态服务商奖励发布,单个商家最高奖励5000元
  18. NAPI之(一)——原理和实现
  19. 描述性统计部分(一)----统计量
  20. 使用强大的Chrome浏览器自带截图功能

热门文章

  1. 服务计算 HW3 CLI 命令行实用程序开发基础
  2. 记一次线上redis报错(JedisExhaustedPoolException: Could not get a resource since the pool is exhausted)
  3. HTML中使用富文本工具
  4. 如何领取支付宝收款码
  5. 应用宝苹果版_放置江湖应用宝版本下载-放置江湖腾讯版下载v2.6.0.1 安卓微信登录版...
  6. 告别teamviewer, ubuntu用户可以使用免费的AnyDesk
  7. mysql数据库,oracle数据库中对字段的拼接方法
  8. 【Quartz】定时任务小练习
  9. linux路由器静态无法转发,静态路由之路由器两种转发模式
  10. 钛资本研究院:智能经济,数字经济学视角的范式变革