d3 企业图谱 仿天眼查 企查查

news/2024/12/22 18:47:51/

最近接到一个需求,终端要加入企业图谱的功能、能无线穿透下去,之前写过一个类似树形图但是节点长度没有自适应(如下图),样式也不够好看,产品提出做一个类似企查查那种的企业图谱,能更直观的展示企业信息,无奈只能继续研究....

改版前

 

改版后:

 

新版的是用的d3.v5版本的,因为之前用的是v3版,但是v5改动比较大还是得对照着D3的官方文档和实例。

顺便附带上所需版本APi链接 d3v5: https://github.com/d3/d3/blob/master/API.md#axes-d3-axis    d3v3   https://github.com/d3/d3/wiki/API--%E4%B8%AD%E6%96%87%E6%89%8B%E5%86%8C

接下来就是写代码了,

基础布局想必大家照着官方demo都可以实现,直接搬过来就行。

官方api demo给的都是最简单的实现,所以大部分还是的自己加的。这里有两个问题1、 节点位置(长度)计算、2、链接线的绘制,我这里是自定义的线,默认的好像是贝赛尔曲线,我这里运用svg的基础画线方式Path(M,H, S,L,V,A,Q,C这样的基础属性)。

首先节点位置计算(包含节点长度),我们需要在绘制图像之前根据当前layer的最长文字长度来确定下一层级节点的开始位置,我是写了一个方法来专门计算当前层级最大的长度,来保证整个布局不会出现重叠现象的....

刚开始我用字体长度length * this.fontSize的方式算出的字体长度,但是因为文本中包含很多未知的符号()% 导致长度计算不准确,后来想到一个笨方法

遍历数据把它们放到text 中通过d3.select(this.getComputedTextLength())这个方法来获取能到准确长度,如果小伙伴有更好的方法可以加扣扣交流一下qq1414452830

 

长度计算出来,节点的位置就能确定,链接线就能直接画出参考svgPath,第一次写博客有点匆忙、很多点没有说明白、需要源码的小伙伴可以评论或加qq,下次讲解力项导图、股权穿透图可以细化一点....


http://www.ppmy.cn/news/789499.html

相关文章

仿企查查、天眼查股权穿透d3

企业图谱做出来了,接下来仿企查查写个股权穿透的图谱 企查查股权穿透 自己的 首先使用的方法以及生成图的方法 跟企业图谱类似 也是用的d3官方demo给出的生成双向树的方法,不过版本是d3.v3 相比企业图谱 股权穿透就简单了,不需要计算文字长…

python天眼查爬虫_普通用户的天眼查爬取

[Python] 纯文本查看 复制代码#-*- coding:utf-8 -*- import requests from lxml import etree import json import time import random from copy import deepcopy class Tianyan(): def __init__(self): self.url https://www.tianyancha.com/search/ola3/p{}?key%E6%B2%A7…

JAVA爬虫天眼查、启信宝...企业信息查询网站

闲来无事,做个快速收集企业信息导出Excel表的程序。所以...嘿嘿,开始对天眼查进行研究,废话不多说。 一、天眼查网站地址:https://www.tianyancha.com,到天眼查网站后例如:查询关键字:教育&…

天眼查 Authorized和企查查 sign破解

目前天眼查、企查查APP均使用了ndk 天眼查 很早之前研究的。。。 1.使用爱加密进行加固 2.使用爱加密so,sm4进行加密 3.Authorized使用imei、设备id等作为验证 4.Authorized大概5分钟过期 5.抓包可以使用手机端抓包工具和justtruestme 6.破解Authorized&#xff0…

爬虫-天眼查数据

前两天收到一个公司的笔试题: 从结果页面中提取股东信息,如:http://www.tianyancha.com/company/9519792 中展示的”许晨晔”等姓名 oh 我还不会爬虫,吓的我赶紧刷了刷知乎,找到一个例子,大体是个模板&am…

采集天眼查的10个经典方法

天眼查的企业数据、工商信息、法人号码、人员名录、网页抓取数据、网页爬虫、采集网站数据、网页数据采集软件、python爬虫、HTM网页提取、一站式网站采集技术、BI数据的数据分析、数据标注等成为大数据发展中的热门技术关键词。那么采集天眼查数据的方法有哪些呢?我…

天眼查pc端公司信息抓取

本篇查询的是人工智能前5页相关公司的信息: #主要是异常处理和反爬处理 1.异常处理就是有的公司不是公开的数据没有所以需要判断,不然程序会出错 2.反爬页面浏览多了会需要登录,这边用cookie处理 import requests from lxml import etreegs[…

天眼查新方式信息爬取

\xe8\xb0\xa3\xe8\xa8\x80 \ 中文乱码转换: \xe8\xb0\xa3\xe8\xa8\x80.encode(raw_unicode_escape).decode("utf-8")#本文通过新的方式爬取突破 由于公司列表页信息很少反爬,除了公司名称其他信息都没有,所以可以取巧提取注册时间…