目录

前言

一、百度 VS 高德 POI分类

1、高德POI分类

2、百度POI分类

3、分类对比与区别

二、POI分类表设计

1、物理表结构

2、数据存储

3、数据查询

三、总结


前言

        在当今数字化快速发展的时代,地理信息数据的重要性日益凸显,而POI(Point of Interest,兴趣点)数据作为地理空间数据的关键组成部分,广泛应用于地图导航、位置服务、商业选址、城市规划等诸多领域。例如,在地图导航软件中,精准丰富的POI数据能够为用户呈现周边各类设施的位置与信息,帮助其更好地规划出行路线;对于商业机构而言,分析POI数据则可助力其洞察区域商业布局,为新店选址提供科学依据。目前,百度、高德等地图服务提供商均积累了海量且细致的POI数据,这些数据涵盖了餐饮、住宿、购物、旅游景点、交通设施等众多生活服务类别,并且呈现出多层级的分类结构。以餐饮类为例,先分为中式、西式、日式等菜系大类,中式菜系下又有川菜、粤菜、鲁菜等细分,每一细分菜系下还可能包含不同风格、档次的餐厅子项。如此复杂且层次分明的分类体系,对数据的存储与管理提出了严峻挑战。

        传统的数据库存储方式在面对这种多层级、海量的POI数据时,逐渐显现出诸多弊端。一方面,数据之间的层级关系难以直观、高效地表达,导致在数据查询时,尤其是跨层级查询或钻取时,操作繁琐且性能不佳;另一方面,随着数据量的不断增长,数据库的扩展性也受到限制,难以灵活应对业务的快速扩张需求。为了实现多源数据的POI分类的准确管理,同时可以保持各平台的独立性,要求我们可以实现对不同的数据源进行管理,因此要求设计一个多层次的POI分类表,以适应多源多层次的分类管理需求。

        PostgreSQL作为一种功能强大、开源的数据库管理系统,凭借其在存储复杂数据结构、支持扩展性以及数据一致性和完整性保障等方面的卓越性能,成为了应对这类挑战的理想选择之一。其支持丰富的数据类型,例如可以利用数组类型、JSON类型等来存储多层级数据结构的特征信息;而且具备强大的函数与索引功能,能够针对特定的查询需求进行优化,提升查询效率。因此,对基于PostgreSQL存储百度或高德等POI多层级分类的数据库设计进行深入研究具有重要的现实意义。本研究旨在探索如何根据POI数据的多层级特点,合理规划数据库的表结构、字段设计,通过有效的数据关联方式和索引策略,实现对海量POI数据的高效存储、快速查询以及便捷的维护与更新,为各类依赖POI数据的应用场景提供坚实可靠的数据支撑,推动地理信息数据在更广泛领域的深度应用与创新发展,以更好地满足人们在智能生活与智慧城市建设进程中对精准地理信息服务的不断攀升的需求。

一、百度 VS 高德 POI分类

        本节将重点介绍百度和高德两个平台的POI分类信息,不仅详细说明两者的官方数据入口。还对比了两者的层级和各层级的分类信息,通过两个平台的分类分层的体系说明,也说明了两者在细分领域的深入程度。不管是高德还是百度的检索接口,POI的分类绝对是很重要的一个信息。同时也是区域信息查询的一个重要条件。

1、高德POI分类

        首先来看高德POI分类,可以在检索接口中看到POI分类的第一个应用,如下图所示:

pes

查询 POI 类型

可选值:分类代码 或 汉字(若用汉字,请严格按照附件之中的汉字填写)

规则: 多个关键字用“|”分割

分类代码由六位数字组成,一共分为三个部分,前两个数字代表大类;中间两个数字代表中类;最后两个数字代表小类。

若指定了某个大类,则所属的中类、小类都会被显示。

例如:010000为汽车服务(大类)

          010100为加油站(中类)

          010101为中国石化(小类)

          010900为汽车租赁(中类)

          010901为汽车租赁还车(小类)

当指定010000,则010100等中类、010101等小类会被包含,当指定010900,则010901等小类会被包含。

注意:返回结果可能会包含中小类POI,但不保证包含所有,如需更精确的信息,推荐输入小类或缩小范围查询

下载 POI 分类编码和城市编码表

若不指定 city,返回的内容为城市列表以及此城市内有多少结果符合要求。 

必填(keyword 或者 types 二选一必填)

        其实在这里就可以下载高德平台的POI分类和城市信息表,点击超链接将跳转到具体的下载页面中,如下图所示:

         点击下载按钮就可以将高德的POI分类表格下载到本地。

