mysql+地图网格数据下载_离线地图

本文展示了如何使用D3库来实现地图网格数据的下载和可视化。通过获取数据并利用D3的treemap布局,创建了一个展示数据分布的SVG地图,其中包含了数据的标题、颜色编码和值的详细信息。
摘要由CSDN通过智能技术生成

D3 网格数据源代码展示

Document

body {

margin: 0;

padding: 0;

}

#map {

position: absolute;

top: 0;

bottom: 0;

width: 100%;

}

.d3 {

width: 500px;

height: 500px;

z-index: 10;

/* background-color: rosybrown; */

}

#zhemu {

width: 600px;

height: 100%;

opacity: .9;

background-color: black;

position: absolute;

z-index: 10;

}

//软件配置信息地址,软件安装完成之后使用本地地址,如:http://localhost:9000

BM.Config.HTTP_URL = 'http://www.bigemap.com:9000';

// 在ID为map的元素中实例化一个地图,并设置地图的ID号为 bigemap.googlemap-streets,ID号程序自动生成,无需手动配置,并设置地图的投影为百度地图 ,中心点,默认的级别和显示级别控件

var map = BM.map('map', 'bigemap.googlemap-streets', { center: [30, 104], zoom: 4, zoomControl: true });

var marker = BM.marker([30, 104]).addTo(map)

getdata()

// 获取数据

function getdata() {

$.get('/Public/d3json/flare-2.json', function (data) {

var height = 700

var width = 600

console.log(data);

//处理数据

treemap = data => d3.treemap()

.size([width, height])

.padding(1)

.round(true)

(d3.hierarchy(data)

.sum(d => d.value)

.sort((a, b) => b.value - a.value))

//定义格式化

format = d3.format(",d")

//颜色比例尺

color = d3.scaleOrdinal(d3.schemeCategory10)

var root = treemap(data);

//添加svg图层

var svg = d3.select('.d3').append('svg').attr('height', height).attr('width', width)

//添加图层分组

const leaf = svg.selectAll("g")

.data(root.leaves())

.join("g")

.attr("transform", d => `translate(${d.x0},${d.y0})`);

leaf.append("title")

.text(d => `${d.ancestors().reverse().map(d => d.data.name).join("/")}\n${format(d.value)}`);

leaf.append("rect")

// .attr("id", d => (d.leafUid = DOM.uid("leaf")).id)

.attr("fill", d => { while (d.depth > 1) d = d.parent; return color(d.data.name); })

.attr("fill-opacity", 0.6)

.attr("width", d => d.x1 - d.x0)

.attr("height", d => d.y1 - d.y0);

leaf.append("clipPath")

// .attr("id", d => (d.clipUid = DOM.uid("clip")).id)

.append("use")

// .attr("xlink:href", d => d.leafUid.href);

leaf.append("text")

.attr("clip-path", d => d.clipUid)

.selectAll("tspan")

.data(d => d.data.name.split(/(?=[A-Z][a-z])|\s+/g).concat(format(d.value)))

.join("tspan")

.attr("x", 3)

.attr("y", (d, i, nodes) => `${(i === nodes.length - 1) * 0.3 + 1.1 + i * 0.9}em`)

.attr("fill-opacity", (d, i, nodes) => i === nodes.length - 1 ? 0.7 : null)

// .attr('font-size', '5')

.text(d => d);

})

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值