基于时空业务的地名身份号码编码器、编码方法及设备与流程

文档序号:15047420发布日期:2018-07-27 22:59阅读:175来源:国知局
本发明涉及一种基于时空业务的地名身份号码(地名id)编码器、编码方法及设备,属于地理空间信息组织、地理信息系统领域。
背景技术
:目前地名身份号码编码方法主要分为两类。一类是顾及地理实体语义信息的编码方式。该类编码方式中包含地理对象的分类信息,但该类编码方式通常采用行政区划分级方式描述空间信息,而缺乏对精确位置的描述能力。而且,地名按其类型涉及多个业务管理部门,各部门按照本部门需要,独自管理编码。所以,出现常见的问题:同一地名地理实体对象,在不同系统里存在不同的代码。另一类是空间位置编码方式,如全球离散格网编码模型。这类编码具有较强的空间位置描述能力,其所描述的地理实体位置信息可精确至厘米级。但缺乏地理对象的语义信息,对地理对象所属的类别缺少明确的描述。传统的地名id编码方法无法兼顾地名id的语义和空间位置信息一体化,至地名信息更新、关联、交换共享困难。技术实现要素:发明目的:针对现有技术中存在的问题,本发明提供一种基于时空业务的地名身份号码编码器、编码方法及计算机设备,实现不仅能按行业分类、分时间、分地域的分布式地编制地名身份号码,而且又能实现号码体系的统一性,提高了地名信息跨系统跨平台的关联、交换、共享的效率。技术方案:为实现上述发明目的,本发明采用如下技术方案:一种基于时空业务的地名身份号码编码器,包括:地名对象坐标采集模块,用于采集地名对象信息,所述信息包括地名的地理实体辖区边界的坐标位置和名称信息;基础地理信息数据库模块,用于存储包含大洲和国际公有领域代码、国家和地区名称代码、行政区划代码、县级以下行政区划代码的地理实体的几何包络中心、辖区边界的坐标地理信息数据;业务分类类型信息库模块,用于存储地理实体的地名业务分类信息数据;空间网格规则信息库模块,用于存储地球网格剖分参数的信息数据;日期产生模块,用于以人工或自动方式产生年月日为内容的生命周期信息;顺序计数库模块,用于记录同地域、同业务、同一天内的已编制地名的累积计数;校验规则信息数据库模块,用于存储校验规则信息的数据;以及,计算编码模块,用于根据地名地理实体的辖区边界数据计算获取所属大洲和国际公有领域代码、国家和地区名称代码、行政区划代码和县级以下行政区划代码,根据地名地理实体的地名信息数据获取所属地名地理属性类别代码,根据地名地理实体的辖区边界数据计算得到空间网格代码,基于上述代码和日期数据以及同地域、同业务、同一天内的顺序计数代码,按照预设的格式组合生成校验代码,得到最终的地名身份号码。作为优选,所述基于时空业务的地名身份号码编码器中的计算编码模块包括:大洲和国际公有领域代码产生单元,用于将采集的地名地理实体的辖区边界数据与基础地理信息数据库中存储的大洲和国际公有领域代码对应的辖区边界数据进行比较,得到所属大洲和国际公有领域代码;国家和地区名称代码产生单元,用于将采集的地名地理实体的辖区边界数据与基础地理信息数据库中存储的国家和地区名称代码对应的辖区边界数据进行比较,得到所属国家和地区名称代码;行政区划代码产生单元,用于将采集的地名地理实体的辖区边界数据与基础地理信息数据库中存储的行政区划代码对应的辖区边界数据进行比较,得到所属行政区划代码;县级以下行政区划代码产生单元,用于将采集的地名地理实体的辖区边界数据与基础地理信息数据库中存储的县级以下行政区划代码对应的辖区边界数据进行比较,得到所属县级以下行政区划代码;地理属性类别代码产生单元,用于根据采集的地名地理实体的地名信息数据从业务分类类型信息库中获取存储的业务分类信息,得到相应的所属地名地理属性类别代码;空间网格代码产生单元,用于根据采集的地名地理实体的辖区边界数据提取经度最大值、经度最小值、纬度最大值、纬度最小值,计算得地名地理实体的几何包络中心数据,再计算得空间网格代码;生命周期代码产生单元,用于从日期产生模块中获取日期数据;顺序计数代码产生单元,用于根据已编制地名的情况生成顺序计数代码数据;校验代码产生单元,用于对按照预设格式组合成的代码字符串根据设定的校验规则计算获取校验代码数据。作为优选,所述基于时空业务的地名身份号码编码器中,空间网格代码按照如下规则生成:先根据采集的地名地理实体边界辖区数据的经度最大值xmax、经度最小值xmin、纬度最大值ymax、纬度最小值ymin,计算得到地名地理实体的几何包络中心坐标x和y数据,其中x=(xmax+xmin)/2,y=(ymax+ymin)/2;再根据如下公式计算得到经度网格gx和纬度网格gy:当x处于东经时:gx=(取整)[x/360]*65536当x处于西经时:gx=(取整)[(x+180)/360]*65536当y处于北纬时:gy=(取整)[(90-y)/180]*32768当y处于南纬时:gy=(取整)[(90+y)/180]*32768得gx=bx15bx14bx13bx12bx11bx10bx9bx8bx7bx6bx5bx4bx3bx2bx1bx0;得gy=by15by14by13by12by11by10by9by8by7by6by5by4by3by2by1by0;最后得到空间网格代码g=bx15by15bx14by14bx13by13bx12by12bx11by11bx10by10bx9by9bx8by8bx7by7bx6by6bx5by5bx4by4bx3by3bx2by2bx1by1bx0by0;其中,bxi表示经度网格第i比特位;byi表示纬度网格第i比特位。作为优选,所述基于时空业务的地名身份号码编码器中,顺序计数代码按照如下规则生成:根据地名的大洲和国际公有领域代码、国家和地区名称代码、行政区划代码、县级以下行政区划代码、地名地理属性类别代码、空间网格代码均相同的条件下,在同一天内顺序计数库模块计数器的累计值加1,得顺序计数代码数据。作为优选,所述基于时空业务的地名身份号码编码器中,校验代码按照如下规则生成:根据校验字符系统mod16-3校验规则,由大洲和国际公有领域代码、国家和地区名称代码、行政区划代码、县级以下行政区划代码、地名地理属性类别代码、空间网格代码、日期代码、顺序计数代码数据,计算获取校验代码数据。本发明另一方面提供的一种基于时空业务的地名身份号码编码方法,包括如下步骤:(1)将采集的地名地理实体的辖区边界数据与基础地理信息数据库中存储的大洲和国际公有领域代码对应的辖区边界数据、国家和地区名称代码对应的辖区边界数据、行政区划代码对应的辖区边界数据、县级以下行政区划代码对应的辖区边界数据分别进行比较,分别得到所属大洲和国际公有领域代码、国家和地区名称代码、行政区划代码和县级以下行政区划代码;(2)根据采集的地名地理实体的地名信息数据,与业务分类类型信息库中存储的业务分类信息进行比较,得到相应的所属地名地理属性类别代码;(3)根据采集的地名地理实体的辖区边界数据提取经度最大值、经度最小值、纬度最大值、纬度最小值,计算得地名地理实体的几何包络中心数据,再计算得空间网格代码;(4)产生生命周期数据,对于历史上已存在的地名地理实体对象则输入设定日期,对于当前建成或官方批准的地名地理实体对象则依从系统日期;(5)将由步骤(1)至(4)生成的数据按照预设的格式组合并产生顺序计数代码及校验代码,得到最终的地名身份号码。作为优选,所述步骤(3)中,空间网格代码的计算方法为:先根据采集的地名地理实体边界辖区数据的经度最大值xmax、经度最小值xmin、纬度最大值ymax、纬度最小值ymin,计算得到地名地理实体的几何包络中心坐标x和y数据,其中x=(xmax+xmin)/2,y=(ymax+ymin)/2;再根据如下公式计算得到经度网格gx和纬度网格gy:当x处于东经时:gx=(取整)[x/360]*65536当x处于西经时:gx=(取整)[(x+180)/360]*65536当y处于北纬时:gy=(取整)[(90-y)/180]*32768当y处于南纬时:gy=(取整)[(90+y)/180]*32768得gx=bx15bx14bx13bx12bx11bx10bx9bx8bx7bx6bx5bx4bx3bx2bx1bx0;得gy=by15by14by13by12by11by10by9by8by7by6by5by4by3by2by1by0;最后得到空间网格代码g=bx15by15bx14by14bx13by13bx12by12bx11by11bx10by10bx9by9bx8by8bx7by7bx6by6bx5by5bx4by4bx3by3bx2by2bx1by1bx0by0;其中bxi表示经度网格第i比特位;byi表示纬度网格第i比特位。作为优选,所述步骤(5)中,顺序计数代码按照如下规则生成:根据地名的大洲和国际公有领域代码、国家和地区名称代码、行政区划代码、县级以下行政区划代码、地名地理属性类别代码、空间网格代码均相同的条件下,在同一天顺序计数库模块计数器的累计值加1,得顺序计数代码数据。作为优选,所说步骤(5)中校验代码按照如下规则生成:根据校验字符系统mod16-3校验规则,由大洲和国际公有领域代码、国家和地区名称代码、行政区划代码、县级以下行政区划代码、地名地理属性类别代码、空间网格代码、日期代码、顺序计数代码数据,计算获取校验代码数据。本发明另一方面提供的一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该程序被处理器执行时实现所述基于时空业务的地名身份号码编码方法的步骤。有益效果:本发明提出的地名身份号码编码方法与现有技术相比,生成的编码不仅是地理对象的唯一编码标识,同时将语义信息和位置信息融合,解决了现有编码方式无法兼顾语义和位置信息的问题。实现不仅能按行业分类、分时间、分地域的分布式地编制地名身份号码,而且又能实现号码体系的统一性,提高了地名信息跨系统跨平台的关联、交换、共享的效率。附图说明图1为地名身份号码编码器结构示意图。图2为大洲和国际公有领域代码计算流程图。图3为国家和地区名称代码计算流程图。图4为行政区划代码计算流程图。图5为县级以下行政区划代码计算流程图。图6为地名地理属性类别代码计算流程图。图7为空间网格代码计算流程图。图8为生命周期代码计算流程图。图9为顺序计数代码计算流程图。图10为校验码计算流程图。图11为地名身份号码段位结构示意图。具体实施方式地名是地理实体的专有名称,地名辖区范围是地名对应的地理实体的空间边界辖区范围,地名几何包络中心是地名对应的地理实体的几何包络中心所在地点坐标(经度longitudex,纬度latitudey)。下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。如图1所示,本发明实施例公开的一种基于时空业务的地名身份号码(地名id)编码器,主要由地名对象坐标采集模块(坐标采集模块)、基础地理信息数据(地理库模块)、业务分类类型信息库模块(业务库模块)、空间网格规则信息库模块(网格库模块)、日期产生模块、顺序计数库模块(计数库模块)、校验规则信息数据库模块(校验库模块)、计算编码模块8部分构成。各模块的功能如下:坐标采集模块:该模块通过人工绘图方式采集地名的地理实体辖区边界的坐标位置和名称信息。地理库模块:该模块已存储地图生产企业或国家管理测绘部门发布的包含大洲和国际公有领域代码、国家和地区名称代码、行政区划代码、县级以下行政区划代码的地理实体的几何包络中心、辖区边界的坐标地理信息数据。业务库模块:该模块已存储“地名(地理实体的):代码(业务分类的)”业务分类信息数据。网格库模块:该模块已存储地球网格剖分参数的信息数据。日期产生模块:该模块产生年月日为内容的生命周期信息。计数库模块:该模块是在大洲和国际公有领域、国家和地区名称、行政区划、县级以下行政区划地名地理属性类别的代码均相同前提下,于同一天(同世纪、同年、同月、同日)中的已编制地名的累积计数的记录。校验库模块:该模块已存储校验规则信息的数据。计算编码模块:该模块在上述模块计算得相应代码的基础上,按各段代码关系合并编码输出地名身份号码。本发明实施例公开的一种基于时空业务的地名身份号码编码方法主要包括如下步骤:步骤1:大洲和国际公有领域代码计算流程读取坐标采集模块采集的地名的地理实体的地理信息数据中辖区边界数据,同时读取地理库模块的已存储的地理信息数据中大洲和国际公有领域地理信息数据,由计算编码模块比较,如果地名辖区范围落在大洲和国际公有领域范围内,确定地名所属大洲或国际公有领域归属。依据《gb/t18521—2006地名分类与类别编制规则》中“大洲或国际公有领域代码”表,判断计算得地名id第1段所属大洲和国际公有领域代码gnc1。见下表1,图2、11。表1大洲和国际公有领域代码代码地名所在位置代码地名所在位置1亚洲5北美洲2欧洲6南美洲3非洲7跨大洲4大洋洲8国际公有领域步骤2:国家和地区名称代码计算流程在上述基础上,同时读取地理库模块的已存储的地理信息数据中国家和地区名称的地理信息数据,由计算编码模块比较,如果地名辖区范围落在某国家和地区范围内,确定地名所属该国家和地区归属。依据《gb/t2659-2000国家和地区名称代码》“国家和地区名称代码”表,判断计算得地名id第2段所属国家和地区名称代码gnc2;否则,第2-4段所有位均设置为“0”,同时跳转到步骤7。见图3、11。步骤3:行政区划代码计算流程在上述基础上,同时读取地理库模块的已存储的地理信息数据中省级行政区划的地理信息数据,由计算编码模块比较,如果地名辖区范围落在省级行政区划范围内,确定地名所属省级地名的行政区划归属。依据标准《gb/t2260中华人民共和国行政区划代码》,获取省级并确定地名id代码的第3段gnc3行政区划代码第36、35位;否则,第3-4段所有位均设置为“0”,同时跳转到步骤7。在上述基础上,同时读取地理库模块的已存储的地理信息数据中设区市级行政区划的地理信息数据,由计算编码模块比较,如果地名辖区范围落在设区市级行政区划范围内,确定设区市级地名所属行政区划归属。依据标准《gb/t2260中华人民共和国行政区划代码》,获取设区市级并确定地名id代码的第3段gnc3行政区划代码第34、33位;否则,第3-4段其他位均设置为“0”同时跳转到步骤7。在上述基础上,同时读取地理库模块的已存储的地理信息数据中县级行政区划的地理信息数据,由计算编码模块比较,如果地名辖区范围落在县级行政区划范围内,确定县级地名所属行政区划归属。依据标准《gb/t2260中华人民共和国行政区划代码》,获取县级并确定地名id代码的第3段gnc3行政区划代码第32、31位;否则,第3-4段其他位均设置为“0”,同时跳转步骤7。具体说,如果地名辖区范围跨县级行政区划辖区,则选取设区市的行政区划代码,县级行政区划代码设置为00;如果地名辖区范围跨设区市级行政区划辖区,则选取省级行政区划代码,设区市级行政区划代码设置为00;如果地名辖区范围跨省级行政区划辖区,则行政区划代码设置为000000。见图4、11。步骤4:县级以下行政区划代码计算流程在上述的基础上,同时读取地理库模块的已存储的县级以下行政区划地理信息数据,由计算编码模块比较,如果地名辖区范围落在县级以下行政区划范围内,确定地名所属县级以下行政区划归属。按照国家标准《gb/t10114—2003县级以下行政区划代码编制规则》标准规范,并确定地名id代码的第4段gnc4县级以下行政区划代码;否则,第4段所有位设置为0。见图5、11。步骤5:地名地理属性类别代码计算流程读取坐标采集模块采集的地理实体信息数据中地名数据,同时读取业务库模块已存储的“地理实体的地名:分类的代码”业务分类信息数据,由计算编码模块比较,根据地名,按照国家标准《gb/t18521-2006地名分类与类别编制规则》中“地名地理属性类别代码”的标准规范的类型划分,获取并确定地名的id代码的第5段地名地理属性类别代码gnc5,见图6、11。步骤6:空间网格代码计算流程在上述读取坐标采集模块的地名地理实体辖区空间边界信息数据的基础上,同时读取空间网格库模块参数(包含公式、常量、模型)的数据,提取边界经度最大值xmax、经度最小值xmin、纬度最大值ymax、纬度最小值ymin,经公式(1)、(2)计算得地名地理实体的几何包络中心坐标(x、y)数据,再经(3)、(4)、(5)、(6)计算得空间网格g代码(经度网格gx、纬度网格gy)gnc6。见图7、11。计算方法如下:x=(xmax+xmin)/2(1)y=(ymax+ymin)/2(2)当x处于东经时:gx=(取整)[x/360]*65536(3)当x处于西经时:gx=(取整)[(x+180)/360]*65536(4)当y处于北纬时:gy=(取整)[(90-y)/180]*32768(5)当y处于南纬时:gy=(取整)[(90+y)/180]*32768(6)得gx=bx15bx14bx13bx12bx11bx10bx9bx8bx7bx6bx5bx4bx3bx2bx1bx0;得gy=by15by14by13by12by11by10by9by8by7by6by5by4by3by2by1by0;再得g=gxgy=bx15by15bx14by14bx13by13bx12by12bx11by11bx10by10bx9by9bx8by8bx7by7bx6by6bx5by5bx4by4bx3by3bx2by2bx1by1bx0by0;输出空间网格代码gnc6。其中,bxi:表示经度网格第i比特位;byi:表示纬度网格第i比特位。步骤7:生命周期代码计算流程读取日期产生模块的日期数据,获取并确定地名id代码的第7段生命周期代码gnc7,见图8。生命周期代码代表地名产生或标识日期,代表地名生命周期管理开始的时间信息。按照标准《gb/t7408-2005数据元和交换格式信息交换日期和时间表示法》,生命周期代码采用ccyymmdd(ccyy:年,mm:月,dd:日)8位十进制数格式,见图8、11。对于自然地理实体的地名生命周期代码依从地名志等记录日期为准。不能确定的、历史上已经产生的世纪、年、月、日取值为00;对于人工生产建设的和社会管理的地名生命周期代码依行政单位批准、建成或约定的日期为准。日期产生模块按编码器系统同步产生日期数据,读取日期产生模块的日期数据含义是当前日期数据是有效的则自动采集系统日期,对于历史的地名地理实体当前日期无效,则人工输入需要的日期数据。步骤8:顺序计数代码计算流程读取计数模块的上次累计顺序编码数据,在上次累计顺序编码数据基础上,自加1(根据地名的大洲和国际公有领域代码、国家和地区名称代码、行政区划代码、县级以下行政区划代码、地名地理属性类别代码、空间网格代码均相同的条件下,在同一天计数库模块计数器的累计值加1,达到顺序计数编码不重复),生成地名id代码的第8段顺序计数代码gnc8,见图9、11。步骤9:校验码计算流程读取校验库模块的校验规则信息数据,对大洲或国际公有领域代码、国家和地区名称代码、行政区划代码、县级以下行政区划代码、地名地理属性代码、空间网格代码、生命周期代码、顺序计数代码8段代码,采用《gb/t23732中国标准文本编码》校验字符系统mod16-3方法,生成校验码gnc9。采用校验码可以发现地名身份号码在传输过程产生误码。见图10、11,例1。步骤10:地名身份代码编码输出在上述各段代码生成的基础上,按照geo_name_code=gnc1:gnc2:gnc3:gnc4:gnc5:gnc6:gnc7:gnc8:gnc9(其中“:”代表分段代码间串联关系),计算编码模块合并上述9段代码值,并输出地名身份号码geo_name_code数据。最终生成的地名id编码结构由大洲和国际公有领域代码(1位)、国家和地区名称代码(3位)、行政区划代码(6位)、县级以下行政区划代码(3位)、地名地理属性类别代码(6位)、空间网格代码(8位)、生命周期代码(8位)、顺序计数代码(4位)、校验码(1位)9段构成。地名id代码总计40位,见图11。地名id国内使用时称为国内地名id,编码结构可简化为由行政区划代码(6位)、县级以下行政区划代码(3位)、地名地理属性类别代码(6位)、空间网格代码(8位)、生命周期代码(8位)、顺序计数代码(4位)、校验码(1位)7段构成,国内地名id代码总计36位。本发明实施例还公开一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该程序被处理器执行时实现上述基于时空业务的地名身份号码编码方法的步骤。地名编码实例为便于对本发明方案理解,下面列举几个地名编码实例。例1南京师范大学虚拟地理信息实验室地理科学楼在cgcs2000参考系中,南京师范大学虚拟地理信息实验室地理科学楼的几何包络中心坐标(118.91196,32.11702)。地名id各部分代码构成如下:大洲或国际公有领域代码:1;国家和地区名称代码:156;行政区划代码:320113;县级以下行政区划代码:406;地名类型代码:261100;空间网格代码:266184eb;生命周期代码:20011004;顺序码:0004;校验码:f。南京师范大学虚拟地理信息实验室地理科学楼的地名id:1156320113406261100266184eb200110040004f。表2校验码计算表注1:采用纯系统权重,r=:根,或一个几何级数的基础;注2:在mod16-3中,mod=16,r根的值是3;注3:i=:表示位码的位置索引;注4:hi=:表示第i位置上的地名id十六进制码位值;注5:wi=:表示第i位置上的加权因子;注6:di=:(hi十六进制转换成)十进制数;注7:pi=:(di*wi)的乘积;注8:sum=:pi乘积的总和;注9:cdi=:十进制的校验码(mod16ofsum,cdi:code_di);注10:chi=:基于cd十六进制的文本校验码(chi:code_hi)。例2南京市中山南路南京市中山南路的几何包络中心坐标(118.77692,32.02617)。地名id各部分代码构成如下:大洲或国际公有领域代码:1;国家和地区名称代码:156;行政区划代码:320100;县级以下行政区划代码为:000;地名类型代码:235120;空间网格代码:26612f69;生命周期代码:19900615;顺序码:0005;校验码:d。南京市中山南路的地名id:115632010000023512026612f69199006150005d。例3江苏省海安县江苏省海安县的几何包络中心坐标(120.46726,32.53369)。地名id各部分代码构成如下:大洲或国际公有领域代码:1;国家和地区名称代码:156;行政区划代码:3201621;县级以下行政区划代码为:000;地名类型代码:214000;空间网格代码:2662d9d9;生命周期代码为19490615;顺序码:0004;校验码:3。江苏省海安县的地名id:11563206210002140002662d9d91949061500043。例4江苏省海安县曲塘镇曲塘村22组5号江苏省海安县曲塘镇曲塘村22组5号的几何包络中心坐标(120.3138,32.50208)。地名id各部分代码构成如下:大洲或国际公有领域代码:1;国家和地区名称代码:156;行政区划代码:320621;县级以下行政区划代码:102;地名类型代码:217110;空间网格代码:2662d4ad;生命周期代码为19961004;顺序码0005;校验码:7。江苏省海安县曲塘镇曲塘村22组5号的地名id:11563206211022171102662d4ad1996100400057。例5中国长江中国长江的几何包络中心坐标(108.016667,32.53369)。地名id各部分代码构成如下:大洲或国际公有领域代码:1;国家和地区名称代码:156;行政区划代码:000000;县级以下行政区划代码:000;地名类型代码:121000;空间网格代码:24e1a5ea;生命周期代码为00000000;顺序码:0001;校验码:8。中国长江的地名id:115600000000012100024e1a5ea0000000000018。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1