仅使用 x、y 坐标和形状区域 (2D) 检查形状是否在另一个形状的边界内

Check if a shape is within the bounds of another shape using only x,y coords and shape area (2D)

所以我有一个 XML 数据库,里面装满了世界上不同岛屿和湖泊的数据,我想 select 所有至少有一个岛屿的湖泊。问题是我所掌握的关于每一个的唯一相关数据是它们的经度、纬度和它们的总面积。

岛屿XML示例:

<island id="island-Svalbard" country="SVAX" sea="sea-ArcticOcean sea-Greenlandsea sea-NorwegianSea sea-BarentsSea">
  <name>Svalbard</name>
  <islands>Svalbard</islands>
  <area>39044</area>
  <latitude>78.9</latitude>
  <longitude>18.2</longitude>
  <elevation>1713</elevation>
</island>

湖XML示例:

<lake id="lake-LagunaCarbon" country="RA" type="saline">
  <name>Laguna del Carbón</name>
  <located country="RA" province="prov-Argentina-20"/>
  <area>9</area>
  <latitude>-49.58</latitude>
  <longitude>-68.35</longitude>
  <elevation>-105</elevation>
  <depth>0</depth>
</lake>

那么如何仅使用此信息来检查岛屿是否在湖泊范围内?有可能吗?

当前(未完成)Xquery:

let $doc := doc("mondial.xml")/mondial
let $lakes := $doc/lake
let $islands := $doc/island

let $lakesWithIslands := (
  for $l in $lakes
  let $lLong := $l/data(longitude)
  let $lLat := $l/data(latitude)
  let $lArea := $l/data(area)
    for $i in $islands
     let $iLong := $i/data(longitude)
     let $iLat := $i/data(latitude)
     let $iArea := $i/data(area)
     where (something)
  return $l
)

return $lakesWithIslands

感谢任何帮助。 谢谢!

事实证明,在 island 元素中实际上有一个 @lake 属性,我可以用它来找出一个岛在哪个湖中,然后用它来找出哪些湖中有岛屿。 @LeoWörteler 在评论中指出了这一点。所以我的问题实际上得到了完全不同的解决方案。