Oracle LiveLabs实验:Introduction to Oracle Spatial Studio_oracle_spatial 可视化-程序员宅基地

技术标签: database  GeoSpatial  oracle  Oracle数据库管理  Spatial  数据库  Oracle数据库开发  

本实验介绍了适用于 Oracle Spatial Studio。他既可以在云上,也可以在本地作为Java应用部署。介绍详见这里

此实验申请地址在这里,时间为120分钟。

此实验的帮助见这里

本实验使用的地图为OpenStreetMap,即免费的维基世界地图。

此实验会自动创建一个ADW,需要通过OCI Console完成初始化配置,然后可以通过网页访问Spatial Studio

简介

在本次研讨会中,您将探索 Spatial Studio 用于自助式空间分析和可视化的功能。 使用交通事故、警察局和警察局服务区的数据集,您将加载和可视化空间数据,并分析它们的空间关系,如下所示。
在这里插入图片描述
Oracle Spatial Studio (Spatial Studio) 提供对 Oracle 数据库空间功能的无代码访问。 虽然这些功能过去需要编码和/或使用 第三方工具,但 Spatial Studio 允许业务用户使用自助式 GUI 创建和共享空间分析和交互式 Web 地图。
在这里插入图片描述
Spatial Studio 对 Oracle 数据库中的空间数据进行操作,这意味着包含 Oracle 几何数据类型的表和视图。 这些数据可以是预先存在的空间数据或使用 Spatial Studio 准备的非空间数据,以添加基于属性的几何图形。 Spatial Studio 的最终用户功能可总结如下:

访问和准备空间数据:

  • 访问 Oracle 数据库中的空间/非空间数据
  • 从常见格式加载数据
  • 通过地理编码地址或索引纬度/经度列来准备非空间数据
  • 预缓存大型数据集

分析和可视化空间数据:

  • 拖放地图可视化
  • 数据驱动的样式
  • 执行空间分析
  • 分享结果

Spatial Studio 还为开发人员提供了集成功能,并为应用程序管理员提供了配置选项,这超出了本介绍研讨会的范围。

有关更多信息,请访问 https://oracle.com/goto/spatialstudio

本实验的目标为了解 Spatial Studio 的功能:

  • 加载空间数据
  • 可视化空间数据
  • 执行空间分析

本实验需要访问 Spatial Studio 和 Oracle 数据库。

实验 1:访问 Spatial Studio

介绍

本实验介绍了从 Oracle LiveLabs Reservation 访问 Oracle Spatial Studio (Spatial Studio) 的过程。 您的环境包括 Spatial Studio 和自治数据库。 首次登录 Spatial Studio 时,您将提供自治数据库的连接信息。

任务 1:为您的自治数据库下载云钱包

位置为:OCI Console>ADW主页>Database Connection>Download client credentials (Wallet)

任务 2:Spatial Studio 首次登录

  1. 访问https://[your Spatial Studio IP address]:4040/spatialstudio (Spatial Studio的IP即实例IP)
  2. 输入用户名admin和口令welcome1
  3. 首次登录 Spatial Studio 会提示您输入 Spatial Studio 元数据存储库的数据库连接信息。 单击自治数据库,然后单击下一步。 在下一个屏幕上,拖放您之前下载的钱包文件,然后单击确定。
  4. 输入用户名studio_repo和口令Welcome1Welcome1;服务级别选择medium。Spatial Studio 现在正在自治数据库中构建其元数据表。 这大约需要 30 秒。
  5. 当 Spatial Studio 打开时,首次登录已完成,您已准备好继续实验。

在这里插入图片描述

实验 2:加载空间数据

介绍

Spatial Studio 对存储在 Oracle 数据库中的数据进行操作。 在 Spatial Studio 中,您使用“数据集”,它们是通过数据库连接访问的数据库表和视图。 数据集是指向数据库表和视图的指针,并且可以被赋予友好的名称,以便比基础数据库表或视图名称更具自我描述性。

用户通常需要合并从各种来源获取的数据。 为了支持这一点,Spatial Studio 提供了将数据从标准格式加载到 Oracle 数据库的功能。 这包括加载 2 种最常见的空间数据交换格式:Shapefile 和 GeoJSON 文件。 本实验将引导您完成使用 Spatial Studio 以这些格式加载空间数据的步骤。

