android 地图显示物流,离线地图
物流数据展示源代码展示
地图
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 地图显示物流,离线地图相关推荐
- android如何设置离线地图优先,高德地图离线导航优先怎么设置-高德地图离线导航优先的设置方法 - 河东软件园...
高德地图是我们出门驾驶必备的软件,它可以智能导航,根据我们目前行驶的方向来为我们定制最合适的路线.但是这款软件在导航的时候会使用很多的手机流量,经常使用实在是浪费流量.最好的方法就是使用离线导航功能了 ...
- android定制离线地图,在Android上创建离线地图
这是一个绝对最小的示例项目,我之前做了Osmdroid. package osmdemo.demo; import org.osmdroid.tileprovider.tilesource.TileS ...
- Android百度地图(四)如何引入离线地图包
Android百度地图(四)如何引入离线地图包 本文代码在http://blog.csdn.net/xyzz609/article/details/51955363的基础上进一步修改,有兴趣的同学可以 ...
- Arcgis For Android之离线地图实现的几种方式
一. 在Arcgis For Android API下,既能加载Arc Server的切片文件,也能加载10.1的Title Package文件(*.tpk). 一般来说,我们都是将Server的切片 ...
- Android高德地图基本开发/在线高德离线地图开发/断网使用离线地图(Assets文件夹的使用)
文章目录 高德SDK基本使用 前置操作 需求一:显示地图,并以当前所在位置为中心 权限申请 布局功能代码 活动功能代码 效果展示 需求二:离线地图(直接添加到应用端项目内) 需求三 :点击数据后以数据 ...
- android百度离线地图,Android SDK
1.简介 离线地图功能位于地图和覆盖物组件模块. 使用离线地图,可满足在无网络环境下查看地图信息的需求,此外,在有离线地图的情况下,SDK会优先加载离线地图使用,减少用户流量方面的开销,为用户提供更流 ...
- Android课程设计:基于离线地图服务器的Android地图应用
Android开发课程设计:基于离线地图服务器的Android地图应用 此项目的灵感来源于伯克利cs61b的Project3: cs61b的官网地址:Project 3: Bear Maps 我的实验 ...
- 如何在Android中使用离线的谷歌地图Google maps
Google maps真的太好用了!如果能在Android中使用离线的谷歌地图将是一件很爽的事情! 按照如下步骤做吧! 以下操作在windows下进行! 安裝 Java 執行環境 (JRE 或 JDK ...
- Mapbox Android学习笔记(8)离线地图
Offline 通常,您可能会发现您的用户群大部分时间都不在网格上.Maps SDK允许您下载和存储预先选择的区域,以便在设备脱机时使用.下载地图的结果是使用下载区域内的style.tile和其他资源 ...
最新文章
- 多功能监护系统开发与设计
- mysql eval,mysql中是否有类似于eval的写法的,答案在这里
- GDCM:gdcm::PersonName的测试程序
- Walle 瓦力 web部署系统
- 见识决定眼界,关注这些让你变得博学且有趣
- 简明 Python 教程学习笔记_2_函数
- Oracle EBS 入门
- python判断输入的数字是完全平方还是三次方
- 浅析:浅拷贝 及 深拷贝的传统写法
- SQL Cookbook(读书笔记)No.2
- android切图双数,浅谈网页设计切图规范
- VRay渲染器之家装户型渲染实战记录
- 4.4 输入法图片 android,支持安卓4.4!搜狗输入法5.1新版发布
- 程序员量子力学-海森堡式BUG
- Python/python/xpath爬虫--妙招网
- 葫芦兄弟java7723_颠峰对决之喜羊羊大战葫芦娃
- 支付宝小程序生态服务商奖励发布,单个商家最高奖励5000元
- NAPI之(一)——原理和实现
- 描述性统计部分(一)----统计量
- 使用强大的Chrome浏览器自带截图功能
热门文章
- 服务计算 HW3 CLI 命令行实用程序开发基础
- 记一次线上redis报错(JedisExhaustedPoolException: Could not get a resource since the pool is exhausted)
- HTML中使用富文本工具
- 如何领取支付宝收款码
- 应用宝苹果版_放置江湖应用宝版本下载-放置江湖腾讯版下载v2.6.0.1 安卓微信登录版...
- 告别teamviewer, ubuntu用户可以使用免费的AnyDesk
- mysql数据库,oracle数据库中对字段的拼接方法
- 【Quartz】定时任务小练习
- linux路由器静态无法转发,静态路由之路由器两种转发模式
- 钛资本研究院:智能经济,数字经济学视角的范式变革