精华内容
下载资源
问答
  • topojson-osm-fetch 节点实用程序,用于从Open Street Map提取数据并将其转换为TopoJSON文件。 查看示例部分以获取生成上面地图的源代码 安装 npm install -g topojson-osm-fetch 注意:如果只想将其用作模块,则...
  • 中国地图 省界 TopoJson

    2018-04-24 14:37:10
    China.topojson 是中国省界地图的json格式 主要是适用于GIS开发,可以在页面显示出中国地图并且进行一些必要的操作。
  • 将各种数据格式转换为GeoJSON或TopoJSON 该软件包是将地理数据转换为GeoJSON和TopoJSON格式的实用程序。 没有其他的。 我们希望很好地完成这一工作,并处理所有合理的用例。 该软件包中的功能首先围绕您正在使用...
  • Minnet可以创建多种拓扑网络,主要分为两类,一类是自动型,是指Mininet自带的拓扑类型, 通过--topo参数来指定,分别是linear、minimal、reversed、single、torus以及tree共六种;另一类是自定义型,是指通过py文件...

    Mininet网络划分

    Minnet可以创建多种拓扑网络,主要分为两类,一类是自动型,是指Mininet自带的拓扑类型, 通过--topo参数来指定,分别是linear、minimal、reversed、single、torus以及tree共六种;另一类是自定义型,是指通过py文件自定义拓扑类型,通过--custom和--topo两个参数搭配指定。下面分别说下两类的功能以及使用。

     

    Mininet自动创建网络拓扑

    1.liner 单一拓扑

    single定制的拓扑里只有一个交换机,主机数量自由指定,呈放射状,通过如下命令创建拓扑:

    #--topo=single,5: 指定拓扑类型以及主机数量
    #--controller=remote,ip=192.168.0.2 : 指定接管这个网络的控制器
    
    root@ubuntu:~# sudo mn --topo=single,5 --controller=remote,ip=192.168.0.2
    *** Creating network
    *** Adding controller
    Connecting to remote controller at 192.168.0.2:6653
    *** Adding hosts:
    h1 h2 h3 h4 h5 
    *** Adding switches:
    s1 
    *** Adding links: #可以发现,每个host都和交换机s1相连
    (h1, s1) (h2, s1) (h3, s1) (h4, s1) (h5, s1) 
    *** Configuring hosts
    h1 h2 h3 h4 h5 
    *** Starting controller
    c0 
    *** Starting 1 switches
    s1 ...
    *** Starting CLI:
    mininet> nodes
    available nodes are: 
    c0 h1 h2 h3 h4 h5 s1 #可以发现我们这里只有一个交换机s1,5个host
    mininet> net
    h1 h1-eth0:s1-eth1
    h2 h2-eth0:s1-eth2
    h3 h3-eth0:s1-eth3
    h4 h4-eth0:s1-eth4
    h5 h5-eth0:s1-eth5
    s1 lo:  s1-eth1:h1-eth0 s1-eth2:h2-eth0 s1-eth3:h3-eth0 s1-eth4:h4-eth0 s1-eth5:h5-eth0
    c0
    

    拓扑图如下:


    2.minimal最小化拓扑

    只有一个交换机,交换机下面连接两个主机,是默认的拓扑方式,通过如下命令创建拓扑:

    #--topo=minimal 才有最小化拓扑模型,只需要指定模型参数
    root@ubuntu:~# sudo mn  --controller=remote,ip=192.168.0.2
    *** Creating network
    *** Adding controller
    Connecting to remote controller at 192.168.0.2:6653
    *** Adding hosts:
    h1 h2 
    *** Adding switches:
    s1 
    *** Adding links:
    (h1, s1) (h2, s1) 
    *** Configuring hosts
    h1 h2 
    *** Starting controller
    c0 
    *** Starting 1 switches
    s1 ...
    *** Starting CLI:
    mininet> nodes
    available nodes are: 
    c0 h1 h2 s1 #只有一个交换机,两个host
    mininet> net
    h1 h1-eth0:s1-eth1
    h2 h2-eth0:s1-eth2
    s1 lo:  s1-eth1:h1-eth0 s1-eth2:h2-eth0
    c0
    

    拓扑如下:

    3.line线性拓扑

    交换机连接呈线形排列,且每一个交换机下只能挂一个主机,通过如下命令创建拓扑:

    #--topo=linear,3,2 :拓扑模型,交换机个数,每个交换机下的主机数
    root@ubuntu:~# sudo mn --topo=linear,3,2 --controller=remote,ip=192.168.0.2
    *** Creating network
    *** Adding controller
    Connecting to remote controller at 192.168.0.2:6653
    *** Adding hosts:
    h1s1 h1s2 h1s3 h2s1 h2s2 h2s3  #主机
    *** Adding switches:
    s1 s2 s3 #交换机
    *** Adding links:
    (h1s1, s1) (h1s2, s2) (h1s3, s3) (h2s1, s1) (h2s2, s2) (h2s3, s3) (s2, s1) (s3, s2) 
    *** Configuring hosts
    h1s1 h1s2 h1s3 h2s1 h2s2 h2s3 
    *** Starting controller
    c0 
    *** Starting 3 switches
    s1 s2 s3 ...
    *** Starting CLI:
    mininet> nodes
    available nodes are: 
    c0 h1s1 h1s2 h1s3 h2s1 h2s2 h2s3 s1 s2 s3
    mininet> net
    h1s1 h1s1-eth0:s1-eth1
    h1s2 h1s2-eth0:s2-eth1
    h1s3 h1s3-eth0:s3-eth1
    h2s1 h2s1-eth0:s1-eth2
    h2s2 h2s2-eth0:s2-eth2
    h2s3 h2s3-eth0:s3-eth2
    s1 lo:  s1-eth1:h1s1-eth0 s1-eth2:h2s1-eth0 s1-eth3:s2-eth3
    s2 lo:  s2-eth1:h1s2-eth0 s2-eth2:h2s2-eth0 s2-eth3:s1-eth3 s2-eth4:s3-eth3
    s3 lo:  s3-eth1:h1s3-eth0 s3-eth2:h2s3-eth0 s3-eth3:s2-eth4
    c0

    拓扑如下:

    4. tree 树形拓扑

    交换机的连接呈树形,且每个交换机下可以挂多个交换机,通过如下命令创建拓扑:

    #--topo=tree,3,2:拓扑模型,交换机的深度或者层数,每层交换机下连接的主机或者交换机个数
    #--topo=tree,3,2: 三层,第一层一个交换机,第二层2个交换机,第三层4个交换,主机:4 x 2 = 8
    #--topo=tree,3,3: 三层,第一层一个交换机,第二层3个交换机,第三层9个交换, 主机:9 x 3 = 27
    #--mac 使主机mac尽量简单
    root@ubuntu:~# sudo mn --topo=tree,3,2 --controller=remote,ip=192.168.0.2 --mac
    *** Creating network
    *** Adding controller
    Connecting to remote controller at 192.168.0.2:6653
    *** Adding hosts:
    h1 h2 h3 h4 h5 h6 h7 h8 
    *** Adding switches:
    s1 s2 s3 s4 s5 s6 s7 
    *** Adding links:
    (s1, s2) (s1, s5) (s2, s3) (s2, s4) (s3, h1) (s3, h2) (s4, h3) (s4, h4) (s5, s6) (s5, s7) (s6, h5) (s6, h6) (s7, h7) (s7, h8) 
    *** Configuring hosts
    h1 h2 h3 h4 h5 h6 h7 h8 
    *** Starting controller
    c0 
    *** Starting 7 switches
    s1 s2 s3 s4 s5 s6 s7 ...
    *** Starting CLI:
    mininet> nodes
    available nodes are: 
    c0 h1 h2 h3 h4 h5 h6 h7 h8 s1 s2 s3 s4 s5 s6 s7
    mininet> net
    h1 h1-eth0:s3-eth1
    h2 h2-eth0:s3-eth2
    h3 h3-eth0:s4-eth1
    h4 h4-eth0:s4-eth2
    h5 h5-eth0:s6-eth1
    h6 h6-eth0:s6-eth2
    h7 h7-eth0:s7-eth1
    h8 h8-eth0:s7-eth2
    s1 lo:  s1-eth1:s2-eth3 s1-eth2:s5-eth3
    s2 lo:  s2-eth1:s3-eth3 s2-eth2:s4-eth3 s2-eth3:s1-eth1
    s3 lo:  s3-eth1:h1-eth0 s3-eth2:h2-eth0 s3-eth3:s2-eth1
    s4 lo:  s4-eth1:h3-eth0 s4-eth2:h4-eth0 s4-eth3:s2-eth2
    s5 lo:  s5-eth1:s6-eth3 s5-eth2:s7-eth3 s5-eth3:s1-eth2
    s6 lo:  s6-eth1:h5-eth0 s6-eth2:h6-eth0 s6-eth3:s5-eth1
    s7 lo:  s7-eth1:h7-eth0 s7-eth2:h8-eth0 s7-eth3:s5-eth2
    

    拓扑如下:

    5.reversed反向拓扑

    这种拓扑类型与single单一拓扑类型相同,通过如下命令创建拓扑:

    #--topo=reversed,4:拓扑类型,主机数(只有一个交换机)
    #--mac 使主机mac尽量简单
    root@ubuntu:~# sudo mn --topo=reversed,4 --controller=remote,ip=192.168.0.2 --mac
    *** Creating network
    *** Adding controller
    Connecting to remote controller at 192.168.0.2:6653
    *** Adding hosts:
    h1 h2 h3 h4 
    *** Adding switches:
    s1 
    *** Adding links:
    (h1, s1) (h2, s1) (h3, s1) (h4, s1) 
    *** Configuring hosts
    h1 h2 h3 h4 
    *** Starting controller
    c0 
    *** Starting 1 switches
    s1 ...
    *** Starting CLI:
    mininet> nodes
    available nodes are: 
    c0 h1 h2 h3 h4 s1
    mininet> net
    h1 h1-eth0:s1-eth4
    h2 h2-eth0:s1-eth3
    h3 h3-eth0:s1-eth2
    h4 h4-eth0:s1-eth1
    s1 lo:  s1-eth1:h4-eth0 s1-eth2:h3-eth0 s1-eth3:h2-eth0 s1-eth4:h1-eth0
    c0
    

    拓扑如下:

    6.turse环形拓扑

    个人不是很理解也很少用到,这里不做介绍,有兴趣可以百度自查。

     

    Mininet自定义拓扑--custom

    现在有这样一个网络拓扑需求,如下:

    很显然,这个网络拓扑并不能用Mininet自动创建网络拓扑模型,只能通过自己定制网络拓扑模型,定制py脚本如下:
     

    #!/usr/bin/python
     
    from mininet.topo import Topo
     
    class MyTopo( Topo ):
    
        def __init__( self ):
     
           "Create custom topo."
     
           # Initialize topology
           Topo.__init__( self )
     
           # 生成所需要的主机和交换机
           h1 = self.addHost( 'h1' )
           h2 = self.addHost( 'h2' )
           h3 = self.addHost( 'h3' )
           h4 = self.addHost( 'h4' )
           h5 = self.addHost( 'h5' )
    
           sw1= self.addSwitch( 'sw1' )
           sw2 = self.addSwitch( 'sw2' )
           sw3= self.addSwitch( 'sw3' )
           sw4= self.addSwitch( 'sw4' )
           sw5= self.addSwitch( 'sw5' )
           sw6= self.addSwitch( 'sw6' )
    
     
           # 添加连线,交换机和交换机之间,交换机和主机之间
           self.addLink( sw1, sw2)
           self.addLink( sw1, sw3)
           self.addLink( sw2, sw4)
           self.addLink( sw2, h2)
           self.addLink( sw3, sw5)
           self.addLink( sw3, sw6)
           self.addLink( sw4, h1)
           self.addLink( sw5, h3)
           self.addLink( sw5, h4)
           self.addLink( sw6, h5)
    
    #实例化类
    topos = { 'mytopo': ( lambda: MyTopo() ) }
    #注意:‘mytopo’这个参数必须和命令行--topo的参数一致,如果不一致,运行时报“Exception: Invalid topo name mytopo2”

    一般定制化的py脚本主要就是实例化一个继承Topo的类,上述脚本的这个类就是:MyTopo

    下面通过命令行利用上述脚本创建网络模型,如下:

    #--custom ./mytopo_test.py :py文件
    #--topo mytopo: py文件中实例化对象时指定的参数
    root@ubuntu:~# sudo mn --controller=remote,ip=192.168.0.2 --custom ./mytopo_test.py --topo mytopo --mac
    *** Creating network
    *** Adding controller
    Connecting to remote controller at 192.168.0.2:6653
    *** Adding hosts:
    h1 h2 h3 h4 h5 
    *** Adding switches:
    sw1 sw2 sw3 sw4 sw5 sw6 
    *** Adding links:
    (sw1, sw2) (sw1, sw3) (sw2, h2) (sw2, sw4) (sw3, sw5) (sw3, sw6) (sw4, h1) (sw5, h3) (sw5, h4) (sw6, h5) 
    *** Configuring hosts
    h1 h2 h3 h4 h5 #5个host
    *** Starting controller
    c0 
    *** Starting 6 switches
    sw1 sw2 sw3 sw4 sw5 sw6 ...#6个交换机
    *** Starting CLI:
    mininet> nodes
    available nodes are: 
    c0 h1 h2 h3 h4 h5 sw1 sw2 sw3 sw4 sw5 sw6
    mininet> net
    h1 h1-eth0:sw4-eth2
    h2 h2-eth0:sw2-eth3
    h3 h3-eth0:sw5-eth2
    h4 h4-eth0:sw5-eth3
    h5 h5-eth0:sw6-eth2
    sw1 lo:  sw1-eth1:sw2-eth1 sw1-eth2:sw3-eth1
    sw2 lo:  sw2-eth1:sw1-eth1 sw2-eth2:sw4-eth1 sw2-eth3:h2-eth0
    sw3 lo:  sw3-eth1:sw1-eth2 sw3-eth2:sw5-eth1 sw3-eth3:sw6-eth1
    sw4 lo:  sw4-eth1:sw2-eth2 sw4-eth2:h1-eth0
    sw5 lo:  sw5-eth1:sw3-eth2 sw5-eth2:h3-eth0 sw5-eth3:h4-eth0
    sw6 lo:  sw6-eth1:sw3-eth3 sw6-eth2:h5-eth0
    c0
    

    拓扑图如下:

    经对比,同我们的定制需求拓扑相同。

     

    展开全文
  • China.City.topojson 是中国城市明细地图的json格式 主要是适用于GIS开发,可以在页面显示出中国城市地图并且进行一些必要的操作。
  • topojson-j 基于topojsonJava的Topojson库。 基础项目读取.shp文件,可以将它们转换为Geojson文件或Topojson文件。 添加了使用LZ4 lib压缩生成的文件的功能。 例子 // Reading a shp file and writing it as ...
  • ensp考试.topo

    2021-04-04 14:03:05
    这里只有题目
  • topojson转换与应用

    2021-07-17 18:45:09
    topojson很早就问其大名,但日常用的比较多的还是geojson为主,最近在项目里面开始用到了,所以就写此文记录一下。 topojson GeoJSON是用于描述地理空间信息的数据格式。 github上对TopoJSON的解释是: GeoJSON 按...

    概述

    topojson很早就问其大名,但日常用的比较多的还是geojson为主,最近在项目里面开始用到了,所以就写此文记录一下。

    topojson

    • GeoJSON是用于描述地理空间信息的数据格式。
    • github上对TopoJSON的解释是: GeoJSON 按拓扑学编码后的扩展形式。TopoJSON 消除了冗余,允许将相关几何图形有效地存储在同一文件中。

    对比

    1.文件大小

    2.png

    2.渲染效率

    1.png

    转换以及在mapboxGL中的使用

    1.转换

    借助topojson-client,可方便的实现topojson到geojson的转换,转换方法参见API

    2.mapboxGl中的使用

    <!doctype html>
    <html lang="en">
    
    <head>
      <meta charset="utf-8">
      <meta http-equiv="x-ua-compatible" content="ie=edge">
      <title>白天不懂夜的黑</title>
      <meta name="description" content="">
      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      <link rel="stylesheet" href="../css/main.css">
      <link href="lib/mapbox-gl.css" rel="stylesheet" />
      <style>
          .map-chart {
              width: 20px;
              height: 40px;
          }
      </style>
    </head>
    
    <body>
    <div id="app">
      <div id="map"></div>
    </div>
    <script src="lib/mapbox-gl.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script src="lib/topojson-client.js"></script>
    <script>
        var that, map;
    
        var app = new Vue({
            el: '#app',
            mounted() {
                that = this;
                that.initMap();
            },
            methods: {
                initMap() {
                    var mapStyle = {
                        "version": 8,
                        "name": "Dark",
                        "sources": {
                            "XYZTile": {
                                "type": "raster",
                                "tiles": ['http://webrd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8'],
                                "tileSize": 256,
                            }
                        },
                        "layers": [
                            {
                                "id": "XYZTile",
                                "type": "raster",
                                "source": "XYZTile",
                                "minzoom": 0,
                                "maxzoom": 22
                            }
                        ]
                    };
    
                    map = new mapboxgl.Map({
                        container: 'map',
                        maxZoom: 18,
                        minZoom: 0,
                        zoom: 3,
                        center: [109.1699, 45.9719],
                        style: mapStyle,
                        attributionControl: false
                    });
    
                    map.on('load', () => {
                        this.addTopoJSON();
                    })
                },
                addTopoJSON() {
                    $.ajax({
                        type: "get",
                        url: "data/province.topojson",
                        success(json) {
                            json = JSON.parse(json)
                            const geojson = topojson.feature(json, json.objects['province']);
                            map.addSource('points', {
                                type: 'geojson',
                                data: geojson
                            });
                            map.addLayer({
                                id: 'points',
                                type: 'fill',
                                source: 'points',
                                paint: {
                                    'fill-color': '#f00',
                                    'fill-opacity': 0.2
                                }
                            });
                        }
                    });
                }
            }
        });
    </script>
    </body>
    
    </html>
    
    展开全文
  • Topo管理代码

    2017-07-30 17:51:30
    这是一个HTML5和Java写的一个Topo管理的小程序,使用在Tomcat里面,以后还是逐渐完善
  • 微波链路转换TOPO图工具,将微波链路链路A(下级站点)---B(上级站点)格式的链路列表转换成节点树存储,并将节点关联的链路信息,站点容量需求转换成微波链路所需累计容量。并画出微波TOPO图。
  • 杭州市topo.json

    2018-07-24 08:58:02
    杭州市topo.json,仅为行政区/县的数据,用于地图展示,免去创建地图服务
  • topojson 在Python中将地理数据编码为拓扑! Topojson是一个库,能够创建Python中仅任何地理对象的topojson编码格式。 使用topojson可以减少地理数据的大小。 主要是数量级。 它可以通过以下方式做到这一点: ...
  • ToPo V1.2 Topo(添加字节)绿色 免费 强大 非常好用 破解
  • 123.topo第一次实验

    2021-12-14 20:00:39
    123.topo第一次实验
  • svg2topo 将 SVG 从 Inkscape 转换为 Topojson 地图坐标
  • 使用d3vue开发的Topo

    2019-08-12 02:45:24
    使用d3 vue开发的Topo
  • topo 拓扑图例子

    2012-09-25 15:45:13
    一个容易扩展的拓扑图,js写的,下载就能看到效果.
  • access的配置思路和命令
  • 静态路由.topo

    2019-10-29 11:20:23
    静态路由配置,处于不同交换机下(不同网段)的PC机,相互进行通信ensp拓扑
  • js拓扑图topo

    热门讨论 2012-06-21 14:25:06
    一个很适用的拓扑图 采用js开发 容易改进.
  • Topo排序

    2011-11-08 00:41:02
    Topo排序
  • ENSP静态路由实验,两台交换机不同网段间互通。适用于高速行业收费及监控网络。新手必回技能。配置简单,适用性强。
  • 拓扑世界 WebGL 中的 TopoJSON 渲染 基于 Mike Bostock 的为 D3.js教程。
  • PYTHON-TOPOJSON 端口,最初由移植,使用与原始端口相同的BSD许可证进行许可。 安装: pip install git+https://github.com/osgn/python-topojson.git 当前用法: 输入可以是文件状对象,文件路径或字典,输出...
  • topo拓扑图

    2020-09-24 15:52:14
    拓扑个人实例网站(可以查看所有的canvas项目) canvas布局:Vue+JavaScript+element UI,dom节点只有canvas一个,所有事件都在canvas标签上,mouseMove(鼠标移动),mouseDown(鼠标按下),判断鼠标坐标(offsetX,...
    拓扑
    标题

    拓扑个人实例网站(http://jstopo.top 可以查看所有的canvas项目)

    • canvas布局:Vue+JavaScript+element UI,dom节点只有canvas一个,所有事件都在canvas标签上,mouseMove(鼠标移动),mouseDown(鼠标按下),判断鼠标坐标(offsetX,offsetY);
    • canvas连线和判断是否在线条上,moveTo,lineTo,先计算两点的角度atan2(y2-y1,x2-x1,c)(算出线上每个点坐标x,y);                    判断rect,arc可以用isPointInPath(x,y)
        
    • canvas电流动画,需要requestAnimationFrame(pointMove);
    展开全文
  • 地形计算软件-地形计算软件
  • Topo是自动化体系结构存储库的参考实现-汇总有关组织软件系统的精选信息和实时信息-它们是什么,如何组合在一起以及如何相互关联。 在本地启动Topo yarn docker-local 可以在上使用topo GraphQL服务器。在上可以...
  • topo编辑页面开发

    2019-01-15 15:14:19
    此资源用于帮助开发topo编辑页面的前端程序员,参考此资源可以给编辑方式带来思路
  • 互动地图 我们源代码。 该存储库不包含真实数据,而是用于为多边形...app/data/berlin-zipcodes-data.topojson包含我们在工具提示中使用的地理数据和数据(id、name、district、randomRent) app/data/labels.json包
  • 中小园区组网.topo

    2020-07-06 15:46:23
    希望大家一起学习,另外有需要考华为NP证的同学可以找我拿5月份最新的题库资料,当然会收一瓶水的钱当回报.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,280
精华内容 5,312
关键字:

topo是什么