除了加载空间格式,Spatial Studio 还支持加载电子表格。 在这种情况下,需要进行额外的准备以从空间属性(例如地址(“地址地理编码”)和纬度/经度坐标(“坐标索引”)导出几何图形。 这些案例不包含在本实验室中,未来将成为单独实验主题。

本节实验约15分钟,目标为:

  • 了解如何从 Shapefile 和 GeoJSON 加载空间数据
  • 了解如何为数据集设置关键字段

任务 1:加载事故数据

您首先从 GeoJSON 文件加载一组交通事故数据。 这些数据是虚构的,是为南非道路沿线的随机位置生成的。

  1. 将 GeoJSON 文件下载到方便的位置:accidents.geojson

  2. 在 Spatial Studio 中,从左侧面板菜单导航到数据集页面,单击创建数据集,然后拖放文件。

  3. 将显示 GeoJSON 数据的预览。 选择此上传的目标连接。 在本次研讨会中,我们将使用 SPATIAL_STUDIO 连接(Spatial Studio 元数据存储库),但在生产场景中,您将拥有与元数据存储库分开的此类业务数据的其他连接。 单击Submit以启动上传。
    在这里插入图片描述

  4. 上传的 ACCIDENTS 数据集将列出一个小的警告图标,表示需要一个准备步骤。 在这种情况下,我们需要添加一个 Dataset 键。 虽然这对于基本映射不是必需的,但我们现在将添加密钥,因为我们将需要它来进行后续研讨会部分的分析。 单击警告图标,然后单击链接Go to Dataset Columns

  5. 如果我们的 ACCIDENTS 数据有一个唯一标识符列,我们可以将其分配为键。 但是这个虚构的数据没有这样的列,所以我们将让 Spatial Studio 创建一个。 单击 Create Key Column,将名称设置为 ACCIDENT_ID,然后单击 Apply。

  6. 观察现在列出的没有警告的 ACCIDENTS 数据集,这意味着它已准备好用于制图和空间分析。

任务 2:加载警察局数据

接下来,您从存储在单个 zip 文件中的 Shapefile 加载南非警察局 (SAPS) 和警局边界。这一个ZIP文件包含了2个数据集。

  1. 将包含 Shapefile 的 zip 文件下载到方便的位置:SAPS_police.zip

  2. 导航到 Datasets 页面,单击 Create Dataset,然后拖放 SAPS_police.zip文件。 Spatial Studio 将从 zip 文件中提取 Shapefile 并单独处理它们。

  3. 提取的第一个 Shapefile 将是警察局边界,即警局巡逻的地理区域。 选择目标连接,并将表和数据集名称设置为 POLICE_BOUNDS。

  4. 提取的第二个 Shapefile 将是警察局。 选择目标连接,并将表和数据集名称设置为 POLICE_POINTS。

  5. 由于需要定义键,现在列出的 POLICE_BOUNDS 和 POLICE_POINTS 数据集均带有警告。 单击 POLICE_BOUNDS 的警告图标,然后单击链接Go to Dataset Columns。

  6. 本例我们有一个现有的唯一列用作键。 对于列 COMPNT_NAME选择Use as Key,单击Validate key,然后单击Apply;重复步骤 5 和 6 以设置数据集 POLICE_POINTS 的键。
    在这里插入图片描述

  7. 现在所有数据集都已准备好进行制图和空间分析

实验 3:创建项目

介绍

在 Spatial Studio 中,项目是您可视化和分析数据的地方。 可以保存项目,以便您可以继续工作,也可以发布它们,以便您可以与他人分享您的结果。 在本实验中,您将创建并保存您的第一个项目。

预计实验室时间:30 分钟

目标

  • 了解如何创建和保存项目
  • 了解如何将数据集添加到项目
  • 了解如何可视化数据集

任务 1:创建项目

  1. 从左侧面板菜单中,导航到 Projects 页面并单击 Create Project。
  2. 单击 ‘Add Dataset’ 按钮并选择添加数据集。
  3. 选择ACCIDENTS并单击确定。
  4. 将 ACCIDENTS 数据集拖放到地图上。 这将创建一个地图图层。(注:要在地图中移动,您可以使用鼠标滚轮放大/缩小并单击并拖动以平移。)
  5. 您可以选择配置地图设置,包括标签、导航控件小部件、比例尺和图例。 单击齿轮图标以访问地图设置。 选择选项并单击确定以启用选择。
  6. 在“Layers List”面板中,单击“ACCIDENTS”的三明治图标并选择“Settings”。
  7. 从这里您可以控制图层显示和交互设置。 您将在后面的部分中试验这些功能。 目前,只需更新图层的半径(大小)、颜色和不透明度,然后单击Back链接。

任务 2:添加数据集

  1. 接下来,将 2 个警察数据集添加到项目中。 单击数据元素面板顶部的 ‘Add Dataset’ 按钮,选择添加数据集,使用 shift-enter 选择两个警察数据集,然后单击确定。
  2. 正如您之前对 ACCIDENTS 所做的那样,将 POLICE_POINTS 数据集从 Data Elements 面板拖放到 POLICE_POINT 图层的三明治菜单并选择 Settings。 更新半径、颜色、不透明度。 然后单击“图层”面板顶部的“Back”链接。
  3. 随着图层被添加到地图中,它们会呈现在现有图层的顶部。 因此,POLICE_POINTS 当前位于 ACCIDENTS 之上。 要重新排列图层以使 POLICE_POINTS 位于 ACCIDENTS 下方,请将鼠标移到图层列表中的 POLICE_POINTS 上,单击并按住(您将看到光标变为十字准线),然后在 ACCIDENTS 下方拖动。
  4. 将 POLICE_BOUNDS 数据集拖放到地图上。 正如您对 POLICE_POINTS 所做的那样,重新排序图层,使 POLICE_BOUNDS 位于底部(即呈现在其他图层下方)。 您现在已将 3 个数据集作为地图图层添加到我们的项目中。(注:可以通过单击图层名称旁边的蓝色眼球图标来关闭/打开各个图层。)
  5. 单击 POLICE_BOUNDS 图层的三明治菜单并选择设置。 更新填充和轮廓的颜色和不透明度。 请注意,使用白色轮廓可以减少较暗轮廓的杂乱效果。

最终效果如下,注意图层顺序。本节大部分的工作都在设置演示,透明度等。
在这里插入图片描述

任务 3:添加可视化

  1. Spatial Studio 允许您将数据集显示为地图和表格。 要添加可视化,请单击左侧的可视化按钮,然后将表格拖放到现有地图视图的边缘。 当表格可以放入时,您将看到一个灰色条。
  2. 将地图拖放到现有地图上方。 当您将鼠标悬停在现有地图的边缘并可以放入新地图时,将出现灰色条。
  3. 单击左上角的 Datasets 按钮,然后将 ACCIDENTS 拖放到表中。
  4. 将 ACCIDENTS 拖放到新地图中。
  5. 要折叠 Data Elements 面板并提供更多屏幕空间,请将鼠标悬停在右边缘并单击灰色箭头。
  6. 要展开“数据元素”面板,请将鼠标悬停在左边缘并单击灰色箭头。
  7. 您可以通过单击右上角的 X 图标来删除可视化。 我们将在本次研讨会中仅使用我们的初始地图,因此请删除您刚刚创建的新表格和地图。

在这里插入图片描述

任务 4:保存项目

  1. 单击右上角的保存按钮以保存项目并提供名称,例如 LiveLabs Spatial Intro。
  2. 从左侧导航栏导航到 Projects 页面并观察我们现在列出的项目。
    在这里插入图片描述

实验 4:应用地图样式和交互性

介绍

Spatial Studio 允许您自定义地图图层的“外观”和交互性。 为地图图层设置样式包括颜色、透明度等选项,如果是点,还包括标记。 样式也可以由数据值自动控制(“数据驱动样式”),使得颜色和/或标记大小基于数据值。 例如,这允许您根据收入使用颜色呈现销售区域。 交互性是指当用户单击或悬停在地图图层中的项目上时发生的情况。 这包括显示工具提示和/或打开带有项目数据值的弹出窗口。 在本实验中,您将探索其中一些样式和交互功能。

目标

  • 理解渲染风格
  • 理解数据驱动的样式
  • 了解如何使用配色方案
  • 了解如何配置地图图层的交互性

任务 1:导航到样式

要专注于 ACCIDENTS 图层,请通过单击可见性控件(即蓝色眼球图标)关闭地图中的 2 个警察图层。
在这里插入图片描述

任务 2:应用集群样式

可以使用各种渲染样式渲染点图层,例如 ACCIDENTS。 每种渲染样式都有自己的设置。 将渲染样式从 Circle(默认)更改为 Cluster。

地图现在使用圆圈显示事故,以表示聚集在区域中的许多点。 聚类圆的大小基于每个区域中聚类的点数。 您可以试验代表每个集群中点数的文本标签的颜色和样式。
在这里插入图片描述

请注意,当您放大(旋转鼠标滚轮)时,集群会爆炸成更小的集群,而当您缩小时,反之亦然。
在这里插入图片描述

任务 3:应用热图样式

将渲染样式从集群更改为热图。 现在,地图会根据点的集中度以连续颜色呈现 ACCIDENTS。 热色代表点集中,冷色代表点稀少。 热图样式的一个关键参数是半径,它控制每个点周围的距离以定义浓度。 默认半径太大,以至于初始热图仅显示道路沿线的点对比,这不是很有帮助。
在这里插入图片描述
要将我们的热图集中在更局部的收缩上,请将半径从默认值减小到 10,并观察点集中度的更局部视图。
在这里插入图片描述

任务 4:应用数据驱动风格

将渲染样式从热图更改为圆形。 使用圆形渲染样式时,半径和颜色都可以由数据值控制。 下拉颜色菜单并选择“基于数据”。

您现在选择用于控制样式的列。 选择 NR_VEHICLES 列(即事故中涉及的车辆数量)并观察 ACCIDENTS 变成颜色编码。 您可以接受其他默认值,然后单击样式详细信息面板顶部的返回链接。
在这里插入图片描述
现在您已经根据数据值分配了颜色,通过将半径设置为 3 并将不透明度设置为 90% 来完成样式。 此外,更新描边(即轮廓)值:将宽度设置为 0.5,颜色设置为灰色,不透明度设置为 90%。 如果您愿意,您当然可以为这些选择您自己的值。 然后单击返回链接返回到图层列表。
在这里插入图片描述

任务 5:应用符号样式

接下来,您将对 POLICE_POINTS 图层使用剩余的点样式选项 Symbol。 打开 POLICE_POINTS 图层并通过单击可见性控件(即蓝色眼球图标)关闭地图中的其他 2 个图层。然后单击 POLICE_POINTS 的汉堡包图标并选择设置。

将渲染样式更改为符号,然后在图像文本框内单击以打开符号选择对话框。 选择 marker-11 并将不透明度更新为 90%,将大小因子更新为 0.6。 如果您愿意,您当然可以为这些选择您自己的值。 然后单击返回链接返回到图层列表。
在这里插入图片描述

任务 6:应用交互性

然后单击图层 POLICE_BOUNDS 的汉堡图标,然后选择设置。 然后单击交互选项卡。 我们为层配置的第一种交互类型是选择项目的能力。 选择用于分析,例如我们想要识别选定区域中包含的项目。 默认情况下,可选选项是关闭的。 单击 POLICE_BOUNDS 区域并观察未选择任何内容。 然后打开允许选择,在 POLICE_BOUNDS 区域内单击并观察突出显示的选择。
在这里插入图片描述
接下来,您配置工具提示,即,将鼠标悬停在项目上时显示的弹出窗口。 默认情况下,工具提示被禁用。 将鼠标悬停在 POLICE_BOUNDS 区域上并观察到没有任何反应。 然后打开显示工具提示,选择一个工具提示栏,将鼠标悬停在一个区域上,然后观察工具提示。
在这里插入图片描述
最后,您配置信息窗口,即单击项目时显示的弹出窗口。 默认情况下,此选项处于关闭状态。 单击 POLICE_BOUNDS 区域并观察未显示任何信息窗口。 然后打开显示信息窗口,选择要显示的列,在 POLICE_BOUNDS 区域内单击并观察显示的信息窗口。
在这里插入图片描述

任务 7:保存更改

单击 Back 链接,然后单击 Save 按钮以保存我们的项目以及样式更改。

实验 5:执行空间分析

介绍

Spatial Studio 无需编写代码即可访问 Oracle 数据库的空间分析功能。 为空间分析提供了简单的用户界面,所有底层数据库语法都在后台自动处理。 Spatial Studio 中的空间分析操作分为几类:

  • 筛选
    包含:“我的哪些资产位于危险区域内?”
    邻近性:“我们的哪些站点位于预计风暴路径的 5 英里范围内?”

  • 结合
    按位置加入:“根据遏制将销售线索与销售区域相关联。”
    合并项目:“将多个县合并为 1 个销售区域”

  • 转换
    缓冲区:“创建围绕火场 10 英里的形状。”
    质心:“在每个火区的中间创建点。”

  • 测量
    面积:“以平方公里为单位的风暴潮区域的面积是多少?”
    距离; “从我们的每个资产到预计的风暴路径的最小距离是多少?”

  • 分析
    按区域总结:“每个规划区域内建筑物的平均年龄是多少?”
    每个项目最近:“离每个分店最近的仓库是什么,距离多远?”

在本实验中,您将探索其中的几种空间分析。

预计实验室时间:45 分钟

目标

  • 了解 Spatial Studio 中的空间分析类别
  • 了解如何执行空间分析和可视化结果

任务 1:按邻近度过滤

在此步骤中,您将使用空间过滤器来识别所选警察局指定距离内的事故。

首先点击警察局。 在下图中,我点击了红框中的警察局。 这将选择警察局用于邻近分析。 如果在进行选择时出现任何问题,请确认已为 POLICE_POINTS 图层启用了允许选择,如实验 3 步骤 6 中所述。

单击 ACCIDENTS 图层的汉堡菜单并选择空间分析
在这里插入图片描述
单击 Filter 选项卡,选择Return shapes within a specific distance of another。然后,输入参数:
在这里插入图片描述
分析结果只是 Spatial Studio 中的另一种数据集。 正如您将在后面的实验中看到的那样,分析结果可以添加到其他地图/表格中,用于其他项目,通过 REST 或 SQL 以编程方式访问,或导出为文件。

分析结果列在“数据元素”面板的“分析”下。 将分析结果拖放到地图上。 这将创建一个新的地图图层,仅显示所选警察局指定距离内的事故。
在这里插入图片描述
您不再需要地图中的此分析结果。 因此,为避免混乱,您接下来将其从地图中删除。 右键单击 Layers List 中的分析结果,然后选择 Remove

任务 2:按包含过滤

在此步骤中,您将使用空间过滤器来识别选定警察区域内的事故。

首先单击 POLICE_BOUNDS 图层中的一个区域。 所选区域将用于过滤事故。 在下图中,红色框中的区域被选中。
在这里插入图片描述
正如您在第 1 步中对先前分析所做的那样,单击 ACCIDENTS 图层的汉堡菜单并选择空间分析。 这一次,我们按“包含”过滤。 所以选择Return shapes that are inside another
在这里插入图片描述
把数据集加入地图,放大后显示如下:
在这里插入图片描述

任务 3:通过包含Join

在这里,您根据空间关系Join数据集。 您将根据包含ACCIDENTS 和 POLICE_BOUNDS进行Join。 您可以认为这是用包含它的警察区域来丰富或标记每个事故。

与之前的分析一样,单击图层列表中 ACCIDENTS 图层的汉堡菜单,然后选择空间分析。 选择组合选项卡,然后选择 Spatial Join。
在这里插入图片描述
在 Spatial Join 对话框中,为结果输入名称 ACCIDENTS_JOIN_POLICE_BOUNDS。 对于其他条目,您将根据内部空间关系将 ACCIDENTS 中的项目连接到 POLICE_BOUNDS 中的项目。 此操作将生成一个包含 ACCIDENTS 的新数据集,其中包含每个项目的 POLICE_BOUNDS 区域的唯一 ID。 POLICE_BOUNDS 的唯一 ID(即键列)是 COMPNT_NM,因此我们希望在结果中看到该列。 单击运行。
在这里插入图片描述
结果列在“数据元素”面板的“分析”下。 展开结果以查看其列; ACCIDENTS 中的所有原始列,以及预期的 COMPNT_NM(即警察区域名称)。
在这里插入图片描述
您现在已使用每个项目的警察区域名称来扩充事故数据。 结果可用于 Spatial Studio 的进一步分析,或由其他工具和应用程序(如 Oracle Analytics Cloud)访问以进行更广泛的分析。

任务 4:按地区汇总项目

在上一步中,您使用警察区域增加了事故项目。 在此步骤中,您执行相反的操作:您使用事故信息摘要来扩充警察区域。

单击图层列表中 POLICE_BOUNDS 图层的汉堡菜单,然后选择空间分析。 选择分析选项卡,然后选择Summarize by Region

在按区域汇总对话框中,您可以保留默认结果数据集名称 POLICE_BOUNDS SUMMARIZE。 在对话框中输入其他项目:对于 POLICE_BOUNDS 中的每个项目,您正在根据 Count 汇总 ACCIDENTS。 输入 NUM_ACCIDENTS 作为要添加事故计数的列。 单击运行。
在这里插入图片描述
将结果 POLICE_BOUNDS SUMMARIZE 拖到地图上。 然后在图层列表中单击 POLICE_BOUNDS SUMMARIZE 的汉堡菜单并选择设置。 在样式下,将颜色更改为基于数据。
对于列,选择 NUM_ACCIDENTS。 用 1、5、10、15、20 更新值。在任何单元格中输入每个值,因为它们将在值列表中自动排序。 输入值后,单击编辑图标以设置调色板并选择一个调色板。 观察地图显示的警察区域,根据您的值和调色板条目按事故数量进行颜色编码。
在这里插入图片描述
单击或悬停在警察区域上时,您可以自行添加带有事故计数的信息窗口或工具提示。 正如您在实验 2/步骤 3 中所做的那样,您还可以添加一个表格视图并拖动 POLICE_BOUNDS SUMMARIZE 以查看表格形式的信息。

任务 5:识别距离最近的项目

在本例中,最近的项目表示只显示一个。

在此步骤中,您确定离每个警察局最近的事故。 结果包含每个警察局,并增加了 id 和与最近事故的距离。 该分析还提供了一个选项,包括最近项目的所有列,而不仅仅是 id 和距离。
单击图层列表中 POLICE_POINTS 图层的汉堡菜单,然后选择空间分析。 选择Analytics选项卡,然后单击Nearest per item。

将结果命名为 POLICE_POINTS WITH NEAREST ACCIDENT(或您选择的名称)。 对于 POLICE_POINTS 中的每个项目,您都在 ACCIDENTS 中找到最近的项目。 展开高级部分。 启用在结果中包含距离的选项。 对于距离列名称,输入 DISTANCE_TO_ACCIDENT(或您选择的名称)。 将距离单位更改为公里(或您选择的其他单位)。

在图层列表中,关闭 POLICE_POINTS 图层。 将 POLICE_POINTS WITH NEAREST ACCIDENT 分析拖到地图上。

转到 POLICE_POINTS WITH NEAREST ACCIDENT 图层的设置并设置您选择的样式。 然后转到交互选项卡并启用信息窗口。 选择您选择的列,包括此分析添加的列:ACCIDENT_ID 和 DISTANCE_TO_ACCIDENT。 单击 POLICE_POINTS 项目并观察信息窗口显示 ID 和到最近项目的距离 ACCIDENTS。

现在,您可以自行根据与最近事故的距离、颜色或大小随意设置警察局的样式。

最后,保存您的项目以保留您的更改。
在这里插入图片描述

任务 6:访问 SQL 代码和 GeoJSON 端点 [可选]

此可选步骤适用于对以编程方式访问结果感兴趣的开发人员。 Spatial Studio 允许您查看用于空间分析的 SQL 代码,并提供一个以 GeoJSON 形式返回结果的 Web 端点。 此信息在数据集属性中可用,可在项目中或从数据集页面访问。 您将从您的项目中访问信息。

在 Data Elements 面板中,单击其中一项分析的汉堡菜单,例如 ACCIDENTS INSIDE 并选择 Properties

观察带有 SQL 代码和 GeoJSON 端点的部分。
在这里插入图片描述
其中GeoJSON端点:

https://130.61.147.125:4040/spatialstudio/api/v1/jsonstream/207424dbd9ae56055e138f720602b998

SQL为:

SELECT
    "t4"."SEVERITY"    AS "SEVERITY",
    "t4"."NR_VEHICLES" AS "NR_VEHICLES",
    "t4"."DATE_TIME"   AS "DATE_TIME",
    "t4"."GEOM"        AS "GEOM",
    "t4"."ACCIDENT_ID" AS "ACCIDENT_ID"
FROM
    "ACCIDENTS" "t4"
WHERE
    "t4"."ACCIDENT_ID" IN (
        SELECT
            "t2"."ACCIDENT_ID" AS "key"
        FROM
            "ACCIDENTS" "t2", (
                SELECT
                    "t1".*
                FROM
                    "POLICE_BOUNDS" "t1"
                WHERE
                    "t1"."COMPNT_NM" IN ( 'BELMONT' )
            )           "t3"
        WHERE
            sdo_inside("t2"."GEOM", "t3"."GEOM") = 'TRUE'
    )

自行将 GeoJSON 端点粘贴到浏览器中并观察以 GeoJSON 形式返回的结果。 同样,您可以将 SQL 代码复制并粘贴到 SQL Developer Web 中以直接运行分析。

Oracle Spatial Studio 简介研讨会到此结束。

致谢

本实验的作者为David Lapp,数据库产品经理。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/stevensxiao/article/details/125057604

智能推荐

MFC3 基本对话框的使用(三) 滑块与进度条_setticfreq-程序员宅基地

文章浏览阅读1.5k次,点赞3次,收藏16次。要求:将滑块与编辑框、进度条相连接。调整滑块位置同时显示滑块当前对应数值,达到设定要求时改变进度条的进度。一、界面设计滑块是slider control,进度条是progress control对于三个滑块,修改属性:对于三个示例编辑框,修改属性:二、添加变量三、初始化滑块和进度条在Dlg.cpp中找到初始化函数BOOL COOPEx3Dlg::OnI..._setticfreq

240320俄罗斯方块java,JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_2-程序员宅基地

文章浏览阅读202次。packagecode;//importjava.awt.*;//importjava.awt.Canvas;//importjava.awt.event.*;//importjavax.swing.*;importjava.util.Random;importjavax.microedition.lcdui.*;//写界面所需要的包/***//***俄罗斯方块*高雷*2007年1..._240×320java游戏

在线电影院售票平台(源码+开题报告)-程序员宅基地

文章浏览阅读779次,点赞14次,收藏19次。然后,实现系统的数据管理和服务功能,包括用户的注册与登录、电影的分类与展示、电影信息的查询与推荐、座位的选择与预订、在线支付与电子票生成等。此外,随着在线视频平台的兴起,越来越多的人选择在线观看电影,这对传统电影院产生了巨大的冲击。研究意义: 开发在线电影院售票平台对于提升用户的观影体验、优化电影院的运营效率、促进电影产业的发展具有重要的意义。该系统旨在通过技术手段解决传统电影院售票中的问题,提供一个集成化的电影信息展示、座位选择、在线支付和用户评价平台,同时也为电影院和电影制作方提供有效的工具。

程序员熬夜写代码,用C/C++打造一个安全的即时聊天系统!_基于c++的即时聊天系统设计-程序员宅基地

文章浏览阅读509次。保护我们剩下的人的通话信息安全,使用TOX可以让你在和家人,朋友,爱人交流时保护你的隐私不受政府无孔不入的的偷窥.关于TOX:其他牛逼的软件因为一些细化服务问你要钱的时候, TOX分文不取 . 你用了TOX, 想干嘛就干嘛.网友评论:项目源码展示:源码测试效果:最后,如果你学C/C++编程有什么不懂的,可以来问问我哦,或许我能够..._基于c++的即时聊天系统设计

linux Java服务swap分区被占用内存泄露问题故障及解决方法_linux swap占用很高-程序员宅基地

文章浏览阅读584次。鱼弦:CSDN内容合伙人、CSDN新星导师、全栈领域创作新星创作者 、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen)当Java服务在Linux系统中运行时,可能会出现swap分区被占用的内存泄露问题,导致系统性能下降或者崩溃。下面是该问题的故障及解决方法、底层结构、架构图、工作原理、使用场景详解和实际应用方式、原理详细描述、相关命令使用示例以及文献材料链接。_linux swap占用很高

