CN104462467B - 一种用于电子地图界面的坐标点处理方法及装置 - Google Patents
一种用于电子地图界面的坐标点处理方法及装置 Download PDFInfo
- Publication number
- CN104462467B CN104462467B CN201410788350.9A CN201410788350A CN104462467B CN 104462467 B CN104462467 B CN 104462467B CN 201410788350 A CN201410788350 A CN 201410788350A CN 104462467 B CN104462467 B CN 104462467B
- Authority
- CN
- China
- Prior art keywords
- coordinate points
- icon
- module
- convergence
- aggregate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
Abstract
本发明提供了一种用于电子地图界面的坐标点处理方法及装置,方法如下:步骤一:给每个坐标点添加主键,设置坐标点存储模块,至少将坐标点的位置信息及相应的主键存入坐标点存储模块;步骤二:对其边长与设定边长相等且其中坐标点数量大于1的区域进行创建一个汇聚图标存储模块的操作;对其边长大于或等于设定边长且其中坐标点数量等于1的区域进行创建一个非汇聚图标存储模块的操作;步骤三:遍历所有坐标点存储模块,处理坐标点并输出处理结果,装置包括设置坐标点存储模块的装置和创建非汇聚图标存储模块或汇聚图标存储模块的装置;本发明可以解决如车辆定位服务中,海量的汽车坐标数据信息动态更新等问题,反应快速,结果精确,值得推广。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种一种用于电子地图界面的坐标点处理方法及装置。
背景技术
Gis(地理信息服务系统)图标聚集是一种用于解决大量定位坐标点同时出现在地图上,根据坐标点的经纬度,将靠近在一起的多个图标聚集为单个图标的一种算法,常用于各种Gis地图中,如百度地图,谷歌地图,高德地图等。
现在主流的聚集算法都是用网格算法实现的,即将一个面,按行列分为若干个单元格,并将每个单元格中所有的图标聚集为一个。网格的缺点是代码比较复杂长,利用循环遍历网格计算,时间和空间复杂度高,内存占用多,并且每个网格都要逐一计算,而有些网格其实本身不存在点,那么就会造成一些性能上的浪费。此外,网格算法划分的网格数量相对固定,无法在运行时动态修改网格算法的计算精度和时间,并且难以做到并行网格聚集计算
传统的网格聚集等算法中对坐标点的处理模块,由于算法精度不够,计算耗时长,不能对GIS系统中每次地图缩放,地图位置移动以及坐标点模型变化等事件做出迅速的系统反馈。
发明内容
为解决现有技术缺陷,本发明提供了一种用于电子地图界面的坐标点处理方法及装置,可以解决如车辆定位服务中,海量的汽车坐标数据信息动态更新等问题,可以用于计算平面各种图形(特别是轨迹图形)之间的占用面积比例,也可以解决按区域划分坐标点,对坐标点进行归类的计算。具体技术方案如下:
一种用于电子地图界面的坐标点处理方法,包括如下步骤:
步骤一:给每个坐标点添加主键,设置坐标点存储模块,至少将坐标点的位置信息及相应的主键存入坐标点存储模块,这里的主键为坐标点或图标的唯一标识信息,添加主键的规则只要唯一即可,可以直接用guid(计算机自动生成的全球唯一标识)添加主键;
步骤二:对其边长与设定边长相等且其中坐标点数量大于1的区域进行创建一个汇聚图标存储模块的操作;
对其边长大于或等于设定边长且其中坐标点数量等于1的区域进行创建一个非汇聚图标存储模块的操作;
步骤三:遍历所有坐标点存储模块,处理坐标点并输出处理结果。
所述的步骤二中对其边长与设定边长相等且其中坐标点数量大于1的区域进行创建一个汇聚图标存储模块的操作优选为在该区域选取一个点作为显示坐标点(其方法比如取该划分区域中所有坐标点坐标值的平均值(或取汇聚时的区域的中心点的坐标值)作为该汇聚图标集合的显示坐标点等),添加该显示坐标点的属性(属性至少包括信息窗口和点击事件信息)使其形成汇聚图标,给汇聚图标设置相应的主键,至少将该区域中坐标点所对应的坐标点存储模块、汇聚图标及其主键以及该区域的位置(通常用两点表示,比如左下及右上或左上及右下两点)信息保存在该汇聚图标存储模块中;
所述的步骤二中对其边长大于或等于设定边长且其中坐标点数量等于1的区域进行创建一个非汇聚图标存储模块的操作优选为添加该区域中坐标点的属性(属性至少包括信息窗口和点击事件信息)使其形成非汇聚图标,给非汇聚图标设置相应的主键,至少将该区域中坐标点所对应的坐标点存储模块、非汇聚图标及其主键以及该区域的位置(通常用两点表示)信息保存在该非汇聚图标存储模块中。
相应的,本发明还涉及一种用于电子地图界面的坐标点处理装置,包括:
设置坐标点存储模块的装置:给每个坐标点添加主键,设置坐标点存储模块,至少将坐标点的位置信息及相应的主键存入坐标点存储模块(主键:坐标点或图标的唯一标识信息);
创建非汇聚图标存储模块或汇聚图标存储模块的装置:对其边长与设定边长相等且其中坐标点数量大于1的区域进行创建一个汇聚图标存储模块的操作;
对其边长大于或等于设定边长且其中坐标点数量等于1的区域进行创建一个非汇聚图标存储模块的操作;
处理坐标点的装置:遍历所有坐标点存储模块,处理坐标点并输出处理结果。
所述的电子地图界面优选为GIS地理信息系统。
本发明与现有技术相比具有以下技术效果:本发明用于电子地图界面的处理坐标点的方法及装置,通过高效能的算法和并行计算的解决方案,可以满足GIS系统中对聚集坐标点进行高性能的计算,做出快速的反馈并显示在GIS系统中,能够实现一些以往不能实现的功能。
附图说明
图1为添加坐标点流程图;
图2为删除坐标点流程图;
图3为更新坐标点流程图;
图4为本发明执行效果示意图;
图5为GIS坐标聚集模块类图;
图6为本发明实现功能模块的模型层示意图。
具体实施方式
传统的网格聚集等算法中对坐标点的处理,由于算法精度不够,计算耗时长,不能对GIS系统中每次地图缩放,地图位置移动以及坐标点模型变化等事件做出迅速的系统反馈。而使用本文提供的用于电子地图界面的处理坐标点的方法及装置,通过高效能的算法和并行计算的解决方案,可以满足GIS系统中对聚集坐标点进行高性能的计算,做出快速的反馈并显示在GIS系统中,能够实现一些以往不能实现的功能。
本发明公开一种用于电子地图界面的坐标点处理方法及装置,方法包括如下步骤:
步骤一:给每个坐标点添加主键,设置坐标点存储模块,至少将坐标点的位置信息及相应的主键存入坐标点存储模块(主键:坐标点或图标的唯一标识信息);
步骤二:对其边长与设定边长相等且其中坐标点数量大于1的区域进行创建一个汇聚图标存储模块的操作;
对其边长大于或等于设定边长且其中坐标点数量等于1的区域进行创建一个非汇聚图标存储模块的操作;
步骤三:遍历所有坐标点存储模块,处理坐标点并输出处理结果。
所述的步骤二中对其边长与设定边长相等且其中坐标点数量大于1的区域进行创建一个汇聚图标存储模块的操作优选为在该区域选取一个点作为显示坐标点,添加该显示坐标点的属性(属性至少包括信息窗口和点击事件信息)使其形成汇聚图标,给汇聚图标设置相应的主键,至少将该区域中坐标点所对应的坐标点存储模块、汇聚图标及其主键以及该区域的位置(通常用两点表示,比如左下及右上或左上及右下两点)信息保存在该汇聚图标存储模块中;
所述的步骤二中对其边长大于或等于设定边长且其中坐标点数量等于1的区域进行创建一个非汇聚图标存储模块的操作优选为添加该区域中坐标点的属性(属性至少包括信息窗口和点击事件信息)使其形成非汇聚图标,给非汇聚图标设置相应的主键,至少将该区域中坐标点所对应的坐标点存储模块、非汇聚图标及其主键以及该区域的位置(通常用两点表示)信息保存在该非汇聚图标存储模块中。
实施例一
所述的步骤三中处理坐标点的操作具体为查找坐标点:
遍历所有坐标点存储模块查找需查找的坐标点的主键,
若不存在则结束;
若存在则输出存储该坐标点存储模块的汇聚图标模块或非汇聚图标模块中存储的汇聚图标或非汇聚图标,或者输出该汇聚图标或非汇聚图标的主键。
实施例二
所述的步骤三中处理坐标点的操作具体为添加坐标点:
遍历所有坐标点存储模块查找需添加的坐标点的主键,
若存在则更新该坐标点(比如将新的位置信息存入坐标点存储模块);
若不存在则遍历所有汇聚图标模块中的区域的位置(通常用两点表示)信息,并判断该坐标点是否属于其中一个汇聚图标模块所对应的区域,
如果属于其中一个汇聚图标模块所对应的区域,则设置该坐标点的坐标点存储模块(添加该坐标的主键,至少将该坐标点的位置信息及相应的主键存入该坐标点存储模块),并更新其所在区域对应的汇聚图标(如果显示坐标点的选取与该汇聚图标模块中所有坐标点的位置信息有关则更新显示坐标点,更新显示坐标点的属性,比如信息窗口的变化等)及汇聚图标模块(将该坐标点存储模块以及更新后的汇聚图标存入该汇聚图标模块);
如果不属于任何一个汇聚图标模块所对应的区域则进一步;
遍历所有非汇聚图标模块中的区域的位置(通常用两点表示)信息,并判断该坐标点是否属于其中一个非汇聚图标模块所对应的区域,
如果属于其中一个非汇聚图标模块所对应的区域,则设置该坐标点的坐标点存储模块(添加该坐标的主键,至少将该坐标点的位置信息及相应的主键存入该坐标点存储模块),并将其所在区域对应的非汇聚图标转换为汇聚图标(如果显示坐标点的选取与该汇聚图标模块中所有坐标点的位置信息有关则更新显示坐标点,更新显示坐标点的属性,比如信息窗口的变化等),非汇聚图标模块转换为汇聚图标模块(将该坐标点存储模块以及更新后的汇聚图标存入该汇聚图标模块);
如果不属于任何一个非汇聚图标模块所对应的区域则设置该坐标点的坐标点存储模块(添加该坐标的主键,至少将该坐标点的位置信息及相应的主键存入该坐标点存储模块),并添加一个相应的非汇聚图标(添加该区域中坐标点的属性(属性至少包括信息窗口和点击事件信息)使其形成非汇聚图标,给非汇聚图标设置相应的主键)及非汇聚图标模块(至少将该区域中坐标点所对应的坐标点存储模块、非汇聚图标及其主键以及该区域的位置(通常用两点表示)信息保存在该非汇聚图标存储模块中)。
实施例三
所述的步骤三中处理坐标点的操作具体为删除坐标点:
遍历所有坐标点存储模块查找需删除的坐标点主键,
若不存在则结束;
若存在,则判断保存该坐标点存储模块的是汇聚图标模块还是非汇聚图标模块;
若是非汇聚图标模块,则直接删除该坐标存储模块及其对应的非汇聚图标、非汇聚图标模块;
若是汇聚图标模块,则遍历其中所有坐标点存储模块中坐标点的主键的信息,删除与需删除的坐标点主键一致的坐标点存储模块,并根据坐标点存储模块的变化更新其所属区域的汇聚图标及汇聚图标模块(若删除该坐标点存储模块后该区域对应的汇聚图标模块只剩下一个坐标点存储模块,则按步骤二创建一个非汇聚图标存储模块的操作将原来的汇聚图标和汇聚图标模块转换为非汇聚图标及非汇聚图标模块,若删除后该区域对应的汇聚图标模块还剩下两个以上坐标点存储模块,则按步骤二创建一个汇聚图标存储模块的操作更新原有的汇聚图标和汇聚图标模块)。
实施例四
所述的步骤三中处理坐标点的操作具体为更新坐标点:
遍历所有坐标点存储模块查找需更新的坐标点的主键,
若不存在则结束;
若存在,则判断保存该坐标点存储模块的是汇聚图标模块还是非汇聚图标模块;
若是非汇聚图标模块,则直接更新该坐标点存储模块并按步骤二中创建一个非汇聚图标存储模块的操作更新其对应的非汇聚图标及非汇聚图标模块;
若是汇聚图标模块,则遍历该汇聚模块中的坐标点存储模块,找到所存储的坐标点主键与需更新的坐标点的主键一致的坐标点存储模块,更新该坐标点存储模块并按步骤二中创建一个汇聚图标存储模块的操作更新其对应的汇聚图标及汇聚图标模块。
实施例五
本发明常用于GIS系统,模块包含聚集坐标和非聚集坐标状态管理组件(MarkerManger),原始数据加载管理组件(DataProvider),最后使用facade模式将上述两个模块进行封装,提供统一的方法调用类的聚集算法服务组件(ConvergencedService)。聚集算法服务组件(ConvergencedService)是对网格算法等图标聚集功能模块提供数据类型的支持。
术语介绍:
GIS:用于地理信息服务的地理信息系统;
容器(panel):存放和显示图标的容器,在GIS系统中,容器指的就是地图(Map);
区域(area):根据容器的不同,区域的概念也不同,如果容器为地图,则区域为地图平面上的一部分面积;
坐标点(point):这里指的是二维平面的一个点,通常用X、Y来表示它的位置;
多个坐标点(points);
图标(marker):根据坐标在容器中显示的坐标点,GIS中就是现在在地图中的一个个图钉,信息点等图标;
多个图标(markers);
汇聚图标(IsConvergencedMarker):由多个坐标点合并显示为一个图标;
非汇聚图标(UnConvergencedMarker):由一个坐标点显示的图标;
算法粒度(accuracy):坐标聚集计算中控制计算完成的阀值,该值可以控制算法的精度;一般指坐标点所在平面Area的长度宽度单位。
:坐标状态管理组件(MarkerManger)
成员:
非汇聚图标数据集UnConvergencedMarkerCollection(私有变量,类型为UnConvergencedMarker);
汇聚图标数据集IsConvergencedMarkerCollection(私有变量,类型为IsConvergencedMarker)
功能:
查找图标汇聚或非汇聚的图标marker;
通过坐标数据集主键(pointId)查找marker主键(markerId);
添加坐标数据处理(addPointHandle);
删除坐标数据处理(deletePointHandle);
更新坐标处理(updatePointHandle);
通过坐标数据集主键(pointId)判断marker是否在出现在容器(Panel)中;
添加所有marker到容器(Panel)中;
删除所有容器(Panel)中的图标(marker);
2:原始数据加载管理组件(DataProvider)
成员:
所有坐标点集(allPoints)
当前坐标点集(currPoints)
原始json数据集(originalJson)
方法:
加载数据(LoadData);
获取全部坐标点数据集(allPointModels);
获取当前坐标点集(allPointModels);
获取坐标点数据集模型;
插入坐标点数据模型(pointModel)到当前数据集模型(currPointModels);
从当前数据集(currPointModels)中删除一个/多个坐标点数据模型(pointModel);
从当前数据集(currPointModels)中更新一个/多个坐标点数据模型(pointModel);
3聚集算法服务组件ConvergencedService
此模块的功能是使用facade模式,将上述的四个功能模块进行统一封装,对外部提供一个统一的接口进行调用,减少外部类对于内部的了解,较少模块间的耦合,利于算法的优化和维护;
方法:
加载数据;
配置聚集计算精度;
执行汇聚计算;
添加坐标点;
删除坐标点;
更新坐标点;
使用本发明提供坐标聚集功能模块,可以解决二维平面内聚集图标非聚集图标管理等功能,常用于GIS系统中,有效的提高了GIS坐标点聚集计算的耗时,因为此模块的递归计算属性,算法高性能、高效率,并行计算的优点,所以模块可以处理大量坐标点同时出现的情况,并且可以实现实时、动态的更新聚集坐标点信息,在运行时动态切换聚集算法的计算精度(accuracy)这些都是以往无法实现的。
第一部分:实现坐标点管理功能模块的模型层(如图5所示)
实现容器类(Panel)例如GIS系统中,容器就是Map类,可以直接使用谷歌,微软,苹果等提供的Map类,也可以使用第三方的地图库如Gmap,FGMap等提供的Map类。
实现平面类(Area):推荐使用左下坐标点和右上坐标点2个点来表示一个简单的矩形平面。
实现点类(Point):用X坐标和Y坐标表示,若容器(Area)为Map,则直接使用经度纬度坐标表示。
实现图标类(Marker):这个类就是点(Point)在容器中显示类,若在地图中,就是marker标记,通常marker标记有如下几个属性:经度(lng),纬度(lat),图标(Icon),信息窗口(InfoWindows),还会有如下常用事件,如:点击事件(Click)等。Marker的实现与容器有关,容器必须支持marker类的在容器中显示和删除的基本方法,如addMarker,deleteMarker等。若容器是选择类GIS的类库,则都有对应的Marker类,读者也可以从marker类继承,添加自己的扩展属性和扩展事件。
实现汇聚图标模型(IsConvergencedMarker):从图标类(Marker)继承,必须至少扩展2个属性一个方法,聚集区域为汇聚为图标时对应汇聚区域信息,坐标集为汇聚成图标的坐标点(point)的集合(points)。更新方法(update)则是需要根据坐标点集合(points)的变化更新自身的变化。
实现非汇聚图标模型(UnConvergencedMarker):从图标类(Marker)继承,必须至少扩展个属性一个方法,显示坐标点为汇聚成图标的坐标点(point)。更新方法(update)则是需要根据坐标点(point)变化更新自身的变化。
第二部分:实现聚集坐标点管理功能模块(如图6所示)
1.坐标状态管理组件(MarkerManger)的实现:
成员:
非汇聚图标数据集UnConvergencedMarkerCollection(私有变量,类型为UnConvergencedMarker类的集合);
汇聚图标数据集IsConvergencedMarkerCollection(私有变量,类型为IsConvergencedMarker类的集合);
功能:
查找图标汇聚或非汇聚的图标marker;
参数: (一个/多个)坐标点数据集主键(pointId)或者(一个/多个)图标主键(markerId);
返回值:(一个/多个)图标(marker);
实现方法:在图标模型(MarkerModel)实例化的构造函数中传入坐标点模型(PointModel),并将坐标点模型(PointModel)的主键(pointId)存入图标模型MarkerModel中;通过遍历非汇聚图标(UnConvergencedMarkerCollection)数据集、汇聚图标(IsConvergencedMarkerCollection)数据集,找出对应的Marker并返回,因为聚集系统中坐标点(point)和图标(marker)的关系是一对多,所以这里不会出现冲突的情况;
通过坐标点数据集主键(pointId)查找marker主键(markerId);
参数:数据集主键(pointId);
返回:marker主键(markerId);
实现方法:类似上一个方法,只是返回值为图标(marker)的主键(markId);
添加坐标点数据处理(addPointHandle);
参数: 坐标数据集主键(pointId);
实现方式:首先坐标点数据集主键(pointId)对应的图标(marker),若存在,则调用本组件中的方法“UpdateMarker”。若不存在,则遍历汇聚图标(IsConvergencedMarkerCollection)集合中保存的汇聚区域(area),并判断point是否有可能属于其中的一个area中。若不存在这个area,则调用addUncongergend方法添加一个非聚集图标(UnCongergendMarker),若存在这个area,则找到这个area所对应的图标,
若图标是一个聚集图标(IsCongergendMarker),则将坐标点(point)加入该聚集图标(IsCongergendMarker)的坐标点集合属性(points),并更新对应的聚集图标(IsCongergendMarker)相应的外观属性,若图标是一个非聚集图标,则使用非聚集图标的坐标数据,加上新加入的坐标信息,合并形成一个汇聚图标,并删除原先的非汇聚图标。
流程图如图1所示。
删除坐标点数据处理(deletePointHandle);
参数: 坐标数据集主键(pointId)或坐标数据集(pointModel);
实现方式:首先坐标数据集主键(pointId)对应的图标(marker),若不存在,则结束方法。若存在,则判断对应的marker是聚集图标(IsConvergencedMarker)还是非聚集图标(UnConvergencedMarker)。若是非聚集图标(UnConvergencedMarker)则直接删除,若是聚集图标,则遍历汇聚图标(IsConvergencedMarkerCollection)中保存的坐标数据集合(points),删除与参数坐标数据集模型(pointModel)的主键(pointId)一致的坐标数据(point),并根据坐标数据集合(points)的变化更新非聚集图标(UnConvergencedMarker)的变化。
流程图如图2所示。
更新坐标点处理(updatePointHandle);
参数: 坐标点数据主键(pointId)或者是坐标点数据集模型(pointModel);
实现方式:首先通过数据集模型(pointModel)的主键(pointId)去查找到对应的图标(marker),若不存在marker则忽略,若存在,则判断marker是非汇聚图标(UnConvergencedMarker)还是汇聚图标(IsConvergencedMarker),若是非汇聚图标(UnConvergencedMarker)则直接更新,若为非汇聚图标,则遍历汇聚图标(IsConvergencedMarkerCollection)中保存的坐标点数据集合(points),找到与参数坐标点数据集模型(pointModel)的主键(pointId)一致的坐标点数据(point),并更新其变化的属性。
流程图如图3所示。
通过坐标点数据集主键(pointId)判断marker是否在出现在容器(Panel)中;
参数:坐标点数据集主键(pointId)或坐标点的主键(markerId);
返回:bool;
实现方式:调用“查找图标汇聚或非汇聚的图标marker”的方法,找到对应的图标(marker),并返回图标(marker的是否添加的bool值);
添加所有marker到容器(Panel)中;
实现方式:遍历非汇聚图标(UnConvergencedMarkerCollection)数据集、汇聚图标(IsConvergencedMarkerCollection)数据集,调用容器(panel)的“添加图标到容器”方法,将图标添加到容器中;
删除所有容器(Panel)中的图标(marker);
实现方式:遍历非汇聚图标(UnConvergencedMarkerCollection)数据集、汇聚图标(IsConvergencedMarker)数据集,调用容器(panel)的“在容器中删除图标”方法,将图标(marker)从容器中删除。
:原始数据加载管理组件(DataProvider)
成员:
所有坐标点集(allPoints);
当前坐标点集(currPoints);
原始json数据集(originalJson);
方法:
加载数据(LoadData);
参数1:加载数据的url,或直接传入坐标点数据集数据;
参数2(可选):回叫函数,数据加载成功后执行回叫;
实现方法:这里可以实现的方式很多,总体来说此处的功能就是获取原始的坐标点数据集(points),可以通过http请求也可以通过其他协议请求,也可以通过其他方法直接将数据传入DataProvider组件;数据加载成功后执行回叫函数,并将获得的数据存入所有坐标点集(allPoints);
获取全部坐点标数据集(allPointModels);
实现方法:返回成员-所有坐标点集(allPoints);
获取当前坐标点集(allPointModels);
实现方法:返回成员-当前坐标点集(currPoints);
获取坐标点数据集模型;
参数:一个/多个坐标点数据集主键(pointId);
返回值:一个/多个坐标点数据集模型(pointModel);
实现方式:遍历全部坐标点数据集合(allPointModels)将符合条件的坐标点数据集模型(pointModel)回传;
插入坐标数据模型(pointModel)到当前数据集模型(currPointModels);
实现方式:currPointModels.add(pointModel);
从当前数据集(currPointModels)中删除一个/多个坐标点数据模型(pointModel);
实现方式:currPointModels.remove(pointModel);
从当前数据集(currPointModels)中更新一个/多个坐标点数据模型(pointModel);
实现方式:找出currPointModels中主键与参数pointModel对应的那个点,并替换。
聚集算法服务组件ConvergencedService
此模块的功能是使用facade模式,将上述的两个功能模块进行统一封装,对外部提供一个统一的接口进行调用,减少外部类对于内部的了解,较少模块间的耦合,利于算法的优化和维护。
方法:
加载数据;
参数1:数据源获数据源获取地址;
参数2:回叫函数,获取地址成功后返回;
实现方式:调用原始数据加载管理组件(DataProvider)的“加载数据LoadData”方法,
添加坐标点;
参数:一个/多个坐标点数据(point)的主键pointId;
实现方法:首先调用坐标状态管理组件(MarkerManger)中“添加坐标点(addPointHandler)”的方法;
删除坐标点;
参数:一个/多个坐标点数据(point)的主键pointId;
实现方法:首先调用坐标状态管理组件(MarkerManger)中“删除坐标点(deletePointHandler)”的方法;
更新坐标点;
参数:一个/多个坐标点数据(point)的主键pointId;
实现方法:首先调用坐标状态管理组件(MarkerManger)中“更新坐标点(updatePointHandler)”的方法;
图4是本发明的执行效果示意图,由图可以看出本发明的定位效果,信息准确内容充分详细,可提供完整的定位信息,值得推广。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。
Claims (5)
1.一种用于电子地图界面的坐标点处理方法,其特征在于,包括如下步骤:
步骤一:给每个坐标点添加主键,设置坐标点存储模块,至少将坐标点的位置信息及相应的主键存入坐标点存储模块;
步骤二:对其边长与设定边长相等且其中坐标点数量大于1的区域进行创建一个汇聚图标存储模块的操作;
对其边长大于或等于设定边长且其中坐标点数量等于1的区域进行创建一个非汇聚图标存储模块的操作;
步骤三:遍历所有坐标点存储模块,处理坐标点并输出处理结果;
所述的步骤二中对其边长与设定边长相等且其中坐标点数量大于1的区域进行创建一个汇聚图标存储模块的操作具体为在该区域选取一个点作为显示坐标点,添加该显示坐标点的属性使其形成汇聚图标,给汇聚图标设置相应的主键,至少将该区域中坐标点所对应的坐标点存储模块、汇聚图标及其主键以及该区域的位置信息保存在该汇聚图标存储模块中;
所述的步骤二中对其边长大于或等于设定边长且其中坐标点数量等于1的区域进行创建一个非汇聚图标存储模块的操作具体为添加该区域中坐标点的属性使其形成非汇聚图标,给非汇聚图标设置相应的主键,至少将该区域中坐标点所对应的坐标点存储模块、非汇聚图标及其主键以及该区域的位置信息保存在该非汇聚图标存储模块中;
所述的步骤三中处理坐标点的操作具体为:
遍历所有坐标点存储模块查找需查找的坐标点的主键,
若不存在则结束;
若存在则输出存储该坐标点存储模块的汇聚图标模块或非汇聚图标模块中存储的汇聚图标或非汇聚图标,或者输出该汇聚图标或非汇聚图标的主键。
2.根据权利要求1所述的一种用于电子地图界面的坐标点处理方法,其特征在于,所述的步骤三中处理坐标点的操作具体为:
遍历所有坐标点存储模块查找需添加的坐标点的主键,
若存在则更新该坐标点;
若不存在则遍历所有汇聚图标模块中的区域的位置信息,并判断该坐标点是否属于其中一个汇聚图标模块所对应的区域,
如果属于其中一个汇聚图标模块所对应的区域,则设置该坐标点的坐标点存储模块,并更新其所在区域对应的汇聚图标及汇聚图标模块,
如果不属于任何一个汇聚图标模块所对应的区域则进一步遍历所有非汇聚图标模块中的区域的位置信息,并判断该坐标点是否属于其中一个非汇聚图标模块所对应的区域,
如果属于其中一个非汇聚图标模块所对应的区域,则设置该坐标点的坐标点存储模块,并将其所在区域对应的非汇聚图标转换为汇聚图标,非汇聚图标模块转换为汇聚图标模块;
如果不属于任何一个非汇聚图标模块所对应的区域则设置该坐标点的坐标点存储模块,并添加一个相应的非汇聚图标及非汇聚图标模块。
3.根据权利要求1所述的一种用于电子地图界面的坐标点处理方法,其特征在于,所述的步骤三中处理坐标点的操作具体为:
遍历所有坐标点存储模块查找需删除的坐标点主键,
若不存在则结束;
若存在,则判断保存该坐标点存储模块的是汇聚图标模块还是非汇聚图标模块;
若是非汇聚图标模块,则直接删除该坐标存储模块及其对应的非汇聚图标、非汇聚图标模块;
若是汇聚图标模块,则遍历其中所有坐标点存储模块中坐标点的主键的信息,删除与需删除的坐标点主键一致的坐标点存储模块,并根据坐标点存储模块的变化更新其所属区域的汇聚图标及汇聚图标模块。
4.根据权利要求1所述的一种用于电子地图界面的坐标点处理方法,其特征在于,所述的步骤三中处理坐标点的操作具体为:
遍历所有坐标点存储模块查找需更新的坐标点的主键,
若不存在则结束;
若存在,则判断保存该坐标点存储模块的是汇聚图标模块还是非汇聚图标模块;
若是非汇聚图标模块,则直接更新该坐标点存储模块并按步骤二中创建一个非汇聚图标存储模块的操作更新其对应的非汇聚图标及非汇聚图标模块;
若是汇聚图标模块,则遍历该汇聚模块中的坐标点存储模块,找到所存储的坐标点主键与需更新的坐标点的主键一致的坐标点存储模块,更新该坐标点存储模块并按步骤二中创建一个汇聚图标存储模块的操作更新其对应的汇聚图标及汇聚图标模块。
5.根据权利要求1-4之一所述的一种用于电子地图界面的坐标点处理方法,其特征在于,所述的电子地图界面为GIS地理信息系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410788350.9A CN104462467B (zh) | 2014-12-17 | 2014-12-17 | 一种用于电子地图界面的坐标点处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410788350.9A CN104462467B (zh) | 2014-12-17 | 2014-12-17 | 一种用于电子地图界面的坐标点处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104462467A CN104462467A (zh) | 2015-03-25 |
CN104462467B true CN104462467B (zh) | 2017-12-22 |
Family
ID=52908502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410788350.9A Active CN104462467B (zh) | 2014-12-17 | 2014-12-17 | 一种用于电子地图界面的坐标点处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104462467B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574194B (zh) * | 2015-12-28 | 2018-12-04 | 江苏鸿信系统集成有限公司 | 一种用于电子地图界面的坐标点处理方法及装置 |
CN111024113A (zh) * | 2019-12-05 | 2020-04-17 | 深圳震有科技股份有限公司 | 基于GMap的导航路径方向箭头绘制方法及系统、设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802492A (en) * | 1994-06-24 | 1998-09-01 | Delorme Publishing Company, Inc. | Computer aided routing and positioning system |
CN1459742A (zh) * | 2002-05-21 | 2003-12-03 | 国际商业机器公司 | 图中点标注位置确定装置、终端设备、系统及其方法 |
CN103021262A (zh) * | 2012-12-05 | 2013-04-03 | 广东威创视讯科技股份有限公司 | 地图标注的绘制处理方法和系统 |
-
2014
- 2014-12-17 CN CN201410788350.9A patent/CN104462467B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802492A (en) * | 1994-06-24 | 1998-09-01 | Delorme Publishing Company, Inc. | Computer aided routing and positioning system |
CN1459742A (zh) * | 2002-05-21 | 2003-12-03 | 国际商业机器公司 | 图中点标注位置确定装置、终端设备、系统及其方法 |
CN103021262A (zh) * | 2012-12-05 | 2013-04-03 | 广东威创视讯科技股份有限公司 | 地图标注的绘制处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104462467A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | Geographical information system parallelization for spatial big data processing: a review | |
CN108182650B (zh) | 一种城市空间北斗网格标识与仿真可视化系统 | |
CN105043379B (zh) | 一种基于时空约束的景区浏览路径规划方法、装置 | |
CN105574194B (zh) | 一种用于电子地图界面的坐标点处理方法及装置 | |
Huang et al. | A bimodal Gaussian inhomogeneous Poisson algorithm for bike number prediction in a bike-sharing system | |
CN103034737A (zh) | 电子地图的纠偏方法 | |
CN108737492A (zh) | 一种基于大数据系统的导航与位置服务的方法 | |
CN101488158A (zh) | 一种基于道路元素的路网建模方法 | |
CN103778191B (zh) | 一种顾及空间邻近关系的矢量等高线数据划分方法 | |
CN104573140A (zh) | 一种应用于虚拟仿真的分层动态路径规划方法 | |
CN102073645B (zh) | 虚拟城市系统及其运行方法 | |
CN106202245A (zh) | 基于数据联动的产业地图系统项目专题展示方法及系统 | |
CN111859187B (zh) | 基于分布式图数据库的poi查询方法、装置、设备及介质 | |
CN102158533B (zh) | 基于QoS的分布式web服务选择方法 | |
Ruan et al. | Map navigation system based on optimal Dijkstra algorithm | |
CN104598548B (zh) | 一种分析农产品价格空间关联性的方法及装置 | |
CN104462467B (zh) | 一种用于电子地图界面的坐标点处理方法及装置 | |
CN103167032B (zh) | 地图辅助的室内定位后台服务系统 | |
CN104680782A (zh) | 一种交通控制云端系统 | |
CN105023089A (zh) | 基于gis平台的城市管理数据监测系统及其方法 | |
Haklay | Map Calculus in GIS: a proposal and demonstration | |
CN103077273B (zh) | 建立在网络电子地图上的工程在线选线交互设计系统及方法 | |
CN103886739A (zh) | 基于大规模实时交通指数系统的个性化服务平台 | |
CN106355315A (zh) | 一种旅游管理服务集成系统 | |
Xie | Research on logistics facilities location based on GIS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 210005 No. 268, Hanzhoung Road, Nanjing, Jiangsu Patentee after: CLP Hongxin Information Technology Co., Ltd Address before: 210005 No. 268, Hanzhoung Road, Nanjing, Jiangsu Patentee before: Jiangsu Hongxin System Integration Co., Ltd. |