2、百度POI分类

        下面再来详细介绍一下百度的POI分类,同样是来看一下百度地图的POI分类的入口,关于POI的介绍有两个入口,第一个是比较粗略的二级分类,同样在检索接口中包含以下分类Tag的定义与使用。

tag

检索分类偏好,与query组合进行检索,多个分类以","分隔 (POI分类),如果需要严格按分类检索,请通过query参数设置

美食string(50)

         点击“POI分类”可以查看百度的POI分类信息,如下表所示:

一级行业分类二级行业分类
美食中餐厅、外国餐厅、小吃快餐店、蛋糕甜品店、咖啡厅、茶座、酒吧、其他
酒店星级酒店、快捷酒店、公寓式酒店、民宿、其他
购物购物中心、百货商场、超市、便利店、家居建材、家电数码、商铺、市场、其他
生活服务通讯营业厅、邮局、物流公司、售票处、洗衣店、图文快印店、照相馆、房产中介机构、公用事业、维修点、家政服务、殡葬服务、彩票销售点、宠物服务、报刊亭、公共厕所、步骑行专用道驿站、其他
丽人美容、美发、美甲、美体、其他
旅游景点公园、动物园、植物园、游乐园、博物馆、水族馆、海滨浴场、文物古迹、教堂、风景区、景点、寺庙、其他
休闲娱乐度假村、农家院、电影院、ktv、剧院、歌舞厅、网吧、游戏场所、洗浴按摩、休闲广场、其他
运动健身体育场馆、极限运动场所、健身中心、其他
教育培训高等院校、中学、小学、幼儿园、成人教育、亲子教育、特殊教育学校、留学中介机构、科研机构、培训机构、图书馆、科技馆、其他
文化传媒新闻出版、广播电视、艺术团体、美术馆、展览馆、文化宫、其他
医疗综合医院、专科医院、诊所、药店、体检机构、疗养院、急救中心、疾控中心、医疗器械、医疗保健、核酸检测点、新冠疫苗接种点、风险点、方舱医院、发热门诊、其他
汽车服务汽车销售、汽车维修、汽车美容、汽车配件、汽车租赁、汽车检测场、其他
交通设施飞机场、火车站、地铁站、地铁线路、长途汽车站、公交车站、港口、停车场、停车区、停车位、加油加气站、服务区、收费站、桥、充电站、路侧停车位、普通停车位、接送点、电动自行车充电站、高速公路停车区、其他
金融银行、ATM、信用社、投资理财、典当行、其他
房地产写字楼、住宅区、宿舍、内部楼栋、其他
公司企业公司、园区、农林园艺、厂矿、其他
政府机构中央机构、各级政府、行政单位、公检法机构、涉外机构、党派团体、福利机构、政治教育机构、社会团体、民主党派、居民委员会、其他
出入口高速公路出口、高速公路入口、机场出口、机场入口、车站出口、车站入口、门(备注:建筑物和建筑物群的门)、停车场出入口、自行车高速出口、自行车高速入口、自行车高速出入口、停车场出口、停车场入口、其他
自然地物岛屿、山峰、水系、其他
行政地标省、省级城市、地级市、区县、商圈、乡镇、村庄、其他
门址门址点、其他
道路高速公路、国道、省道、县道、乡道、城市快速路、城市主干道、城市次干道、城市支路、车渡线、路口、其他
铁路铁路、地铁/轻轨、磁悬浮列车、有轨电车、城际快轨、其他
行政界线其他国家国界、已定国界、未定国界、港澳界线、南海范围线、已定省界、未定省界、海岸线、其他
其他线要素桥梁、隧道、行政假想线、水域假想线、绿地假想线、岛屿假想线、疫情管控区、其他
行政区划世界级、国家级、省级、市级、区县级、热点区域、建成区、智能区域、其他
水系双线河、湖沼、海洋、其他
绿地绿地公园、高尔夫球场、岛、绿化带、机场、机场道路、其他
标注大洲标注、大洋标注、海域标注、水系标注、岛屿标注、非水系标注、其他
公交线路普通日行公交车、地铁\轻轨、有轨电车、机场巴士(前往机场)、机场巴士(从机场返回)、机场巴士(机场之间)、旅游线路车、夜班车、轮渡、快车、慢车、机场快轨(前往机场)、机场快轨(从机场返回)、机场轨道交通环路、其他
电子眼限速电子眼、应急车道电子眼、公交车道电子眼、外地车辆电子眼、违章电子眼、其他

        当然,以上表格是一个最多到二级的分类信息。如果需要百度的更详细的POI分类表格,需要在接口文档的响应参数中进行查看,如下图:

        点击红框中的超链接即可下载百度的POI分类。 