word中利用宏替换标点标点全角与半角-程序员宅基地

文章浏览阅读662次。Alt+F11,然后插入-模块:复制下面代码到编辑窗口:Sub 半角标点符号转换为全角标点符号()'中英互译文档中将中文段落中的英文标点符号替换为中文标点符号 Dim i As Paragraph, ChineseInterpunction() As Variant, EnglishInterpunction() As Variant Dim MyRange..._替换半角宏

随便推点

Harmonyos 自定义下拉列表框(select)_harmonyos 下拉列表-程序员宅基地

文章浏览阅读7.8k次。自定义一个下拉列表框,当这个功能有效时,点击可弹出下拉框,选中某个选项后,在左边功能名称下面显示选项值,右边的箭头替换成自定义图标,例如手法功能;当功能无效时,置灰,如力度功能;具体示例如下:代码如下:index.hml<!--手法无效时--><div class="fun-grid-item" if="{{manualInvalid}}"> <div class="grid-item-parent-ver._harmonyos 下拉列表

VBA入门到进阶常用知识代码总结44_msofalse-程序员宅基地

文章浏览阅读1k次。第44集 图片与图形处理198、 Shape对象的类型和属性该对象代表工作表或图形工作表上的所有图形,它是sheets和chart的子对象(属性)。Sheet1.ShapesSub t2()On Error Resume NextDim ms As Shapek = 1For Each ms In Sheet1.Shapesk = k + 1Cells(k, 1) = ms.Na..._msofalse

