Bing Maps-API - SQL - Geometrie vs. geografischer Typ

9

Ich entwickle einen Mapping-Service mit Bing Maps AJAX API und SQL Server 2008. Die Frage, die sich mir stellt, ist, ob ich den Geografie- oder Geometriedatentyp verwenden soll. Ich recherchierte viel, fand aber keine befriedigende Antwort. Hier sind einige Links zum Thema:

Wenn ich die zwei Typen vergleiche, sehe ich die folgenden Punkte.

pro Geographie

  • konsistente Entfernungsberechnung auf der ganzen Welt (Zeitlinie!)
  • Das Koordinatensystem der Datenbank entspricht dem Koordinatensystem, das zum Hinzufügen von Daten zu einer Karte mit der Bing Maps-API (WGS84)
  • verwendet wird
  • genau

gegen Geographie

  • hohe Rechenkosten
  • Datengröße beschränkt auf eine Hemisphäre
  • fehlende Funktionen (STConvexHull (), STRelate (), ...)

pro Geometrie

  • schnellere Berechnung
  • unbeschränkte Datengröße

gegen Geographie

  • Entfernungseinheiten in Grad (wenn wir WGS84-Koordinaten verwenden)

Das Problem für mich ist, dass ich kein schnelles Framework, eine große Abdeckung (die ganze Welt) und hohe Funktionalität brauche. Daher würde ich den Geometrietyp bevorzugen. Das Problem mit dem Geometrietyp ist, dass ich meine Daten in eine flache Projektion umwandeln muss (Bing Map benutze SRID = 3875), damit ich Meter für die Berechnung bekomme. Aber wenn ich die Bing Maps-Projektion (3875) in der Datenbank verwende, muss ich meine Daten zurück in WGS84 transformieren, wenn ich sie nicht in der Karte anzeigen will.

Ich hoffe, dass alle mein Problem und mein Englisch verstehen.
Ich würde jeden Vorschlag schätzen.

    
nd_ 15.07.2011, 14:16
quelle

1 Antwort

4

Sie haben eine recht gute Zusammenfassung der Unterschiede zwischen den beiden Typen geliefert, und Sie haben die zwei vernünftigen Alternativen korrekt identifiziert, entweder Geografie (4326) oder Geometrie (3857), also bin ich mir nicht ganz sicher, was Mehr Informationen, die jeder zur Verfügung stellen kann - Sie müssen nur die Entscheidung selbst treffen, basierend auf den Informationen, die Ihnen zur Verfügung stehen.

Ich würde sagen, dass der Geometrie-Datentyp wahrscheinlich etwas schneller ist als der geographische Datentyp (da er auf einfacheren planaren Berechnungen beruht und von einer engen Begrenzungsbox über den betreffenden Bereich profitieren kann), diese Leistungssteigerung Dies wird mehr als ausgeglichen durch die Tatsache, dass Sie dann zurück zu WGS84 lat / long unproject müssen, um zu Bing Maps zurückzukehren - die Reprojektion ist ein teurer Prozess.

Sie können natürlich WGS84-Winkelkoordinaten mit dem Geometrie-Datentyp speichern, aber das ist wirklich ein Hack und nicht zu empfehlen - Sie werden fast sicher in Schwierigkeiten auf der ganzen Linie stoßen.

Ich würde also empfehlen, den geografischen Datentyp und WGS84 zu verwenden. Bei sorgfältiger Indexoptimierung sollten Sie dennoch in der Lage sein, für die meisten Abfragen selbst großer Datenmengen Antwortzeiten unter einer Sekunde zu erhalten. Übrigens wird die Regel "innerhalb einer Hemisphäre" für den geographischen Datentyp in SQL Denali aufgehoben, so dass die Einschränkung wegfällt, wenn Sie ein Upgrade durchführen.

    
Alastair Aitchison 15.07.2011, 22:48
quelle

Tags und Links