当前位置: 首页 > 面试题库 >

在Oracle数据库中保存多边形

慕容文昌
2023-03-14
问题内容

我已经使用gps设备捕获了一个图的四个点(坐标)。

点1:-lat- 27.54798833长-80.16397166
点2:-lat 27.547766,长-80.16450166
点3:-lat 27.548131,长-80.164701
点4:----

现在我想将这些坐标保存在oracle数据库中,并将其另存为多边形。

谢谢


问题答案:

如果打算使用Oracle Spatial来存储或处理多边形,则需要将数据存储为SDO_GEOMETRY对象。这是一个简单的例子:

CREATE TABLE my_polygons (
  id INTEGER
, polygon sdo_geometry
)
/

INSERT INTO my_polygons (
  id
, polygon
)
VALUES (
  1
, sdo_geometry (
    2003 -- 2D Polygon
  , 4326 -- WGS84, the typical GPS coordinate system
  , NULL -- sdo_point_type, should be NULL if sdo_ordinate_array specified
  , sdo_elem_info_array(
      1    -- First ordinate position within ordinate array
    , 1003 -- Exterior polygon
    , 1    -- All polygon points are specified in the ordinate array
    )
  , sdo_ordinate_array(
      80.16397166, 27.54798833,
    , 80.16450166, 27.547766,
    , 80.164701, 27.548131,
    , 80.16397166, 27.54798833
    )
  )
)
/

这里有关于对象类型的不同标志的更多信息:http
:
//docs.oracle.com/cd/B19306_01/appdev.102/b14255/sdo_objrelschema.htm

需要注意的关键事项:

  1. 您的源坐标系是什么?您声明GPS-是WGS84(Oracle SRID = 4326)吗?您的GPS设备会告诉您。您可以在表中为此查找Oracle SRIDMDSYS.SDO_COORD_REF_SYS
  2. 确保您的坐标完成了一个完整的多边形(即环回起点)。
  3. 多边形外部边界的坐标应逆时针排列。
  4. 您可以st_isvalid()在几何对象上调用该方法以快速测试该方法是否有效。在将几何图形呈现给任何其他软件之前,应确保其有效。


 类似资料:
  • 问题内容: 我有一个模型对象,我想要一个带有日期的字段。目前,我正在使用适合我们需求的产品。 Hibernate将该字段以形式存储在数据库中。我们可以将其在数据库中的保存方式更改为更易读的格式,更重要的是将其更改为可排序的格式吗? 使用的数据库是mysql db。 问题答案: 这个问题已经解决了作为一种新的改进来 ,原来这是一个孤立的捆绑模块 现在,它直接捆绑,所以只要确保你使用的是最新的版本,它

  • 我有一个模型对象,我想在其中有一个带日期的字段。目前,我使用来满足我们的需要。 所使用的数据库是一个mysql数据库。

  • 我有一个关于在数据库中存储数据的问题。 我正在应用程序中的一些屏幕上工作:登录屏幕(用户可以访问你的帐户),注册屏幕(用户可以创建一个新帐户),用户提供信息的屏幕(比如“母亲的名字和身高”),以及配置文件屏幕(显示用户提供的信息)。 我在登录屏幕和注册屏幕中没有问题,但是我不知道如何在Firebase数据库中保存用户提供的信息,在用户提供信息的屏幕中。 你们谁能帮我一下吗?我知道我可以使用fire

  • 问题内容: 我想保存额外的信息,然后再将总订单发送到Paypal。对于每一项,我都在MySQL数据库中创建了一个要存储的列。现在,我正在考虑将其保存为一个数组,以后可以在创建PHP页面时阅读。多余的字段取自输入表单字段。 通过使用数组,可以确保不混淆信息吗? 问题答案: 您可以使用/ 存储数组。使用该解决方案,它们不能轻易地从其他编程语言中使用,因此您可以考虑使用/ 代替(它为您提供了广泛支持的格

  • 问题内容: 我正在尝试将法语口音保存在数据库中,但并没有像在数据库中那样保存它们。 例如,“é”另存为“é”。 我尝试将文件设置为“ Unicode(utf-8)”,数据库中的字段为“ utf8_general_ci”,以及数据库本身。 当我查看通过Firebug通过AJAX发布的数据时,我看到的重音为“é”,因此是正确的。 谢谢,让我知道您需要更多信息! 问题答案: 我个人通过在 MySQL连

  • 问题内容: 我的客户在php + mysql中创建了一个脚本,该脚本将图像直接保存在数据库中,并且每个图像都有这样的url:www.example.com/image.php?id=421 您认为这是一个非常错误的解决方案?我应该重建所有站点吗? 每天大约有1000次访问,数据库中大约有600张图像。 问题答案: 图像文件是文件,除非有充分的理由将它们存储在数据库中,否则它们应属于文件系统,在文件