【问题标题】:Issue with SQLGeography STUnion & inner rings for drawing polygons on Bing Maps WPF control用于在 Bing Maps WPF 控件上绘制多边形的 SQLGeography STUnion 和内环问题
【发布时间】:2016-05-12 18:35:16
【问题描述】:

我正在使用 Bing API 空间数据服务编写一个应用程序来获取邮政编码列表并将它们组合到一个区域中。我大部分时间都在工作,但内圈似乎有问题。而不是a)认为内部区域太小而只是挤压它或b)正确绘制内环,它似乎想要连接它们,如下图示例:

那个内部多边形应该只是该区域中的一个“洞”,但它却试图将它们连接起来。

我目前有 2 种相关方法。一种解密邮政编码的 API 响应,将其转换为 SqlGeographySTUnion()s 的任何附加环。和第二个父方法STUnions 将第一个方法的结果发送给一个主SqlGeography 对象,该对象在为一个区域完成时包含所有邮政编码。

如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: c# .net bing-maps sqlgeography sqlgeometry


    【解决方案1】:

    我怀疑问题在于如何在 WPF 地图控件中创建孔,因为该控件中的多边形默认情况下不支持孔。相反,在 WPF 控件中的多边形中创建孔的常见做法是绘制一条连接所有环的线。您将在外环上选择一个点,画一条线到第一个内环,画内环,然后画一条线回到外环。为此,必须关闭环,并且线必须在自身上回溯。然后隐藏多边形的笔触,并使用折线绘制轮廓。

    查看您的图像,看起来一个内环正在尝试执行上述操作以创建第二个内环,但不是回溯到第一个内环,而是回溯到外环。

    【讨论】:

    • 我可以在SqlGeography 对象上运行任何命令来自动去除内环吗?
    • 有几个选项可以做到这一点。一个选项在这里:gis.stackexchange.com/questions/17555/… 另一种选项是创建一个函数,从多边形的外环创建一个多边形。我会环顾四周,看看我是否在某个地方有一些代码。
    • 还没有机会组合一个 SQL 函数来删除多边形的内环。但是,我已经看到了您的技术支持电子邮件。看起来您只检索每个邮政编码的第一个多边形,而不是所有多边形。将 URL 中“Postcode1”值后面的 0 设置为 1。这将为每个邮政编码返回几个多边形,这将有助于填充一些空白区域。
    • 哈,小世界。有趣的是,我认为内环是这里的敌人,我是否应该将它们包括在内以便更容易移除它们?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 2017-03-27
    相关资源
    最近更新 更多