2016-05-12 10 views
0

Ich schreibe eine App mit Bing API Spatial Data Services zu Liste von Postleitzahlen zu nehmen und sie in einer Region zu kombinieren. Ich habe es meistens funktioniert, aber es scheint Probleme mit inneren Ringen zu haben. Statt a) Anmutung den inneren Bereich zu klein und Quetschen es gerade oder b) richtig den inneren Ring zeichnen, scheint es zu wollen, um sie zu verbinden, Bild Beispiel unten:Problem mit SQLGeography STUnion & innere Ringe zum Zeichnen von Polygonen auf Bing Maps WPF Steuerelement

enter image description here

Das Polygon Interrior hätte sein sollen nur ein "Loch" in der Region, aber stattdessen versucht es, sie zu verbinden.

Ich habe derzeit 2 relevante Methoden. Eine, die die API-Antwort für die Postleitzahl entschlüsselt, übersetzt sie in SqlGeography und STUnion() s zusätzliche Ringe. und eine zweite Elternmethode, die die Ergebnisse der ersten Methode zu einem Master STUnion Objekt zusammenfasst, das alle Postleitzahlen zusammen enthält, wenn es für eine Region getan wird.

Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Antwort

0

Ich vermute, das Problem besteht darin, wie das Loch im WPF-Map-Steuerelement erstellt wird, da Polygone in diesem Steuerelement standardmäßig keine Löcher unterstützen. Stattdessen besteht die übliche Vorgehensweise zum Erstellen von Löchern in einem Polygon im WPF-Steuerelement darin, eine Linie zu zeichnen, die alle Ringe verbindet. Sie würden einen Punkt auf dem äußeren Ring wählen, eine Linie zum ersten inneren Ring zeichnen, den inneren Ring zeichnen und dann eine Linie zurück zum äußeren Ring ziehen. Damit dies funktioniert, müssen die Ringe geschlossen sein und die Leinen müssen sich über sich selbst zurückziehen. Der Strich des Polygons wird dann ausgeblendet und Polylinien werden zum Zeichnen des Umrisses verwendet.

Wenn Sie Ihr Bild betrachten, sieht es so aus, als ob der eine innere Ring versucht, das obige zu tun, um einen zweiten inneren Ring zu erzeugen, aber nicht zurück zum ersten inneren Ring, sondern zum äußeren Ring.

+0

Gibt es irgendwelche Befehle, die ich auf dem 'SqlGeography' Objekt ausführen kann, um interne Ringe automatisch loszuwerden? – Hershizer33

+0

Es gibt ein paar Möglichkeiten, dies zu tun. Eine Option ist hier: http://gis.stackexchange.com/questions/17555/calculating-the-outer-boundary-of-several-geometry-objects-in-sql-server-2008 Eine andere Option ist, eine Funktion zu erstellen, die Erstellt ein Polygon aus dem äußeren Ring eines Polygons. Ich werde mich umsehen, ob ich irgendwo einen Code dafür habe. – rbrundritt

+0

Ich hatte keine Gelegenheit, eine SQL-Funktion zusammenzusetzen, um innere Polygonringe zu entfernen. Ich habe jedoch Ihre technische Support-E-Mail gesehen. Es sieht so aus, als ob Sie nur das erste Polygon jeder Postleitzahl und nicht alle Polygone abrufen. Setzen Sie die 0 nach dem Wert "Postleitzahl1" in Ihrer URL auf 1. Dadurch werden mehrere Polygone für jede Postleitzahl zurückgegeben, die dabei helfen werden, einige der leeren Bereiche auszufüllen. – rbrundritt

Verwandte Themen