[D3JS] Add more map layer and color

import React, {Component} from ‘react‘;
import * as d3  from ‘d3‘;
import ‘d3-geo‘;
import * as topojson from ‘topojson‘;
import * as colorbrewer from ‘colorbrewer‘;
const us = require(‘./us.json‘);

const width = 960;
const height = 600;

class Map extends Component {
    componentDidMount() {
        const svg = d3.select(this.refs.mountSvg)
            .append(‘svg‘)
            .attr(‘height‘, height)
            .attr(‘width‘, width);

        const path = d3.geoPath();

        // define color
        var color = d3.scaleLinear()
            .domain([-100000, 500000])
            .range(colorbrewer.Greens[6]);

       // Add nation layer
        svg.append(‘path‘)
            .datum(topojson.feature(us, us.objects.nation))
            .attr(‘class‘, ‘land‘)
            .attr(‘d‘, path);

        // add state layer
        svg.append(‘path‘)
            .datum(topojson.mesh(us, us.objects.states), (a,b) => a!==b)
            .attr(‘class‘, ‘border state‘)
            .attr(‘d‘, path);

        // add counties and county layer
        svg.append("g")
            .attr("class", "counties")
            .selectAll("path")
            .data(topojson.feature(us, us.objects.counties).features)
            .enter().append("path")
            .attr("class", "county")
            .attr("d", path)
            //add color
            .attr("fill", function(d) {
                const profit = d.properties.profit;
                if(profit) {
                    return color(d.properties.profit);
                }
            })

    }

    render() {
        const style = {
            width,
            height,
            border: ‘1px solid black‘,
            margin: ‘10px auto‘
        };
        return (
            <div style={style} ref="mountSvg"></div>
        );
    }
}

export default Map;
 
时间: 2024-10-12 04:36:20

[D3JS] Add more map layer and color的相关文章

MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.1 A map with single layer

MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.1 A map with single layer 一.前言 开始MapServer用例实践之旅,做项目算是可以比喻为考试,但是考试之前,还是以做练习题模拟考为主.下面实践一下官网的第一个例子:Example1.1 A map with single layer(官网地址:https://www.mapserver.org/tutorial/example1-1.html#examp

MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.2 Static Map with Two Layers

MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.2 Static Map with Two Layers 一.前言 上一篇博客<MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.1 A map with single layer>中介绍了单图层的地图加载显示.下面根据官网的例子介绍两个图层的加载显示.官网地址:https://www.mapserver.org/tu

MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.3 Displaying Classes in a Layer

MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.3 Displaying Classes in a Layer 一.前言 关于第一节的案例,分别介绍了一个基本的地图站点应用程序创建和多图层地图站点 应用程序创建.这个案例 主要来介绍一下mapfile文件中 LAYER 对象里面,CLASS对象的应用. 同时还有如何根据CLASSITEM.EXPRESSION等配置去修改地图的显示方式. 最后还有一个很酷炫的方法一次性读取shp文件

MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map

MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example 1.4 Labeling the Map 一.前言 MapServer拥有非常灵活的标签标记系统.它支持bitmap以及truetype字体等.使用truetype字体同时还支持其缩放.标签的角度和位置是可以自定义的. 通过把标签的位置和角度以及其他参数的设置使用,你可以把你的地图装饰得更加美观,信息体现的更加丰富. 二.搭建Example1.4站点 所有的学习都要通过实践,还是从搭建

MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer

MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.5 Adding a  raster layer 一.前言 MapServer不仅支持矢量数据(point, lines, polygons, and annotations),同时也支持栅格数据.通过GDAL库,MapServer可以输入输出多种类型的栅格数据. 在4.x版本前,MapServer输出栅格数据仅限于单个图层.灰度图像或伪彩色图像. 当前版本支持RGB图像和多光谱图像

CA*Layer(CAShapeLayer--CATextLayer)

CAShapeLayer CAShapeLayer是一个通过矢量图形而不是bitmap来绘制的图层子类.你指定诸如颜色和线宽等属性,用CGPath来定义想要绘制的图 形,最后CAShapeLayer就自动渲染出来了.当然,你也可以用Core Graphics直接向原始的CALyer的内容中绘制一个路径,相比直下,使用CAShapeLayer有以下一些优点: 渲染快速.CAShapeLayer使用了硬件加速,绘制同一图形会比用Core Graphics快很多. 高效使用内存.一个CAShapeLa

java 判断map是否存在某个key 和 json字符串转化为list对象

equipment = new ECEquipment(); if(map.containsKey(cell5)) { map.get(cell5).add(equipment); } else { equipmentList = new ArrayList<ECEquipment>(); equipmentList.add(equipment); map.put(cell5, equipmentList); } String jsonString = "[{\"fileI

我所理解Java集合框架的部分的使用(Collection和Map)

所谓集合,就是和数组类似--一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接口,长虚线表示抽象类,实线表示类,箭头表示实现接口或者继承)(在网络上找的图,不知道原作者,侵权请联系我删除)(总之,关系很复杂,所以不用记得这个图,只是用来吓吓人而已的). 下面贴上个人理解之精简版之Collection(集)和Map(地图?暂且这么理解吧),话说思维导图蛮好用,以下是两幅思维导图

Hibernate学习---第六节:数组&amp;list&amp;map&amp;set的映射配置

1.实体类,代码如下: package learn.hibernate.bean; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; /** * 持久化类设计 * 注意: * 持久化类通常建议要有一个持久化标识符(ID) * 持久化标识符通常建议使用封装类(例如:Integer 因为基本类型存在默认值) * 持久化类