3、分类对比与区别

        我们将百度和高德两个平台的POI类别都下载都本地后,可以打开Excel文件具体的对比一下两者的联系和区别。首先来看下高德的POI分类表格,如下图所示:

        可以看到,高德的POI分类是三级分类,最多也就是三级。 接下来再看一下百度的分类:

        可以很明显的看到,百度的POI分类层级居然到了五级,比高德的三级更多也更细。这也侧面应征了前面的话,百度的POI分类比高德更加细致。除了两个在层级有区别以外,我们也可以对比两者的一级分类的对应关系,百度地图POI分类中,旅游景点是一级分类;而高德地图的一级分类是风景名胜;当然这种分法本身没有什么问题,分类而已。同时,两者在层次设计上,高德一般三级分类都是全部设置好的,而百度地图的POI分类,有的只有二级,不会到更细致的层级,这也是两者的一个大差别。如果还有其它未说明的区别或者联系,欢迎大家在评论区留言指出。

二、POI分类表设计

        不管是百度地图还是高德地图,两者其实都包含了一个层级的概念,而一般层级在树形结构中用的非常多。相信大家对二叉树等比较熟悉,这里其实也是一个差不多的意思。因此我们在进行表结构的设计时就考虑到了这种父子关系的树形结构设计。那么本文将给出一种具体的面向高德或者百度的POI分类存储表,能够实现两个不同平台的数据存储与检索,最后给一个查询的实例用于说明如何进行数据查询。

1、物理表结构

        既然是面向多层级的动态树结构,这里我们就一定会采用树形表结构设计。这里我们直接给出存储POI类型表的物理表结构,当然这里我们给出了数据表结构的SQL语句,如有不足或者有问题的地方,欢迎大家评论区交流,物理表模型如下:

        对应的物理表SQL如下:

