首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原 HTML5 网络拓扑图整合 OpenL

,也就是OpenLayers的tile地图图片在下方,GraphView的组件在上方,由于GraphView默认是透明的,因此非图元部分用户可穿透看到地图内容。...HT和OpenLayers组件叠加在一起之后,剩下就是拓扑里面图元的摆放位置与经纬度结合的问题,常规网络拓扑图中存储在ht.Node图元的position是逻辑位置,和经纬度没有任何关系,因此在GIS应用中我们需要根据图元的经纬度信息换算出...,对于OpenLayers我们通过map.getPixelFromLonLat(data.lonLat)可以将经纬度信息转换成屏幕像素逻辑坐标,也就是ht.Node需要的position坐标信息。...细心的同学会想到转换是双向的,有可能用户需要拖动图元节点改变其经纬度信息,这时候我们就需要另外一个方向函数,即根据屏幕逻辑坐标转换成当前坐标对应的经纬度,在OpenLayers中我们通过map.getLonLatFromPixel...显示搞定后剩下就是交互的问题了,HT自己有套交互体系,OpenLayers也需要地图漫游和缩放的交互,两者如何结合呢?

1.8K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    原 高效访问海量地图数据--GeoServer手动发布本地Shapefile地图

    值得一提的是,它是开源的,而ESRI公司开发的同类型产品ArcServer却是一款收费的GIS服务器,而且价格比较高。 三、为什么Geoserver这么高效?...如图所示,在某一个点上用一定的切片算法对地图进行切片,比如经纬度步长等比例分割成的瓦片(小图片)缓存起来,如果地图比例尺比较大,则只展示第一张图,随着地图放大,同时发生四次请求来加载第二层的四张图片,直至放大加载到最后一层...用户名是admin,密码是geoserver,登录后页面如下: 2.加入style 打开GeoServer界面,点击Styles,如图 进入新页面后,点击Add new style 在新打开的页面,Name...命名为liugh,在代码区添加代码,然后点击页面中的Validate按钮,如果代码没有问题,在页面的顶部会提示“No validation errors”,然后点击提交 也可以直接导入styles文件,...点击后,开始设置地图名称、路径等信息,注意,地图文件的路径中千万不要有中文,否则地图无法显示 保存后弹出以下页面,点击发布 设置坐标系和边界 先不要点击下方的保存,点击发布选项卡 把刚才设置的style

    2.7K60

    D3、openlayers的一次尝试

    近期尝试了一个webgl相关的内容,有些小激动,及时分享一下我的测试示例,效果如下: 此示例分从业务角度分为两部分,一个部分为d3展示的柱图,另一部分则为用openlayers展示的地图。...实现内容的翻面。 一、翻面效果的实现 此效果看似神奇,理解清楚原理后也还是很简单的。...div的父级的参照,在现代浏览上此处可以不加入3d变换属性,而Ie则需要加入。...city.js:城市名称数据字典 adapter/d3.js:用于将后台数据转换为d3可用的数据格式 adapter/ol.js:用于将后台数据转换为openlayers可用的数据格式 adapter.../provider.js:转换器工厂入口 本示例主要以flip.js为主,在组合d3和ol相关功能。

    1.9K70

    【C++】基础:开源GIS平台开发基础(MapServer+QGIS+PostGIS+OpenLayers)

    GIS软件工具 在GIS数据处理时,我们最熟悉的就是ArcGIS了,它的功能十分强大,但同时对电脑性能要求也挺高,而且很多功能我们其实用不上;其他类似的GIS软件还有:GeoDa、LocaSpace图新地球...PROJ:用于地理空间坐标转换。 3. OGR:基于GDAL的地理空间数据格式转换库。 4. MapServer或GeoServer:用于发布WebGIS服务的开源GIS服务器。 5....Stack Builder运行后,选择安装目标软件为PostgreSQL 15 on port 5432。然后在安装程序选择对话框中选择PostGIS 3.3。...然后Stack Builder会下载PostGIS 3.3的安装程序。下载后就会安装,在设置安装组件时,最好选择"Create spatial database",以便在创建数据库时可以以此作为模板。...安装完成后,打开图形管理工具pgAdmin: 输入密码就可以进入了: 给这个pgAdmin设置中文,首先打开Application Stack Builder,然后安装语言包: 进入pgAdmin中设置即可

    43410

    HT for Web整合OpenLayers实现GIS地图应用

    ,也就是OpenLayers的tile地图图片在下方,GraphView的组件在上方,由于GraphView默认是透明的,因此非图元部分用户可穿透看到地图内容。...HT和OpenLayers组件叠加在一起之后,剩下就是拓扑里面图元的摆放位置与经纬度结合的问题,常规网络拓扑图中存储在ht.Node图元的position是逻辑位置,和经纬度没有任何关系,因此在GIS应用中我们需要根据图元的经纬度信息换算出...,对于OpenLayers我们通过map.getPixelFromLonLat(data.lonLat)可以将经纬度信息转换成屏幕像素逻辑坐标,也就是ht.Node需要的position坐标信息。...细心的同学会想到转换是双向的,有可能用户需要拖动图元节点改变其经纬度信息,这时候我们就需要另外一个方向函数,即根据屏幕逻辑坐标转换成当前坐标对应的经纬度,在OpenLayers中我们通过map.getLonLatFromPixel...显示搞定后剩下就是交互的问题了,HT自己有套交互体系,OpenLayers也需要地图漫游和缩放的交互,两者如何结合呢?

    1.9K80

    HT for Web整合OpenLayers实现GIS地图应用

    ,也就是OpenLayers的tile地图图片在下方,GraphView的组件在上方,由于GraphView默认是透明的,因此非图元部分用户可穿透看到地图内容。...HT和OpenLayers组件叠加在一起之后,剩下就是拓扑里面图元的摆放位置与经纬度结合的问题,常规网络拓扑图中存储在ht.Node图元的position是逻辑位置,和经纬度没有任何关系,因此在GIS应用中我们需要根据图元的经纬度信息换算出...,对于OpenLayers我们通过map.getPixelFromLonLat(data.lonLat)可以将经纬度信息转换成屏幕像素逻辑坐标,也就是ht.Node需要的position坐标信息。...细心的同学会想到转换是双向的,有可能用户需要拖动图元节点改变其经纬度信息,这时候我们就需要另外一个方向函数,即根据屏幕逻辑坐标转换成当前坐标对应的经纬度,在OpenLayers中我们通过map.getLonLatFromPixel...显示搞定后剩下就是交互的问题了,HT自己有套交互体系,OpenLayers也需要地图漫游和缩放的交互,两者如何结合呢?

    1.6K11

    高效访问海量地图数据--GeoServer手动发布本地Shapefile地图

    值得一提的是,它是开源的,而ESRI公司开发的同类型产品ArcServer却是一款收费的GIS服务器,而且价格比较高。 三、为什么Geoserver这么高效?...如图所示,在某一个点上用一定的切片算法对地图进行切片,比如经纬度步长等比例分割成的瓦片(小图片)缓存起来,如果地图比例尺比较大,则只展示第一张图,随着地图放大,同时发生四次请求来加载第二层的四张图片,直至放大加载到最后一层...用户名是admin,密码是geoserver,登录后页面如下: 2.加入style 打开GeoServer界面,点击Styles,如图 进入新页面后,点击Add new style 在新打开的页面...,Name命名为liugh,在代码区添加代码,然后点击页面中的Validate按钮,如果代码没有问题,在页面的顶部会提示“No validation errors”,然后点击提交 也可以直接导入styles...点击后,开始设置地图名称、路径等信息,注意,地图文件的路径中千万不要有中文,否则地图无法显示 保存后弹出以下页面,点击发布 设置坐标系和边界 先不要点击下方的保存,点击发布选项卡 把刚才设置的style

    5.3K70

    Vite + Vue3 + OpenLayers

    theme: smartblue highlight: a11y-light 一、本文简介 本文案例使用 Vite 搭建项目,在 Vue 3 的基础上使用 OpenLayers 。...OpenLayers简介 OpenLayers 可以轻松地在任何网页中放置动态地图。它可以显示从任何来源加载的地图图块、矢量数据和标记。OpenLayers 的开发旨在进一步使用各种地理信息。...它是完全免费的开源 JavaScript。 以上是官网对 OpenLayers (以后简称“ol”)的介绍。 为什么选择ol?...import 'ol/ol.css' // 地图样式 【step 2】创建地图容器 地图需要渲染到一个 HTML 元素中,并且需要手动设置地图容器的宽高(通常使用 css...【step 4】在 mounted 后渲染地图 在元素挂载到页面后才执行渲染函数。onMounted 是 Vue3 提供的一个生命周期函数。

    2.8K20

    Django学习笔记一初识Django

    适合多终端运行同一套接口(PC、APP、小程序等) 在本文中,对前后端不分离的开发框架模型这里不作叙述,这里主要介绍前后端分离的MVC模型和MVT模型。...MVC各部分的解释 M/Model(模型):主要封装对数据层的操作,对数据库的数据进行增删改查操作。 V/View(视图):用于封装结果的,然后生成用于展示html。...图解 1.2.3 MVT模型 体现:Python中的Django框架就是MVT MVT各部分的解释 M/Model(模型):与MVC的M功能相同,主要封装对数据层的操作,对数据库的数据进行增删改查操作...在浏览器输入我们的ip地址(如果是云服务器,则输入公网地址,如果是本机,则可以输入本机地址:127.0.0.1)。...如果没有将IP地址添加到ALLOWED_HOSTS,则会出现如图错误: 我们需要将IP地址添加到settings.py中的ALLOWED_HOSTS中。

    66510

    项目部署(三)

    2.Dockerfile文件在一个空目录下(只存放和Dockerfile相关的内容) 3.构建后的docker镜像尽量只有一个功能。...特点:打开网页A,浏览完毕后关闭该页面,表示一次访问。 BR:Bounce Rate 跳出率 指一天内访问用户中,用户打开网站后没有做任何事情,一会就离开了的比例。...3.Django中MVC & MTV Django中的MVT模式和程序设计模式MVC有区别吗?答案是肯定的。MVT是遵循MVC框架原则,在之前的基础上进行了很多的改变。...T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。 3.2区别 1、MVC的C(控制器)功能的大部分代码已经融合到了MVT框架中的代码里面了。...这是第一个区别,C基本上就没有了 2、将MVC的V(视图)功能和C(控制器)的部分功能进行了一个组合拆分,整合成MVT中的T(模板)和V(视图) 这是第二个区别,功能的整合和再次拆分 ?

    68140

    百度地图与HT for Web结合的GIS网络拓扑应用

    在《HT for Web整合OpenLayers实现GIS地图应用》篇中介绍了HT for Web与OpenLayers的整合,不少朋友反应国内用得比较多的还是百度地图,虽然HT整合百度地图原理与OpenLayers...百度地图有多种客户端SDK,我们这里用的自然是JavaScript版的API,百度地图的2.0版增加了不少新功能,例如可以自定义地图样式模板,本例中我们特意设置成style:’midnight’的深色背景风格...坐标转换方面从经纬度转换成平面坐标是map.pointToPixel函数,通过node.setPosition(map.pointToPixel(new BMap.Point(lon, lat)));可设置...ht.Node对应的平面逻辑坐标,通过map.pixelToPoint(new BMap.Pixel(x,y))可将平面坐标转换成经纬度坐标,我们在监听节点图元被拖拽结束的endMove需要重新计算当前位置的经纬度时用到...(‘edgeLayer’)使得图元节点全部呈现于连线之上,从这个细节大家可以发现,以前需要在GIS的SDK扩展的功能也可以通过在HT的GraphView实现,地图仅仅是作为背景,业务逻辑代码完全在更灵活强大的

    1.6K40

    OpenLayers入门(二)

    前言 好久不见,距离OpenLayers入门第一篇已经过了很久,为什么迟迟没有后续呢,主要有两个原因,一是因为近期项目里使用地图的部分比较少,二是因为很多时候即使功能做出来了,但是还是不能完全理解,不是很明白的东西除了贴代码之外也写不了啥...区域中间的名字显示可以通过Overlay叠加层来显示,主要是要计算一下显示的位置: import Overlay from 'ol/Overlay'; import { boundingExtent }...,中心点和半径,文档上没有指出半径的单位,第二种方法是百度上搜到的,绘制完经测距测试后是准确的。...添加阴影效果 OpenLayers的样式对象并不支持直接设置阴影效果,所以需要获取到canvas的绘图上下文来自行添加,原理是监听图层的prerender(在一个图层渲染前触发)和postrender(...在一个图层渲染后触发)事件,修改canvas`上下文的绘图样式,对整个图层都是有影响的,所以最好把要添加阴影的要素放到一个单独的图层里: import { Vector as VectorSource

    2.8K51

    基于 HTML5 OpenLayers3 实现 GIS 电信资源管理系统

    _graphView = new ht.graph.GraphView();// 拓扑图组件 我在控件中还给 graphView 拓扑组件添加了一些事件的监听,由于 OpenLayers 和 HT 是两款不同的...js 库,有着各自的交互系统和坐标系,首先我们将某些我们需要获取在 HT 上做的交互事件并停止事件传播到 OpenLayers 上: // 拖拽 node 时不移动地图 var stopGraphPropagation...这里我在子类 GraphViewControl 中重载了父类 ol.control.Control 的 setMap 方法,在此方法中将 HT 的拓扑组件 graphView 添加到 OpenLayers...重设拓扑在这边的意思就是将拓扑图中节点坐标从我们一开始设置在 HT 中的像素坐标重新通过地图的缩放或者移动将地图视图投影中的坐标转为像素坐标设置到节点上,这时候前面存储的业务属性 coord 就派上用场了...,来看看我添加后的最终结果: http://www.hightopo.com/demo/openlayers/ ?

    3.8K61

    常用坐标系

    2007年8月6日 Christopher Schmidt (OpenLayers的重要贡献者之一)在通过一次GIS讨论中为了在OpenLayers中使用谷歌投影,提出给谷歌投影(Web墨卡托)使用一个统一的代号...(已有如54004、41001之类的代号)900913(也形似 Google),并与同年9月11日在OpenLayers的OpenLayers/Layer/SphericalMercator.js中正式使用代号...在 ArcGIS 10.0 版本中,ESRI 正式使用 EPSG:3857 替换之前的 EPSG:102100。...、高德地图、腾讯地图和天地图等也是基于Web墨卡托(由于国内政策的原因,国内地图会有加密要求,一般有两种情况,一种是在 Web墨卡托的基础上经过国家标准加密的国标02坐标系,熟称“火星坐标系”;另一种是在国标的...而加密后的坐标也常被大家称为“火星坐标系统”。     该坐标系的坐标值为经纬度格式,单位为度。     这里的GCJ02经纬度投影,也就是在WGS84经纬度的基础之上,进行GCJ-02加偏。

    3.6K20

    OpenLayers入门(一)

    OpenLayers简介 OpenLayers(https://openlayers.org/)是一个用来帮助开发Web地图应用的高性能的、功能丰富的JavaScript类库,可以满足几乎所有的地图开发需求...、TopoJSON、KML、GML和其他格式的矢量数据 支持OGC制定的WMS、WFS等GIS网络服务规范 支持在移动设备上运行 可以通过css来为地图控件设置样式 面向对象开发方式,在OpenLayers...中万物皆对象 和另一个流行的地图库leaflet不同,openLayers完全是用面向对象的方式开发的,且几乎内置了所有地图开发需要的功能,而leaflet核心库只提供基本功能,其他功能都是通过第三方插件进行扩展...feature上,也可以统一设置在矢量图层上 /* let vector = new VectorLayer({ source: source, style: new Style({.../Draw' // createRegularPolygon方法执行后返回一个创建正方形的geometryFunction // createBox方法执行后返回一个创建长方形的geometryFunction

    5K40

    Django框架学习笔记:(一)认识Django

    MVC:(Model-View-Controller)传统的Web开发的标准设计模型; model:主要封装对数据库层的访问,对数据库中的数据进行增删改查操作; view: 用于封装结果,生产页面展示的...2.MVT django采用的就是MVT模式;MVT:(Model-View-Template)基于传统MVC的djangoMVT框架。...三、Django环境部署 这里我们讲解如何在python环境中安装django模块。首先你要清楚,在默认情况下,安装完python后并没有安装Django包,如果想要使用django则需要手工安装。...创建项目 在pycharm中创建完django项目后,会生成项目名称同名文件夹,里面存储了了项目所有的文件。...项目名称 创建一个django项目,但是我们要知道创建项目仅仅是完成了项目的容器,并没有MVT的架构,而真正的web应用应该放在一个app文件夹中。

    2.5K12

    一、Django的基本用法

    v表示view,用于向用户展示结果 c表示controller,是核心,用于处理请求、获取数据、返回结果 MVT Django是一款python的web开发框架 与MVC有所不同,属于MVT框架 m表示...这种方法可以在SQL等数据库中创建与models.py代码对应的表,不需要自己手动执行SQL。 4....4、视图 在django中,视图对WEB请求进行回应 视图接收reqeust对象作为第一个参数,包含了请求的信息 视图就是一个Python函数,被定义在views.py中 #coding:utf-8...第二行引入HttpResponse,它是用来向网页返回内容的,就像Python中的 print 一样,只不过 HttpResponse 是把内容显示到网页上。...5、URLconf 在Django中,定义URLconf包括正则表达式、视图两部分 Django使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图 注意:只匹配路径部分,即除去域名、参数后的字符串

    1.7K50

    AI智能体学会动物进化法则:李飞飞等提出深度进化RL

    本研究创建的具身智能体可以在平地 (FT)、多变地形 (VT) 和多变地形中的非抓握操作 (MVT) 三种环境中执行巡视(patrol)、点导航(point navigation)、避障(obstacle...以下三张动图分别为具身智能体的避障(上)、斜坡推箱子(中)和控球(下)行为。 ? 避障。 ? 斜坡推箱子。 ? 控球。...每个任务的控制器都是从头学习,从而确保性能差异均来自形态上的不同。 ? 研究者首先测试了这一假设:在更复杂环境中的进化会带来更智能的形态,从而在测试任务中性能更好(参见上图 4b)。...结果表明,在 MVT 环境中进化出的智能体性能在 7 项测试任务中优于在 FT 中进化的智能体;在涉及敏捷性和稳定性的 6 个任务中,VT 智能体在 5 项任务里优于 FT 智能体,在操纵任务中性能相似...证明了更强形式的形态学鲍德温效应 一个多世纪以前,美国心理学家鲍德温(Baldwin)推测存在一种替代机制,通过这种机制,最初在早代进化中终身学得的行为将逐渐在后代(later generation)中成为本能甚至可能通过基因传播

    46120
    领券