公司个人年终工作总结【10篇】_csdn 公司 年终终结-程序员宅基地

文章浏览阅读1.2k次。公司个人年终工作总结1 20__年即将过去,在公司领导的悉心关怀下和同事们的帮助指导下,结合我自身的努力,在工作、学习等各方面都取得了长足的进步,尤其是在保险理赔专业知识和技能培养方面的成熟,使我成为一名合格的车险查勘定损员。随着工作岗位的调整,我已经成长为为一名能够独立工作、业务熟练的前台工作人员。现将一年来的工作情况向公司领导总结汇报如下: 一、加强理论学习,注重个人素质提高 加强自身业务学习,争做理赔标兵。在日常的工作学习中,我坚持学习更多的保险知识和业务技能,在老同志的“传帮带”下,不断加强个_csdn 公司 年终终结

bitcoin 调试环境搭建-程序员宅基地

文章浏览阅读1.6k次。_bitcoin 调试环境搭建

曲线生成 | 图解B样条曲线生成原理(基本概念与节点生成算法)-程序员宅基地

文章浏览阅读4.3k次,点赞93次,收藏94次。为了解决贝塞尔曲线无法局部修正、控制性减弱、曲线次数过高、不易拼接的缺陷,引入B样条曲线(B-Spline)。本文介绍B样条曲线的基本概念:节点向量、支撑性、次数阶数、加权性质、节点生成算法等,为后续曲线计算打下基础。_样条曲线生成

CDH安装宝典之ClouderaManager_/opt/cloudera/cm-agent/service/mgmt/mgmt.sh: line -程序员宅基地

文章浏览阅读902次。配置本地repo库下载我的阿里云盘文件文件放置#创建目录mkdir -p /opt/cloudera/parcel-repo/mkdir -p /opt/cloudera/cm/yum install createrepoCDH 6.2.0 的三个文件放到/opt/cloudera/parcel-repo/中,并且注意把sha256后缀的文件名修改为sha#执行createrepo命令生成rpm元数据 最终/opt/cloudera/parcel-repo/会多一个repodata目录_/opt/cloudera/cm-agent/service/mgmt/mgmt.sh: line 76: /usr/java/jdk1.8.0_181

推荐文章

热门文章

相关标签