CREATE TABLE "public"."biz_poi_category" ("pk_id" int8 NOT NULL,"category_name" varchar(100) NOT NULL DEFAULT ''::character varying,"origin_code" varchar(100) NOT NULL DEFAULT ''::character varying,"parent_id" int8 NOT NULL DEFAULT 0,"ancestors" varchar(2000) NOT NULL DEFAULT ''::character varying,"category_english_name" varchar(100) NOT NULL DEFAULT ''::character varying,"platform" varchar(10) NOT NULL DEFAULT ''::character varying,"order_num" int4 NOT NULL DEFAULT 0,"status" int2 NOT NULL DEFAULT 0,"del_flag" int2 NOT NULL DEFAULT 0,"create_by" varchar(64) NOT NULL DEFAULT ''::character varying,"create_time" timestamp(6),"update_by" varchar(64) NOT NULL DEFAULT ''::character varying,"update_time" timestamp(6),CONSTRAINT "pk_biz_poi_category" PRIMARY KEY ("pk_id")
);
CREATE INDEX "idx_biz_poi_category_name" ON "public"."biz_poi_category" USING btree ("category_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
COMMENT ON COLUMN "public"."biz_poi_category"."pk_id" IS 'pk_id';
COMMENT ON COLUMN "public"."biz_poi_category"."category_name" IS '分类名称';
COMMENT ON COLUMN "public"."biz_poi_category"."origin_code" IS '原始分类code';
COMMENT ON COLUMN "public"."biz_poi_category"."parent_id" IS '父分类id';
COMMENT ON COLUMN "public"."biz_poi_category"."ancestors" IS '祖级列表';
COMMENT ON COLUMN "public"."biz_poi_category"."category_english_name" IS '分类名称-英文';
COMMENT ON COLUMN "public"."biz_poi_category"."platform" IS '所属平台';
COMMENT ON COLUMN "public"."biz_poi_category"."order_num" IS '排序号';
COMMENT ON COLUMN "public"."biz_poi_category"."status" IS '状态';
COMMENT ON COLUMN "public"."biz_poi_category"."del_flag" IS '栅格标记';
COMMENT ON COLUMN "public"."biz_poi_category"."create_by" IS '创建者';
COMMENT ON COLUMN "public"."biz_poi_category"."create_time" IS '创建时间';
COMMENT ON COLUMN "public"."biz_poi_category"."update_by" IS '更新人';
COMMENT ON COLUMN "public"."biz_poi_category"."update_time" IS '更新时间';
COMMENT ON TABLE "public"."biz_poi_category" IS 'POI分类信息表,完全兼容百度、高德等平台,还可以扩展至其它平台';

2、数据存储

        数据的存储结构比较简单,主要就是基于parent_id进行父子关联使用。这里我们使用web界面对POI分类表进行管理,手动添加示例数据。我们在添加一些演示后演示的数据如下:

3、数据查询

        这里我们简单的讲解一下如何在PostgreSQL中进行POI分类表的的数据检索查询。这里我们讲一种是查询高德节点和下级子节点。sql如下:

with RECURSIVE r as 
( select t1.* from biz_poi_category t1 where t1.pk_id = 101 
union all 
select t2.* from biz_poi_category t2 inner join r  on r.pk_id = t2.parent_id) 
select * from r order by pk_id;

        查询结果如下:

三、总结

        以上就是本文的主要内容,本研究旨在探索如何根据POI数据的多层级特点,合理规划数据库的表结构、字段设计,通过有效的数据关联方式和索引策略,实现对海量POI数据的高效存储、快速查询以及便捷的维护与更新,为各类依赖POI数据的应用场景提供坚实可靠的数据支撑,推动地理信息数据在更广泛领域的深度应用与创新发展,以更好地满足人们在智能生活与智慧城市建设进程中对精准地理信息服务的不断攀升的需求。文章详细得介绍了百度和高德两个地图平台的POI分类信息,最后基于这个POI分类设计了存储相关数据的物理表用来存储相关数据。行文仓促,定有不足之处,欢迎各位朋友在评论区批评指正,不胜感激。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/912093.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912093.shtml
英文地址,请注明出处:http://en.pswp.cn/news/912093.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AutoVLA:端到端自动驾驶中具有自适应推理和强化微调功能的视觉-语言-动作模型

26年6月来自UCLA的论文“AutoVLA: A Vision-Language-Action Model for End-to-End Autonomous Driving with Adaptive Reasoning and Reinforcement Fine-Tuning”。 视觉-语言-动作 (VLA) 模型的最新进展通过利用世界知识和推理能力为端到端自动驾驶带来了希望。然而&#x…

知攻善防靶机 Windows 近源OS

知攻善防靶机 [hvv训练]应急响应靶机训练-近源渗透OS-1 前景需要:小王从某安全大厂被优化掉后,来到了某私立小学当起了计算机老师。某一天上课的时候,发现鼠标在自己动弹,又发现除了某台电脑,其他电脑连不上网络。感觉…

「Java基本语法」求三位整数的各位数字之和

引言 现在来玩一个数字拆解游戏。想象一下手里拿着一个三位数的积木,现在需要把它拆成个位、十位和百位三块,然后把它们加起来。这个操作在实际编程中很常见,例如做密码校验、游戏分数计算等都可能会用到。 案例:求三位数各位之和 编写程序,从键盘输入一个三位的正整数…

SciChart 助力蛋白质结构研究:实时可视化推动生物科学新突破

SciChart是高性能数据可视化领域的优秀图表产品,深受数据密度和精度至关重要行业的信赖,包括航空航天、石油和天然气、科学研究和赛车运动等。作为F1中使用的解决方案,SciChart被NASA所依赖,并受到90%的顶级医疗技术公司青睐&…

基于Docker与cpolar的Leantime部署方案实现低成本跨地域团队协作

文章目录 前言1.关于Leantime2.本地部署Leantime3.Leantime简单实用4.安装内网穿透5.配置Leantime公网地址6. 配置固定公网地址 前言 各位小伙伴们,让我们暂时把目光从云端的分布式系统转向本地环境。在您的Linux主机上,我们将搭建一个高性价比的协作平…

阿里云Redhat系Linux修改ssh默认端口

阿里云Redhat系Linux修改ssh默认端口 在阿里云买了个服务器,想着ssh的默认端口是22,这不安全。 我就将修改ssh默认端口的过程记录下来了,方便日后回看。 本命令适用于 Redhat系Linux,例如 Redhat、Centos、Alibaba Cloud Linux、…

lib61850 代码结构与系统架构深度分析

一、整体代码结构概述 lib61850 采用模块化设计,核心代码位于src目录下,主要包含以下子目录: src/ ├── hal/ # 硬件抽象层 ├── mms/ # MMS协议实现 ├── goose/ # GOOSE协议实现 ├──…

linux程序保活

需要解决的一个情况,在一些比较老的linux系统里,没有systemctl来进行程序的启动和重启。现在需要设计一个让程序高可用的方案。尽量提高程序可用性。 方案分成几步,属于补充和递进的关系。最简单的是用systemctl 托管,或者service…

文件加密、隐藏软件 GiliSoft File Lock Pro v15.0 打造自己的私密空间

“在这个连聊天记录都可能被截图的时代,你的电脑硬盘里藏着多少不敢示人的秘密?”上周同事借我电脑改PPT时,我突然想起D盘里存着的年度述职报告草稿——那里面密密麻麻标注着部门每个人的绩效短板,要是被误看到简直社死现场。好在…

深入浅出Java NIO:原理、实战与性能优化

深入浅出Java NIO:原理、实战与性能优化 一、技术背景与应用场景 随着高并发、低延迟场景愈发常见,传统的基于阻塞 I/O(BIO)模型难以满足海量连接的需求。Java NIO(Non-blocking I/O)通过 Selector、Chan…

道可云人工智能每日资讯|中国航空工业集团召开人工智能大会

道可云人工智能&元宇宙每日简报(2025年6月25日)讯,今日人工智能&元宇宙新鲜事有: 第22届中国—东盟商务与投资峰会聚焦人工智能热点 第22届中国—东盟商务与投资峰会(以下简称峰会)联络官会议24日在广西南宁召开。中国贸…

Python实例题:文件内容搜索工具

目录 Python实例题 题目 要求: 解题思路: 代码实现: Python实例题 题目 文件内容搜索工具 要求: 实现一个命令行工具,用于在指定目录下搜索包含特定文本的文件。支持以下功能: 递归搜索子目录区分…

【Pandas】pandas DataFrame resample

Pandas2.2 DataFrame Time Series-related 方法描述DataFrame.asfreq(freq[, method, how, …])用于**将时间序列数据转换为指定频率(resample to frequency)**的方法DataFrame.asof(where[, subset])用于查找时间序列中最接近指定时间点的非 NaN 值的…

自动驾驶nuPlan数据集-入门使用和可视化操作

文章目录 前言一、nuPlan 数据集下载及环境安装根据个人安装的路径将以下内容写入./bashrc 中二、跑通场景可视化总结 前言 自动驾驶行业知识点太多,不进则退,上班就得学习,天上掉金砖砸我脚好了 参考文档 参考1 一、nuPlan 数据…

ApplovinMax接入Unity(包括我自己踩的一些坑)

前言 ApplovinMax是一个广告聚合平台,他会自带自己的Applovin平台广告,在这个插件上面你可以下载其他的聚合渠道,与谷歌的Admob比较相似。都是广告聚合平台。 一. ApplovinMax SDK插件的导入 1.下载插件集成 | SDK 集成指南 | MAX | Suppo…

linux系统执行过程中的5种特殊情况

正在执行的用户态X切换用户态进程Y的过程为系统中常用的情况,但并非不能完全准确地反应系统的全部执行场景,还有一些场景比较特殊,主要包括以下5种情况 一.内核线程之间通过中断处理过程中的调度时机发生进程切换,与一般的情况非常…

9. 元素拖拽

元素拖拽 API 介绍 1. 拖放过程 整个拖放过程中,存在两个关键元素:拖拽元素、放置元素 拖拽元素:被拖拽的元素 drag:元素被拖拽时触发,从开始拖拽到拖拽结束前整个过程会一直持续的触发dragstart:元素被…

用来提升同花顺软件进程优先级的C#程序

为了提高炒股软件同花顺的运行速度,消除卡顿,编写一个C#程序,来设置同花顺进程的优先级。 using System; using System.Diagnostics; using System.Security.Principal;namespace ProcessPrioritySetter {class Program{static void Main(st…

linux初阶---一些指令

一.快速认识6-8个简单指令 1.pwd pwd指令是用来查看用户当前所处在的目录(目录的概念在理解上可以等效为文件夹)。 (1)在windows系统中我们通过文件路径表示唯一的文件,在linux中也是一样的,所以pwd是一个很…

全国产传感器外壳的综合分析:材料选择、考量因素与尺寸精度影响

全国产传感器作为现代工业、科研、生活等领域的 “感知触角”,其外壳的性能与质量直接关乎设备的稳定性、可靠性与使用寿命。从材料选型、关键考量因素到尺寸精度的影响,每个环节都需精细把控。 一、全国产传感器外壳材料的多元选择 全国产传感器外壳材…