无法使用 SDO_GCDR.GEOCODE_AS_GEOMETRY 将地址转换为 SDO_GEOMETRY

问题描述 投票:0回答:1

我有一个表,其中包含 Apex Oracle 中表中的下一列: 位置 ID:号码 地址:varchar2 国家:varchar2 我想在应用程序构建器创建的应用程序页面上的地图上使用 SQL 查询来标记所有这些位置。

但是由于我决定不创建额外的列来存储坐标,因此我尝试使用 SDO_GCDR.GEOCODE_AS_GEOMETRY 将地址(例如“100 Hauptplatz,Berlin”)和国家/地区转换为 SDO_GEOMETRY。查询本身如下所示

SELECT SDO_GCDR.GEOCODE_AS_GEOMETRY(
  'My_workspace',
  SDO_KEYWORDARRAY(address),
  country
) as address 
FROM pickup_location;

但是我收到以下错误

Ajax 调用返回服务器错误 ORA-13199:SRID 0 不存在。对于.

之后我决定尝试使用Oracle文档中的示例(https://docs.oracle.com/en/database/oracle/oracle-database/19/spatl/SDO_GCDR-reference.html#GUID-D81719AB -9F05-440F-A66E-D40B9A34388C):

SELECT SDO_GCDR.GEOCODE_AS_GEOMETRY(
  'My_workspace',
  SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA  94102'),
  'US'
) as address 
FROM pickup_location;

返回相同的错误。所以我想知道,我做错了什么?有没有办法使用地址和国家/地区在地图上显示标记,或者我应该添加另一列来存储坐标?我无法找到有关此的更多信息。

sql oracle-apex geocoding
1个回答
0
投票

来自 空间 Web 服务文档

12.3 使用地理编码功能

要使用 Oracle Spatial and Graph 地理编码功能,您必须使用地理编码供应商提供的数据,并且数据必须采用 Oracle Spatial and Graph 地理编码功能支持的格式。

要使用地理编码功能,您似乎首先需要从第三方供应商购买并安装地理编码数据(因为 Oracle 不提供此数据);对此的支持超出了 StackOverflow 的范围。

© www.soinside.com 2019 - 2024. All rights reserved.