Mehr

Berechnung des Abstands zwischen einem Punkt und einer virtuellen Linie von zwei Breitengrad/Längen

Berechnung des Abstands zwischen einem Punkt und einer virtuellen Linie von zwei Breitengrad/Längen


Bitte beachten Sie das Beispiel und das entsprechende Bild.

Ich möchte folgendes erreichen: Geben Sie zwei Standorte (lat/lng) an, die unten als EIN und B. Daraus würde eine virtuelle Linie gezogen und dann der Abstand zwischen dieser Linie und C berechnet werden würde (in jeder Messung).

Ich habe dies derzeit in Google Maps API v3 erreicht, möchte dies jedoch auch hinter den Kulissen in meiner bevorzugten Sprache durchführen können. Für Tipps/Ideen wäre ich sehr dankbar!


def get_perp( X1, Y1, X2, Y2, X3, Y3): """******************************** ************************************************* ************** Zweck - X1,Y1,X2,Y2 = Zwei Punkte, die die Enden des Liniensegments darstellen X3,Y3 = Der Offset-Punkt 'Rückgabe - X4,Y4 = Gibt die Punkt auf der Linie senkrecht zum Offset oder Keine, wenn kein solcher Punkt vorhanden ist '************************************ ************************************************* ************ """ XX = X2 - X1 YY = Y2 - Y1 Kürzeste Länge = ((XX * (X3 - X1)) + (YY * (Y3 - Y1))) / ( (XX * XX) + (YY * YY)) X4 = X1 + XX * ShortestLength Y4 = Y1 + YY * ShortestLength wenn X4 < X2 und X4 > X1 und Y4 < Y2 und Y4 > Y1: Rückgabe X4,Y4 Rückgabe Keine

Die kürzeste Länge ist der Abstand, den Sie benötigen, es sei denn, ich irre mich?


Vielleicht mache ich es zu kompliziert, aber was Sie wollen, ist die Entfernung von einem Punkt zu einer Linie. Das ist der Abstand von einem Punkt entlang AB, der AB mit C mit einer zu AB orthogonalen Linie verbindet. Dieser Vektor senkrecht zu AB ist gegeben durch

v=[x2-x1, -(y2-y1)] # Punkt A ist [x1,y1] Punkt B ist [x2,y2]

(Ich habe die eckigen Klammern verwendet, um einen Vektor oder ein Array mit zwei Elementen zu definieren). Der Abstand zwischen C [xp, yp] und Punkt A ist

u=[x1-xp, y1-xp]

Der Abstand zwischen der Geraden und C ist nur die Projektion von u auf v. Wenn wir mod(v) = 1 annehmen (einfach normalisieren), dann

Abstand = u*v = abs( (x2-x1)*(y1-yp) - (x1-xp)*(y2-y1) )

Die einzige Schwierigkeit besteht darin, dass Sie wahrscheinlich sicherstellen möchten, dass Ihre Koordinaten keine WGS84-Lat/Log-Paare sind, sondern projiziert (oder geodätische Koordinaten verwenden). Sie können dafür OGR oder Proj4 verwenden.


Da ich dieser ganzen Mathematik auch ein bisschen abgeneigt bin, würde ich es aus einem anderen Blickwinkel betrachten. Ich würde es zu einer "tatsächlichen" Linie anstelle einer virtuellen Linie machen und dann vorhandene Tools verwenden.

Wenn A und B ein Attribut teilen, können Sie sie durch Zeichnen einer Linie verbinden (Kosmo GIS hat ein Werkzeug, das Linien aus Punkten erstellt, und ich glaube, es gibt auch ein QGIS-Plugin dafür). Sobald Sie die Linien haben, gibt Ihnen eine 'Nähe'-Funktion auf der 'C'-Punktebene den Abstand zur Linie an. Lassen Sie die Software die Mathematik für Sie erledigen!


Wenn Sie Java auf Android verwendet haben, ist dies nur eine Zeile mit der Bibliotheksfunktion

statisches com.google.maps.android.PolyUtil.distanceToLine importieren;

DistanceToLine:

public static double distanceToLine(LatLng p, LatLng start,LatLng end)

Berechnet den Abstand auf der Kugel zwischen dem Punkt p und dem Anfang bis zum Ende des Liniensegments.

Parameter: p - der zu messende Punkt

start - der Anfang des Liniensegments

end - das Ende des Liniensegments

Rückgabe: die Entfernung in Metern (unter der Annahme einer kugelförmigen Erde)

Fügen Sie einfach Ihre Bibliothek hinzu

Abhängigkeiten { 'com.google.maps.android:android-maps-utils:0.5+' kompilieren }

Verwenden Sie die folgende Formel, um den Abstand zwischen zwei Lat-Longs zu ermitteln:

Übergeben Sie lat,longs mit der Funktion und Einheit, in der Sie die Entfernung wünschen ("K" für Kilometer und "M" für Meilen). Hoffe das wird dir helfen.

Location.distanceBetween() wird dies für zwei Breitengrad-Längengrad-Koordinatenpunkte tun.

Wenn Sie auf der Straße reisen (auch auf dem Luftweg), kommt die Peilung der Erde ins Spiel, da die Erde nicht flach ist. aber diese Haversine-Formel sollte sich schon darum kümmern. Zweitens, was die Leute vielleicht gesagt haben, ist, dass man, wenn man auf der Straße fährt, nicht einfach zwischen zwei Punkten geradeaus fährt. du nimmst eine ganze Reihe von Umdrehungen. Und um den Abstand zwischen zwei Punkten "genau" zu bestimmen, sollten Sie auch diese Kurven berücksichtigen.

Ich habe den Beispielcode im folgenden Link gefunden, um die Entfernung durch Straßen zu berechnen.

Seine Entfernung durch Radwege scheint größer zu sein, da sich Züge und Lastwagen nicht entlang einer geraden Linie bewegen, sondern Flugzeuge.

Sie benötigen eine Straßenkarte, um die Entfernung zu berechnen


Geographiefunktionen in Standard SQL

Die geografischen Funktionen arbeiten mit BigQuery-GEOGRAPHY-Werten oder generieren diese. Die Signatur jeder geografischen Funktion beginnt mit ST_ . BigQuery unterstützt die folgenden Funktionen, die verwendet werden können, um geografische Daten zu analysieren, räumliche Beziehungen zwischen geografischen Merkmalen zu bestimmen und GEOGRAPHY s zu erstellen oder zu bearbeiten.

Alle BigQuery-Geografiefunktionen geben NULL zurück, wenn ein Eingabeargument NULL ist.

Kategorien

Die geografischen Funktionen werden nach ihrem Verhalten in die folgenden Kategorien eingeteilt:

Kategorie Funktionen Beschreibung
Konstrukteure ST_GEOGPOINT
ST_MAKELINE
ST_MAKEPOLYGON
ST_MAKEPOLYGONORIENTED
Funktionen, die neue Geografiewerte aus Koordinaten oder vorhandenen Geografien erstellen.
Parser ST_GEOGFROM
ST_GEOGFROMGEOJSON
ST_GEOGFROMTEXT
ST_GEOGFROMWKB
ST_GEOGPOINTFROMGEOHASH
Funktionen, die Geografien aus einem externen Format wie WKT und GeoJSON erstellen.
Formatierer ST_ASBINARY
ST_ASGEOJSON
ST_ASTEXT
ST_GEOHASH
Funktionen, die Geografien in ein externes Format wie WKT exportieren.
Transformationen ST_BOUNDARY
ST_CENTROID
ST_CENTROID_AGG (Aggregat)
ST_CLOSESTPOINT
ST_CONVEXHULL
ST_DIFFERENCE
ST_DUMP
ST_INTERSECTION
ST_SIMPLIFY
ST_SNAPTOGRID
ST_UNION
ST_UNION_AGG (Aggregat)
Funktionen, die basierend auf der Eingabe eine neue Geografie generieren.
Zubehör ST_DIMENSION
ST_DUMP
ST_ENDPOINT
ST_ISCOLLECTION
ST_ISEMPTY
ST_NPOINTS
ST_NUMPOINTS
ST_POINTN
ST_STARTPUNKT
ST_X
ST_Y
Funktionen, die den Zugriff auf Eigenschaften einer Geographie ohne Nebenwirkungen ermöglichen.
Prädikate ST_CONTAINS
ST_COVEREDBY
ST_COVERS
ST_DISJOINT
ST_DWITHIN
ST_EQUALS
ST_INTERSECTS
ST_INTERSECTSBOX
ST_TOUCHES
ST_WITHIN
Funktionen, die TRUE oder FALSE für eine räumliche Beziehung zwischen zwei Geografien oder eine Eigenschaft einer Geografie zurückgeben. Diese Funktionen werden häufig in Filterklauseln verwendet.
Mittel ST_AREA
ST_DISTANCE
ST_LENGTH
ST_MAXDISTANCE
ST_PERIMETER
Funktionen, die Messungen einer oder mehrerer Regionen berechnen.
Clustering ST_CLUSTERDBSCAN Funktionen, die Clustering für Regionen durchführen.

ST_AREA

Beschreibung

Gibt die Fläche in Quadratmetern zurück, die von den Polygonen in der Eingabe GEOGRAPHY bedeckt wird.

Wenn geography_expression ein Punkt oder eine Linie ist, wird Null zurückgegeben. Wenn geography_expression eine Sammlung ist, wird die Fläche der Polygone in der Sammlung zurückgegeben, wenn die Sammlung keine Polygone enthält, wird Null zurückgegeben.

Der optionale Parameter use_spheroid bestimmt, wie diese Funktion die Entfernung misst. Wenn use_spheroid FALSE ist, misst die Funktion den Abstand auf der Oberfläche einer perfekten Kugel.

Der Parameter use_spheroid unterstützt derzeit nur den Wert FALSE . Der Standardwert von use_spheroid ist FALSE .

Rückgabetyp

ST_ASBINARY

Beschreibung

Gibt die WKB-Darstellung einer Eingabe GEOGRAPHY zurück.

Siehe ST_GEOGFROMWKB, um eine GEOGRAPHY aus WKB zu erstellen.

Rückgabetyp

ST_ASGEOJSON

Beschreibung

Gibt die RFC 7946-kompatible GeoJSON-Darstellung der Eingabe GEOGRAPHY zurück.

Eine BigQuery GEOGRAPHY hat sphärische geodätische Kanten, während ein GeoJSON Geometry-Objekt explizit planare Kanten hat. Um zwischen diesen beiden Kantentypen zu konvertieren, fügt BigQuery der Linie bei Bedarf zusätzliche Punkte hinzu, damit die resultierende Kantenfolge innerhalb von 10 Metern von der ursprünglichen Kante bleibt.

Siehe ST_GEOGFROMGEOJSON, um eine GEOGRAPHY aus GeoJSON zu erstellen.

Rückgabetyp

ST_ASTEXT

Beschreibung

Gibt die WKT-Darstellung einer Eingabe GEOGRAPHY zurück.

Siehe ST_GEOGFROMTEXT, um eine GEOGRAPHY aus WKT zu erstellen.

Rückgabetyp

ST_BOUNDARY

Beschreibung

Gibt eine einzelne GEOGRAPHY zurück, die die Vereinigung der Grenzen jeder Komponente in der angegebenen Eingabe GEOGRAPHY enthält.

Die Grenze jeder Komponente einer GEOGRAPHY ist wie folgt definiert:

  • Die Grenze eines Punktes ist leer.
  • Die Begrenzung eines Linienzuges besteht aus den Endpunkten des Linienzuges.
  • Die Begrenzung eines Polygons besteht aus den Linienfolgen, die die Polygonhülle bilden, und den einzelnen Löchern des Polygons.

Rückgabetyp

ST_CENTROID

Beschreibung

Gibt die zurück Schwerpunkt der Eingabe-GEOGRAPHY als Einzelpunkt-GEOGRAPHY .

Das Schwerpunkt einer GEOGRAPHIE ist der gewichtete Durchschnitt der Schwerpunkte der höchstdimensionalen Komponenten in der GEOGRAPHIE . Der Schwerpunkt für Komponenten in jeder Dimension ist wie folgt definiert:

  • Der Schwerpunkt der Punkte ist das arithmetische Mittel der Eingabekoordinaten.
  • Der Schwerpunkt von Linienfolgen ist der Schwerpunkt aller Kanten, die nach Länge gewichtet sind. Der Schwerpunkt jeder Kante ist der geodätische Mittelpunkt der Kante.
  • Der Schwerpunkt eines Polygons ist sein Massenmittelpunkt.

Wenn die Eingabe GEOGRAPHY leer ist, wird eine leere GEOGRAPHY zurückgegeben.

Einschränkungen

Für den unwahrscheinlichen Fall, dass der Schwerpunkt einer GEOGRAPHIE nicht durch einen einzelnen Punkt auf der Erdoberfläche definiert werden kann, wird ein deterministischer, aber ansonsten beliebiger Punkt zurückgegeben. Dies kann nur passieren, wenn der Schwerpunkt genau im Erdmittelpunkt liegt, wie der Schwerpunkt für ein Paar antipodischer Punkte, und die Wahrscheinlichkeit dafür ist verschwindend gering.

Rückgabetyp

ST_CENTROID_AGG

Beschreibung

Berechnet den Schwerpunkt des Satzes der Eingabe-GEOGRAPHY s als Einzelpunkt-GEOGRAPHY .

Das Schwerpunkt über die Menge der Eingabe GEOGRAPHY s ist der gewichtete Durchschnitt des Schwerpunkts jeder einzelnen GEOGRAPHY . Nur die GEOGRAPHY s mit der höchsten Dimension, die in der Eingabe vorhanden ist, tragen zum Schwerpunkt des gesamten Sets bei. Wenn die Eingabe beispielsweise sowohl GEOGRAPHY s mit Linien als auch GEOGRAPHY s mit nur Punkten enthält, gibt ST_CENTROID_AGG den gewichteten Durchschnitt der GEOGRAPHY s mit Linien zurück, da diese die maximale Dimension haben. In diesem Beispiel ignoriert ST_CENTROID_AGG GEOGRAPHY s mit nur Punkten bei der Berechnung des aggregierten Schwerpunkts.

ST_CENTROID_AGG ignoriert NULL-Eingabewerte für GEOGRAPHY.

Siehe ST_CENTROID für die nicht aggregierte Version von ST_CENTROID_AGG und die Definition des Schwerpunkts für einen einzelnen GEOGRAPHY-Wert.

Rückgabetyp

Die folgenden Abfragen berechnen den Gesamtschwerpunkt über einen Satz von GEOGRAPHY-Werten. Die Eingabe für die erste Abfrage enthält nur Punkte, und daher trägt jeder Wert zum aggregierten Schwerpunkt bei. Beachten Sie auch, dass ST_CENTROID_AGG . ist nicht entspricht dem Aufrufen von ST_CENTROID auf das Ergebnis von ST_UNION_AGG Duplikate werden von der Union entfernt, im Gegensatz zu ST_CENTROID_AGG . Die Eingabe für die zweite Abfrage hat gemischte Dimensionen, und nur Werte mit der höchsten Dimension in der Menge, den Linien, wirken sich auf den aggregierten Schwerpunkt aus.

ST_CLOSESTPOINT

Beschreibung

Gibt eine GEOGRAPHY zurück, die einen Punkt auf geography_1 mit dem kleinstmöglichen Abstand zu geography_2 enthält. Dies impliziert, dass der Abstand zwischen dem von ST_CLOSESTPOINT zurückgegebenen Punkt und geography_2 kleiner oder gleich dem Abstand zwischen jedem anderen Punkt auf geography_1 und geography_2 ist.

Wenn eine der Eingabe-GEOGRAPHY s leer ist, gibt ST_CLOSESTPOINT NULL zurück.

Der optionale Parameter use_spheroid bestimmt, wie diese Funktion die Entfernung misst. Wenn use_spheroid FALSE ist, misst die Funktion den Abstand auf der Oberfläche einer perfekten Kugel.

Der Parameter use_spheroid unterstützt derzeit nur den Wert FALSE . Der Standardwert von use_spheroid ist FALSE .

Rückgabetyp

ST_CLUSTERDBSCAN

Führt DBSCAN-Clustering für eine Spalte von Geografien durch. Gibt eine 0-basierte Clusternummer zurück.

Eingabeparameter

  • geography_column : Eine geclusterte Spalte von GEOGRAPHY s.
  • Epsilon : Das Epsilon, das den in Metern gemessenen Radius um einen Kernwert angibt. Nicht negativer FLOAT64-Wert.
  • minimum_geographies : Gibt die Mindestanzahl von Regionen in einem einzelnen Cluster an. Nur dichter Input bildet einen Cluster, ansonsten wird er als Rauschen klassifiziert. Nicht negativer INT64-Wert.

OVER : Bestimmt ein Fenster. Siehe Analysefunktionen. Die Verwendung der OVER-Klausel mit ST_CLUSTERDBSCAN ist mit Folgendem kompatibel:

Geografietypen und der DBSCAN-Algorithmus

Der DBSCAN-Algorithmus identifiziert Datencluster mit hoher Dichte und markiert Ausreißer in Bereichen mit geringer Rauschdichte. Über geography_column übergebene Geografien werden vom DBSCAN-Algorithmus auf eine von drei Arten klassifiziert:

  • Kernwert: Eine Geografie ist ein Kernwert, wenn sie sich innerhalb von Epsilon-Entfernung von minimum_geographies-Geografien befindet, einschließlich sich selbst. Der Kernwert startet einen neuen Cluster oder wird demselben Cluster wie ein Kernwert innerhalb einer Entfernung von Epsilon hinzugefügt. Kernwerte werden in einem Cluster zusammen mit allen anderen Kern- und Grenzwerten gruppiert, die innerhalb von Epsilon-Entfernung liegen.
  • Grenzwert: Eine Geografie ist ein Grenzwert, wenn sie sich innerhalb von Epsilon-Entfernung von einem Kernwert befindet. Es wird demselben Cluster als Kernwert innerhalb einer Epsilon-Distanz hinzugefügt. Ein Grenzwert kann innerhalb einer Epsilon-Entfernung von mehr als einem Cluster liegen. In diesem Fall kann sie jedem Cluster willkürlich zugewiesen werden und die Funktion wird bei nachfolgenden Aufrufen das gleiche Ergebnis liefern.
  • Rauschen: Eine Geographie ist Rauschen, wenn sie weder ein Kern- noch ein Grenzwert ist. Rauschwerte werden einem NULL-Cluster zugewiesen. Eine leere GEOGRAPHY wird immer als Rauschen klassifiziert.

Einschränkungen

  • Das Argument minimum_geographies ist ein nicht negatives INT64 und epsilon ist ein nicht negatives FLOAT64 .
  • Eine leere Geografie kann keinem Cluster beitreten.
  • Für einen Grenzwert könnten mehrere Clustering-Zuweisungen möglich sein. Wenn eine Geografie ein Grenzwert ist, weist ST_CLUSTERDBSCAN sie einem beliebigen gültigen Cluster zu.

Rückgabetyp

INT64 für jede Geografie in der Geografiespalte.

In diesem Beispiel wird DBSCAN-Clustering mit einem Radius von 100.000 Metern mit einem minimum_geographies-Argument von 1 durchgeführt. Die analysierten Geographien sind eine Mischung aus Punkten, Linien und Polygonen.

ST_CONTAINS

Beschreibung

Gibt TRUE zurück, wenn kein Punkt von geography_2 außerhalb von geography_1 liegt, und der innere Schnittpunkt gibt ansonsten FALSE zurück.

HINWEIS: EINE GEOGRAPHIE nicht eine eigene Grenze enthalten. Vergleiche mit ST_COVERS .

Rückgabetyp

Die folgende Abfrage testet, ob das Polygon POLYGON((1 1, 20 1, 10 20, 1 1)) jeden der drei Punkte (0, 0) , (1, 1) und (10, 10) enthält, die liegen auf dem Äußeren, der Grenze bzw. dem Inneren des Polygons.

ST_CONVEXHULL

Beschreibung

Gibt die konvexe Hülle für die Eingabe GEOGRAPHY zurück. Die konvexe Hülle ist die kleinste konvexe GEOGRAPHIE, die die Eingabe abdeckt. Eine GEOGRAPHY ist konvex, wenn für jedes Punktpaar in der GEOGRAPHY auch die geodätische Kante, die die Punkte verbindet, in derselben GEOGRAPHY enthalten ist.

In den meisten Fällen besteht die konvexe Hülle aus einem einzigen Polygon. Bemerkenswerte Randfälle umfassen die folgenden:

  • Die konvexe Hülle eines einzelnen Punktes ist auch ein Punkt.
  • Die konvexe Hülle von zwei oder mehr kollinearen Punkten ist ein Linienzug, solange dieser Linienzug konvex ist.
  • Wenn die Eingabe GEOGRAPHY mehr als eine Halbkugel umfasst, ist die konvexe Hülle die volle Kugel. Dies schließt alle Eingaben ein, die ein Paar antipodischer Punkte enthalten.
  • ST_CONVEXHULL gibt NULL zurück, wenn die Eingabe entweder NULL oder die leere GEOGRAPHY ist.

Rückgabetyp

Die von ST_CONVEXHULL zurückgegebene konvexe Hülle kann je nach Eingabe ein Punkt, eine Linienfolge oder ein Polygon sein.

ST_COVEREDBY

Beschreibung

Gibt FALSE zurück, wenn geography_1 oder geography_2 leer ist. Gibt TRUE zurück, wenn keine Punkte von geography_1 außerhalb von geography_2 liegen.

Gegeben zwei GEOGRAPHY s a und b , liefert ST_COVEREDBY(a, b) dasselbe Ergebnis wie ST_COVERS (b, a) . Beachten Sie die umgekehrte Reihenfolge der Argumente.

Rückgabetyp

ST_COVERS

Beschreibung

Gibt FALSE zurück, wenn geography_1 oder geography_2 leer ist. Gibt TRUE zurück, wenn keine Punkte von geography_2 außerhalb von geography_1 liegen.

Rückgabetyp

Die folgende Abfrage testet, ob das Polygon POLYGON((1 1, 20 1, 10 20, 1 1)) jeden der drei Punkte (0, 0) , (1, 1) und (10, 10) überdeckt, die liegen auf dem Äußeren, der Grenze bzw. dem Inneren des Polygons.

ST_DIFFERENCE

Beschreibung

Gibt eine GEOGRAPHY zurück, die die Punktmengendifferenz von geography_1 und geography_2 darstellt.

Wenn Geometrie_1 vollständig in Geometrie_2 enthalten ist, dann gibt ST_DIFFERENCE eine leere GEOGRAPHY zurück.

Einschränkungen

Die zugrunde liegenden geometrischen Objekte, die eine BigQuery GEOGRAPHY darstellt, entsprechen a geschlossen Punkt gesetzt. Daher ist ST_DIFFERENCE der Abschluss der Punktmengendifferenz von geography_1 und geography_2 . Dies impliziert, dass, wenn sich geography_1 und geography_2 schneiden, ein Teil der Grenze von geography_2 in der Differenz liegen könnte.

Rückgabetyp

ST_DIMENSION

Beschreibung

Gibt die Dimension des höchstdimensionalen Elements in der Eingabe GEOGRAPHY zurück.

Die Dimension jedes möglichen Elements ist wie folgt:

  • Die Dimension eines Punktes ist 0 .
  • Die Dimension einer Linienfolge ist 1 .
  • Die Dimension eines Polygons beträgt 2 .

Wenn die Eingabe GEOGRAPHY leer ist, gibt ST_DIMENSION -1 zurück.

Rückgabetyp

ST_DISJOINT

Beschreibung

Gibt TRUE zurück, wenn der Schnittpunkt von geography_1 und geography_2 leer ist, d. h. kein Punkt in geography_1 erscheint auch in geography_2 .

ST_DISJOINT ist die logische Negation von ST_INTERSECTS .

Rückgabetyp

ST_DISTANCE

Beschreibung

Gibt die kürzeste Entfernung in Metern zwischen zwei nicht leeren GEOGRAPHY s zurück.

Wenn eine der Eingabe-GEOGRAPHY s leer ist, gibt ST_DISTANCE NULL zurück.

Der optionale Parameter use_spheroid bestimmt, wie diese Funktion die Entfernung misst. Wenn use_spheroid FALSE ist, misst die Funktion den Abstand auf der Oberfläche einer perfekten Kugel.

Der Parameter use_spheroid unterstützt derzeit nur den Wert FALSE . Der Standardwert von use_spheroid ist FALSE .

Rückgabetyp

ST_DUMP

Beschreibung

Gibt ein ARRAY von einfachen GEOGRAPHY s zurück, wobei jedes Element eine Komponente der Eingabe GEOGRAPHY ist. Eine einfache GEOGRAPHY besteht aus einem einzelnen Punkt, einer Linienfolge oder einem Polygon. Wenn die Eingabe GEOGRAPHY einfach ist, ist das Ergebnis ein einzelnes Element. Wenn die Eingabe-GEOGRAPHY eine Sammlung ist, gibt ST_DUMP ein ARRAY mit einer einfachen GEOGRAPHY für jede Komponente in der Sammlung zurück.

Wenn eine Dimension angegeben ist, gibt die Funktion nur GEOGRAPHY s der entsprechenden Dimension zurück. Eine Dimension von -1 entspricht dem Weglassen von Dimension .

Rückgabetyp

Das folgende Beispiel zeigt, wie ST_DUMP die einfachen Geografien innerhalb einer komplexen Geografie zurückgibt.

Das folgende Beispiel zeigt, wie ST_DUMP mit dem Dimensionsargument nur einfache Geografien der angegebenen Dimension zurückgibt.

ST_DWITHIN

Beschreibung

Gibt TRUE zurück, wenn die Entfernung zwischen mindestens einem Punkt in geography_1 und einem Punkt in geography_2 kleiner oder gleich der durch das Distance-Argument angegebenen Entfernung ist, andernfalls wird FALSE zurückgegeben. Wenn einer der Eingänge GEOGRAPHY leer ist, gibt ST_DWithin FALSE zurück. Die angegebene Entfernung ist in Metern auf der Erdoberfläche.

Der optionale Parameter use_spheroid bestimmt, wie diese Funktion die Entfernung misst. Wenn use_spheroid FALSE ist, misst die Funktion den Abstand auf der Oberfläche einer perfekten Kugel.

Der Parameter use_spheroid unterstützt derzeit nur den Wert FALSE . Der Standardwert von use_spheroid ist FALSE .

Rückgabetyp

ST_ENDPOINT

Beschreibung

Gibt den letzten Punkt einer Linienfolgen-Geographie als Punkt-Geographie zurück. Gibt einen Fehler zurück, wenn die Eingabe keine Linienfolge ist oder wenn die Eingabe leer ist. Verwenden Sie das SAFE-Präfix, um NULL für eine ungültige Eingabe anstelle eines Fehlers zu erhalten.

Rückgabetyp

ST_EQUALS

Beschreibung

Gibt TRUE zurück, wenn geography_1 und geography_2 identisch sind

GEOGRAPHIE-Wert. Genauer gesagt bedeutet dies, dass eine der folgenden Bedingungen gilt: + ST_COVERS(geography_1, geography_2) = TRUE und ST_COVERS(geography_2, geography_1) = TRUE + Sowohl geography_1 als auch geography_2 sind leer.

Daher können zwei GEOGRAPHY s gleich sein, auch wenn die Anordnung von Punkten oder Scheitelpunkten unterschiedlich ist, solange sie immer noch dieselbe geometrische Struktur darstellen.

Einschränkungen

ST_EQUALS ist nicht garantiert eine transitive Funktion.

Rückgabetyp

ST_GEOGFROM

Beschreibung

Konvertiert einen Ausdruck für einen STRING- oder BYTES-Wert in einen GEOGRAPHY-Wert.

Wenn expression einen STRING-Wert darstellt, muss es sich um eine gültige GEOGRAPHY-Darstellung in einem der folgenden Formate handeln:

  • WKT-Format. Weitere Informationen zu diesem Format und den Anforderungen zu seiner Verwendung finden Sie unter ST_GEOGFROMTEXT.
  • WKB im hexadezimalen Textformat. Weitere Informationen zu diesem Format und den Anforderungen zu seiner Verwendung finden Sie unter ST_GEOGFROMWKB.
  • GeoJSON-Format. Weitere Informationen zu diesem Format und den Anforderungen zu seiner Verwendung finden Sie unter ST_GEOGFROMGEOJSON.

Wenn Ausdruck einen BYTES-Wert darstellt, muss es sich um einen gültigen binären GEOGRAPHY-Ausdruck im WKB-Format handeln. Weitere Informationen zu diesem Format und den Anforderungen zu seiner Verwendung finden Sie unter ST_GEOGFROMWKB.

Wenn Ausdruck NULL ist, ist die Ausgabe NULL.

Rückgabetyp

Dies nimmt eine WKT-formatierte Zeichenfolge und gibt ein GEOGRAPHY-Polygon zurück:

Dies nimmt eine WKB-formatierte hexadezimal-codierte Zeichenfolge und gibt einen GEOGRAPHY-Punkt zurück:

Dies nimmt WKB-formatierte Bytes und gibt einen GEOGRAPHY-Punkt zurück:

Dies nimmt einen GEOJSON-formatierten String und gibt ein GEOGRAPHY-Polygon zurück:

ST_GEOGFROMGEOJSON

Beschreibung

Gibt einen GEOGRAPHY-Wert zurück, der der Eingabe-GeoJSON-Darstellung entspricht.

ST_GEOGFROMGEOJSON akzeptiert Eingaben, die RFC 7946-konform sind.

Wenn der Parameter make_valid auf TRUE gesetzt ist, versucht die Funktion, Polygone zu reparieren, die nicht der Semantik des Open Geospatial Consortium entsprechen. Dieser Parameter verwendet die Syntax für benannte Argumente und sollte mit der Syntax make_valid => argument_value angegeben werden.

Eine BigQuery GEOGRAPHY hat sphärische geodätische Kanten, während ein GeoJSON Geometry-Objekt explizit planare Kanten hat. Um zwischen diesen beiden Kantentypen zu konvertieren, fügt BigQuery der Linie bei Bedarf zusätzliche Punkte hinzu, damit die resultierende Kantenfolge innerhalb von 10 Metern von der ursprünglichen Kante bleibt.

Siehe ST_ASGEOJSON, um eine GEOGRAPHY als GeoJSON zu formatieren.

Einschränkungen

Die Eingabe unterliegt den folgenden Einschränkungen:

  • ST_GEOGFROMGEOJSON akzeptiert nur JSON-Geometriefragmente und kann nicht verwendet werden, um ein ganzes JSON-Dokument aufzunehmen.
  • Das Eingabe-JSON-Fragment muss aus einem GeoJSON-Geometrietyp bestehen, der Point , MultiPoint , LineString , MultiLineString , Polygon , MultiPolygon und GeometryCollection umfasst. Jeder andere GeoJSON-Typ wie Feature oder FeatureCollection führt zu einem Fehler.
  • Eine Position im Koordinatenmember eines GeoJSON-Geometrietyps muss aus genau zwei Elementen bestehen. Der erste ist der Längengrad und der zweite der Breitengrad. Daher unterstützt ST_GEOGFROMGEOJSON das optionale dritte Element für eine Position im Koordinatenelement nicht.

Rückgabetyp

ST_GEOGFROMTEXT

Unterschrift 1

Beschreibung

Gibt einen GEOGRAPHY-Wert zurück, der der Eingabe-WKT-Darstellung entspricht.

Diese Funktion unterstützt einen optionalen Parameter vom Typ BOOL, orientiert. Wenn dieser Parameter auf TRUE gesetzt ist, wird angenommen, dass alle Polygone in der Eingabe wie folgt ausgerichtet sind: Wenn jemand entlang der Grenze des Polygons in der Reihenfolge der Eingabescheitelpunkte geht, befindet sich das Innere des Polygons auf der linken Seite. Dadurch kann WKT Polygone darstellen, die größer als eine Halbkugel sind. Wenn orientiert FALSE ist oder weggelassen wird, gibt diese Funktion das Polygon mit der kleineren Fläche zurück. Siehe auch ST_MAKEPOLYGONORIENTED ähnlich wie ST_GEOGFROMTEXT mit orientiert=TRUE .

Um GEOGRAPHY als WKT zu formatieren, verwenden Sie ST_ASTEXT .

Einschränkungen

  • Alle Eingabekanten werden als sphärische Geodäten angenommen und nicht ebene gerade Linien. Zum Lesen von Daten in einer planaren Projektion sollten Sie ST_GEOGFROMGEOJSON verwenden. Weitere Informationen zu den Unterschieden zwischen sphärischen Geodäten und planaren Linien finden Sie unter Koordinatensysteme und Kanten.
  • Die Funktion unterstützt weder dreidimensionale Geometrien mit Z-Suffix noch Geometrien mit linearem Referenzierungssystem mit M-Suffix.
  • Die Funktion unterstützt nur Geometrie-Primitive und Multipart-Geometrien. Insbesondere werden nur Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon und GeometryCollection unterstützt.

Rückgabetyp

Die folgende Abfrage liest den WKT-String POLYGON((0 0, 0 2, 2 2, 2 0, 0 0)) sowohl als nicht orientiertes Polygon als auch als orientiertes Polygon und prüft, ob jedes Ergebnis den Punkt (1, 1) .

Unterschrift 2

Beschreibung

Gibt einen GEOGRAPHY-Wert zurück, der der Eingabe-WKT-Darstellung entspricht.

Diese Funktion unterstützt drei optionale Parameter vom Typ BOOL: orientiert, planar und make_valid. Diese Signatur verwendet die Syntax benannter Argumente, und die Parameter sollten in beliebiger Reihenfolge mit parameter_name => parameter_value-Syntax angegeben werden.

Wenn der orientierte Parameter auf TRUE gesetzt ist, wird angenommen, dass alle Polygone in der Eingabe wie folgt orientiert sind: Wenn jemand entlang der Begrenzung des Polygons in der Reihenfolge der Eingabescheitelpunkte geht, befindet sich das Innere des Polygons auf der linken Seite. Dadurch kann WKT Polygone darstellen, die größer als eine Halbkugel sind. Wenn orientiert FALSE ist oder weggelassen wird, gibt diese Funktion das Polygon mit der kleineren Fläche zurück. Siehe auch ST_MAKEPOLYGONORIENTED ähnlich wie ST_GEOGFROMTEXT mit orientiert=TRUE .

Wenn der Parameter planar auf TRUE gesetzt ist, wird davon ausgegangen, dass die Kanten der Linienfolgen und Polygone planare Kartensemantik anstelle der standardmäßigen sphärischen Geodäten-Semantik von BigQuery verwenden. Weitere Informationen zu den Unterschieden zwischen sphärischen Geodäten und planaren Linien finden Sie unter Koordinatensysteme und Kanten.

Wenn der Parameter make_valid auf TRUE gesetzt ist, versucht die Funktion, Polygone zu reparieren, die nicht der Semantik des Open Geospatial Consortium entsprechen.

Um GEOGRAPHY als WKT zu formatieren, verwenden Sie ST_ASTEXT .

Einschränkungen

  • Alle Eingabekanten werden standardmäßig als sphärische Geodäten angenommen, und nicht ebene gerade Linien. Um Daten in einer planaren Projektion zu lesen, übergeben Sie das Argument planar => TRUE oder ziehen Sie die Verwendung von ST_GEOGFROMGEOJSON in Betracht. Weitere Informationen zu den Unterschieden zwischen sphärischen Geodäten und planaren Linien finden Sie unter Koordinatensysteme und Kanten.
  • Die Funktion unterstützt weder dreidimensionale Geometrien mit Z-Suffix noch Geometrien mit linearem Referenzierungssystem mit M-Suffix.
  • Die Funktion unterstützt nur Geometrie-Primitive und Multipart-Geometrien. Insbesondere werden nur Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon und GeometryCollection unterstützt.
  • orientiert und planar können nicht gleichzeitig gleich TRUE sein.
  • orientiert und make_valid können nicht gleichzeitig gleich TRUE sein.

Die folgende Abfrage liest den WKT-String POLYGON((0 0, 0 2, 2 2, 0 2, 0 0)) sowohl als nicht orientiertes Polygon als auch als orientiertes Polygon und prüft, ob jedes Ergebnis den Punkt (1, 1) .

Die folgende Abfrage konvertiert eine WKT-Zeichenfolge mit einem ungültigen Polygon in GEOGRAPHY . Der WKT-String verletzt zwei Eigenschaften eines gültigen Polygons - die das Polygon beschreibende Schleife ist nicht geschlossen und enthält eine Selbstüberschneidung. Mit der Option make_valid konvertiert ST_GeogFromText es erfolgreich in eine Multipolygon-Form.

ST_GEOGFROMWKB

Beschreibung

Konvertiert einen Ausdruck für einen hexadezimalen STRING- oder BYTES-Wert in einen GEOGRAPHY-Wert. Der Ausdruck muss im WKB-Format vorliegen.

Um GEOGRAPHY als WKB zu formatieren, verwenden Sie ST_ASBINARY .

Einschränkungen

Alle Eingabekanten werden als sphärische Geodäten angenommen und nicht ebene gerade Linien. Zum Lesen von Daten in einer planaren Projektion sollten Sie ST_GEOGFROMGEOJSON verwenden.

Rückgabetyp

ST_GEOGPOINT

Beschreibung

Erstellt eine GEOGRAPHIE mit einem einzelnen Punkt. ST_GEOGPOINT erstellt einen Punkt aus den angegebenen Längen- und Breitengradparametern von FLOAT64 und gibt diesen Punkt in einem GEOGRAPHY-Wert zurück.

Einschränkungen

  • Breitengrade müssen im Bereich [-90, 90] liegen. Breitengrade außerhalb dieses Bereichs führen zu einem Fehler.
  • Längengrade außerhalb des Bereichs [-180, 180] sind zulässig ST_GEOGPOINT verwendet den eingegebenen Längengrad modulo 360, um einen Längengrad innerhalb von [-180, 180] zu erhalten.

Rückgabetyp

ST_GEOGPOINTFROMGEOHASH

Beschreibung

Gibt einen GEOGRAPHY-Wert zurück, der einem Punkt in der Mitte eines im GeoHash definierten Begrenzungsrahmens entspricht.

Rückgabetyp

ST_GEOHASH

Beschreibung

Gibt eine GeoHash-Darstellung von geography_expression zurück. Der resultierende GeoHash enthält höchstens maxchars-Zeichen. Weniger Zeichen entsprechen einer geringeren Genauigkeit (oder anders beschrieben einem größeren Begrenzungsrahmen).

ST_GeoHash über einem leeren GEOGRAPHY-Objekt gibt NULL zurück.

Einschränkungen

  • Es werden nur GEOGRAPHY-Objekte unterstützt, die einzelne Punkte darstellen.
  • Der maximale Wert von maxchars ist 20.

Rückgabetyp

Gibt einen GeoHash des Seattle Center mit einer Genauigkeit von 10 Zeichen zurück.

ST_INTERSECTION

Beschreibung

Gibt eine GEOGRAPHY zurück, die den Punktmengen-Schnittpunkt der beiden Eingabe-GEOGRAPHY s darstellt. Somit erscheint jeder Punkt im Schnittpunkt sowohl in geography_1 als auch in geography_2 .

Wenn die beiden Eingabe-GEOGRAPHY s disjunkt sind, d. h. es gibt keine Punkte, die sowohl in der Eingabe-Geometrie_1 als auch in der Geometrie_2 erscheinen, dann wird eine leere GEOGRAPHY zurückgegeben.

Siehe ST_INTERSECTS, ST_DISJOINT für verwandte Prädikatfunktionen.

Rückgabetyp

ST_INTERSECTS

Beschreibung

Gibt TRUE zurück, wenn der Punktmengenschnittpunkt von geography_1 und geography_2 nicht leer ist. Somit gibt diese Funktion WAHR zurück, wenn es mindestens einen Punkt gibt, der in beiden Eingabe-GEOGRAPHY s vorkommt.

Wenn ST_INTERSECTS TRUE zurückgibt, bedeutet dies, dass ST_DISJOINT FALSE zurückgibt.

Rückgabetyp

ST_INTERSECTSBOX

Beschreibung

Gibt TRUE zurück, wenn geography das Rechteck zwischen [lng1, lng2] und [lat1, lat2] schneidet. Die Kanten des Rechtecks ​​folgen konstanten Längen- und Breitengraden. lng1 und lng2 geben die westlichsten und östlichsten konstanten Längengradlinien an, die das Rechteck begrenzen, und lat1 und lat2 geben die minimalen und maximalen konstanten Breitengradlinien an, die das Rechteck begrenzen.

Geben Sie alle Längen- und Breitengradargumente in Grad an.

Einschränkungen

Die Eingabeargumente unterliegen den folgenden Einschränkungen:

  • Breitengrade sollten im Bereich von [-90, 90] Grad liegen.
  • Längengrade sollten im Bereich von [-180, 180] Grad liegen.

Rückgabetyp

ST_ISCOLLECTION

Beschreibung

Gibt TRUE zurück, wenn die Gesamtzahl der Punkte, Linienfolgen und Polygone größer als eins ist.

Eine leere GEOGRAPHY ist keine Sammlung.

Rückgabetyp

ST_ISEMPTY

Beschreibung

Gibt TRUE zurück, wenn die angegebene GEOGRAPHY leer ist, d. h. die GEOGRAPHY enthält keine Punkte, Linien oder Polygone.

HINWEIS: Eine leere BigQuery-GEOGRAPHY ist keiner bestimmten Geometrieform zugeordnet. Die Ergebnisse der Ausdrücke ST_GEOGFROMTEXT('POINT EMPTY') und ST_GEOGFROMTEXT('GEOMETRYCOLLECTION EMPTY') sind beispielsweise identisch.

Rückgabetyp

ST_LENGTH

Beschreibung

Gibt die Gesamtlänge der Linien in der Eingabe GEOGRAPHY in Metern zurück.

Wenn geography_expression ein Punkt oder ein Polygon ist, wird null zurückgegeben. Wenn geography_expression eine Sammlung ist, wird die Länge der Zeilen in der Sammlung zurückgegeben, wenn die Sammlung keine Zeilen enthält, wird null zurückgegeben.

Der optionale Parameter use_spheroid bestimmt, wie diese Funktion die Entfernung misst. Wenn use_spheroid FALSE ist, misst die Funktion den Abstand auf der Oberfläche einer perfekten Kugel.

Der Parameter use_spheroid unterstützt derzeit nur den Wert FALSE . Der Standardwert von use_spheroid ist FALSE .

Rückgabetyp

ST_MAKELINE

Beschreibung

Erstellt eine GEOGRAPHY mit einer einzelnen Linienfolge durch Verketten der Punkt- oder Linienscheitelpunkte jeder der Eingabe-GEOGRAPHY s in der angegebenen Reihenfolge.

ST_MAKELINE gibt es in zwei Varianten. Für die erste Variante muss die Eingabe zwei GEOGRAPHY s sein. Für die zweite muss die Eingabe ein ARRAY vom Typ GEOGRAPHY sein. In beiden Varianten muss jede Eingabe GEOGRAPHY aus einem der folgenden Werte bestehen:

Für die erste Variante von ST_MAKELINE gibt ST_MAKELINE NULL zurück, wenn eine der Eingaben GEOGRAPHY NULL ist. Bei der zweiten Variante gibt ST_MAKELINE NULL zurück, wenn das Eingabe-ARRAY oder ein beliebiges Element im Eingabe-ARRAY NULL ist.

Einschränkungen

Jede Kante muss streng weniger als 180 Grad umfassen.

HINWEIS: Der Fangprozess von BigQuery kann ausreichend kurze Kanten verwerfen und die beiden Endpunkte aneinander einrasten lassen. Wenn beispielsweise zwei Eingabe-GEOGRAPHY s jeweils einen Punkt enthalten und die beiden Punkte durch einen Abstand von weniger als dem Fangradius getrennt sind, werden die Punkte zusammengeschnappt. In einem solchen Fall ist das Ergebnis eine GEOGRAPHY mit genau einem Punkt.

Rückgabetyp

ST_MAKEPOLYGON

Beschreibung

Creates a GEOGRAPHY containing a single polygon from linestring inputs, where each input linestring is used to construct a polygon ring.

ST_MAKEPOLYGON comes in two variants. For the first variant, the input linestring is provided by a single GEOGRAPHY containing exactly one linestring. For the second variant, the input consists of a single GEOGRAPHY and an array of GEOGRAPHY s, each containing exactly one linestring. The first GEOGRAPHY in either variant is used to construct the polygon shell. Additional GEOGRAPHY s provided in the input ARRAY specify a polygon hole. For every input GEOGRAPHY containing exactly one linestring, the following must be true:

  • The linestring must consist of at least three distinct vertices.
  • The linestring must be closed: that is, the first and last vertex have to be the same. If the first and last vertex differ, the function constructs a final edge from the first vertex to the last.

For the first variant of ST_MAKEPOLYGON , if either input GEOGRAPHY is NULL , ST_MAKEPOLYGON returns NULL . For the second variant, if input ARRAY or any element in the ARRAY is NULL , ST_MAKEPOLYGON returns NULL .

NOTE: ST_MAKEPOLYGON accepts an empty GEOGRAPHY as input. ST_MAKEPOLYGON interprets an empty GEOGRAPHY as having an empty linestring, which will create a full loop: that is, a polygon that covers the entire Earth.

Constraints

Together, the input rings must form a valid polygon:

  • The polygon shell must cover each of the polygon holes.
  • There can be only one polygon shell (which has to be the first input ring). This implies that polygon holes cannot be nested.
  • Polygon rings may only intersect in a vertex on the boundary of both rings.

Every edge must span strictly less than 180 degrees.

Each polygon ring divides the sphere into two regions. The first input linesting to ST_MAKEPOLYGON forms the polygon shell, and the interior is chosen to be the smaller of the two regions. Each subsequent input linestring specifies a polygon hole, so the interior of the polygon is already well-defined. In order to define a polygon shell such that the interior of the polygon is the larger of the two regions, see ST_MAKEPOLYGONORIENTED .

NOTE: BigQuery's snapping process may discard sufficiently short edges and snap the two endpoints together. Hence, when vertices are snapped together, it is possible that a polygon hole that is sufficiently small may disappear, or the output GEOGRAPHY may contain only a line or a point.

Return type

ST_MAKEPOLYGONORIENTED

Beschreibung

Like ST_MAKEPOLYGON , but the vertex ordering of each input linestring determines the orientation of each polygon ring. The orientation of a polygon ring defines the interior of the polygon as follows: if someone walks along the boundary of the polygon in the order of the input vertices, the interior of the polygon is on the left. This applies for each polygon ring provided.

This variant of the polygon constructor is more flexible since ST_MAKEPOLYGONORIENTED can construct a polygon such that the interior is on either side of the polygon ring. However, proper orientation of polygon rings is critical in order to construct the desired polygon.

If the input ARRAY or any element in the ARRAY is NULL , ST_MAKEPOLYGONORIENTED returns NULL .

NOTE: The input argument for ST_MAKEPOLYGONORIENTED may contain an empty GEOGRAPHY . ST_MAKEPOLYGONORIENTED interprets an empty GEOGRAPHY as having an empty linestring, which will create a full loop: that is, a polygon that covers the entire Earth.

Constraints

Together, the input rings must form a valid polygon:

  • The polygon shell must cover each of the polygon holes.
  • There must be only one polygon shell, which must to be the first input ring. This implies that polygon holes cannot be nested.
  • Polygon rings may only intersect in a vertex on the boundary of both rings.

Every edge must span strictly less than 180 degrees.

ST_MAKEPOLYGONORIENTED relies on the ordering of the input vertices of each linestring to determine the orientation of the polygon. This applies to the polygon shell and any polygon holes. ST_MAKEPOLYGONORIENTED expects all polygon holes to have the opposite orientation of the shell. See ST_MAKEPOLYGON for an alternate polygon constructor, and other constraints on building a valid polygon.

NOTE: Due to BigQuery's snapping process, edges with a sufficiently short length will be discarded and the two endpoints will be snapped to a single point. Therefore, it is possible that vertices in a linestring may be snapped together such that one or more edge disappears. Hence, it is possible that a polygon hole that is sufficiently small may disappear, or the resulting GEOGRAPHY may contain only a line or a point.

Return type

ST_MAXDISTANCE

Returns the longest distance in meters between two non-empty GEOGRAPHY s that is, the distance between two vertices where the first vertex is in the first GEOGRAPHY , and the second vertex is in the second GEOGRAPHY . If geography_1 and geography_2 are the same GEOGRAPHY , the function returns the distance between the two most distant vertices in that GEOGRAPHY .

If either of the input GEOGRAPHY s is empty, ST_MAXDISTANCE returns NULL .

The optional use_spheroid parameter determines how this function measures distance. If use_spheroid is FALSE , the function measures distance on the surface of a perfect sphere.

The use_spheroid parameter currently only supports the value FALSE . The default value of use_spheroid is FALSE .

Return type

ST_NPOINTS

Beschreibung

ST_NUMPOINTS

Beschreibung

Returns the number of vertices in the input GEOGRAPHY . This includes the number of points, the number of linestring vertices, and the number of polygon vertices.

NOTE: The first and last vertex of a polygon ring are counted as distinct vertices.

Return type

ST_PERIMETER

Beschreibung

Returns the length in meters of the boundary of the polygons in the input GEOGRAPHY .

If geography_expression is a point or a line, returns zero. If geography_expression is a collection, returns the perimeter of the polygons in the collection if the collection does not contain polygons, returns zero.

The optional use_spheroid parameter determines how this function measures distance. If use_spheroid is FALSE , the function measures distance on the surface of a perfect sphere.

The use_spheroid parameter currently only supports the value FALSE . The default value of use_spheroid is FALSE .

Return type

ST_POINTN

Beschreibung

Returns the Nth point of a linestring geography as a point geography, where N is the index. The index is 1-based. Negative values are counted backwards from the end of the linestring, so that -1 is the last point. Returns an error if the input is not a linestring, if the input is empty, or if there is no vertex at the given index. Use the SAFE prefix to obtain NULL for invalid input instead of an error.

Return Type

The following example uses ST_POINTN , ST_STARTPOINT and ST_ENDPOINT to extract points from a linestring.

ST_SIMPLIFY

Beschreibung

Returns a simplified version of geography , the given input GEOGRAPHY . The input GEOGRAPHY is simplified by replacing nearly straight chains of short edges with a single long edge. The input geography will not change by more than the tolerance specified by tolerance_meters . Thus, simplified edges are guaranteed to pass within tolerance_meters of the original positions of all vertices that were removed from that edge. The given tolerance_meters is in meters on the surface of the Earth.

Note that ST_SIMPLIFY preserves topological relationships, which means that no new crossing edges will be created and the output will be valid. For a large enough tolerance, adjacent shapes may collapse into a single object, or a shape could be simplified to a shape with a smaller dimension.

Constraints

For ST_SIMPLIFY to have any effect, tolerance_meters must be non-zero.

ST_SIMPLIFY returns an error if the tolerance specified by tolerance_meters is one of the following:

  • A negative tolerance.
  • Größer als

Return type

The following example shows how ST_SIMPLIFY simplifies the input line GEOGRAPHY by removing intermediate vertices.

The following example illustrates how the result of ST_SIMPLIFY can have a lower dimension than the original shape.

ST_SNAPTOGRID

Beschreibung

Returns the input GEOGRAPHY , where each vertex has been snapped to a longitude/latitude grid. The grid size is determined by the grid_size parameter which is given in degrees.

Constraints

Arbitrary grid sizes are not supported. The grid_size parameter is rounded so that it is of the form (10^n), where (-10 < n < 0).

Return type

ST_STARTPOINT

Beschreibung

Returns the first point of a linestring geography as a point geography. Returns an error if the input is not a linestring or if the input is empty. Use the SAFE prefix to obtain NULL for invalid input instead of an error.

Return Type

ST_TOUCHES

Beschreibung

Returns TRUE provided the following two conditions are satisfied:

  1. geography_1 intersects geography_2 .
  2. The interior of geography_1 and the interior of geography_2 are disjoint.

Return type

ST_UNION

Beschreibung

Returns a GEOGRAPHY that represents the point set union of all input GEOGRAPHY s.

ST_UNION comes in two variants. For the first variant, input must be two GEOGRAPHY s. For the second, the input is an ARRAY of type GEOGRAPHY .

For the first variant of ST_UNION , if an input GEOGRAPHY is NULL , ST_UNION returns NULL . For the second variant, if the input ARRAY value is NULL , ST_UNION returns NULL . For a non- NULL input ARRAY , the union is computed and NULL elements are ignored so that they do not affect the output.

See ST_UNION_AGG for the aggregate version of ST_UNION .

Return type

ST_UNION_AGG

Beschreibung

Returns a GEOGRAPHY that represents the point set union of all input GEOGRAPHY s.

ST_UNION_AGG ignores NULL input GEOGRAPHY values.

See ST_UNION for the non-aggregate version of ST_UNION_AGG .

Return type

ST_WITHIN

Beschreibung

Returns TRUE if no point of geography_1 is outside of geography_2 and the interiors of geography_1 and geography_2 intersect.

Given two geographies a and b , ST_WITHIN(a, b) returns the same result as ST_CONTAINS (b, a) . Note the opposite order of arguments.

Return type

Beschreibung

Returns the longitude in degrees of the single-point input GEOGRAPHY .

For any input GEOGRAPHY that is not a single point, including an empty GEOGRAPHY , ST_X returns an error. Use the SAFE. prefix to obtain NULL .

Return type

The following example uses ST_X and ST_Y to extract coordinates from single-point geographies.

Beschreibung

Returns the latitude in degrees of the single-point input GEOGRAPHY .

For any input GEOGRAPHY that is not a single point, including an empty GEOGRAPHY , ST_Y returns an error. Use the SAFE. prefix to return NULL instead.

Return type

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.


GeographicLib

Would it be possible to calculate the intersection point between two geodesic
lines using GeographicLib?

I've been reading the documentation but I haven't been able to find anything
regarding this functionality.

Thanks in advance,
Gonzalo

The code below is a simple solution to the intersection problem
using the gnomonic projection. In this projection geodesics are
nearly straight and they are exactly straight if they go
through the center of projection. So the intersection of two
geodesics can be found as follows: Guess an intersection point.
Project the two line segments into gnomonic, compute their
intersection in this projection, use this intersection point as
the new center, and repeat.

The attached code implements this (without any attempt to figure
out a termination condition). Here's an example of its
operation. Note that the 4 points must be in the same
hemisphere centered at the intersection point for the gnomonic
projection to be defined.

Line A: Istanbul - Washington
Line B: Reyjkavik - Accra

g++ -I/usr/local -L/usr/local -Wl,"-rpath=/usr/local/lib"
-lGeographic -o intersect intersect.cpp

echo 42 29 39 -77 64 -22 6 0 | ./intersect

Initial guess 37.75 -17.5
Increment 16.97176336894064 2.933476949591608
Increment -0.004733759685677796 0.002667305917045226
Increment -3.072813115068129e-10 1.835989138498917e-10
Increment 1.4210854715202e-14 -5.329070518200751e-15
Increment 0 0
Increment 0 0
Increment 0 0
Increment 0 0
Increment 0 0
Increment 0 0
Final result 54.7170296089477 -14.56385574430775
Azimuths on line A -84.14506440848534 -84.14506440848535
Azimuths on line B 160.9174944697586 160.9174944697586

Thank you very much for your fast response. I’ve compiled your sample program
and it works OK.

The problem is that my knowledge regarding geographical calculations and
projections is quite limited, so it’s going to take me some time to understand
the code.

My goal is to check if I can implement by myself other calculations like for
example: distance between a location and a geodesic line or check if three
locations are aligned. I’ll get to you with my conclusions.

For more information on how to do these problems see Sections 11
and 13 of

C. F. F. Karney,
Geodesics on an ellipsoid of revolution,
Feb. 2011, http://arxiv.org/abs/1102.1215

The code below is a simple solution to the interception problem
using the gnomonic projection.

The problem is as follows:

A plane is traveling from A1 to A2. A missile battery is
located at B1. Find the point B2 on the path of the plane, such
that the distance from B1 to B2 is minimum.

The solution is similar to the intersection problem:

guess a position B2 make this the center of a gnomonic
projection map A1, A2, B1 to this projection solve the planar
interception problem to obtained an updated position B2 repeat.
The final azimuths printed allow you to verify that the
interception angle is 90 deg.

A1 = Istanbul, A2 = Washington, B1 = Reyjkavik

g++ -I/usr/local -L/usr/local -Wl,"-rpath=/usr/local/lib"
-lGeographic -o intercept intercept.cpp

echo 42 29 39 -77 64 -22 | ./intercept

Initial guess 40.5 -24
Increment 14.43198468492627 2.186112681554786
Increment -0.003453185661449254 -0.1234026147103826
Increment -2.147899635929207e-09 -1.132893178379391e-06
Increment -1.4210854715202e-14 3.552713678800501e-15
Increment 7.105427357601002e-15 -3.552713678800501e-15
Increment -7.105427357601002e-15 0
Increment 1.4210854715202e-14 7.105427357601002e-15
Increment -1.4210854715202e-14 0
Increment 7.105427357601002e-15 -7.105427357601002e-15
Increment -7.105427357601002e-15 0
Final result 54.92853149711691 -21.93729106604878
Azimuth to A1 89.82530404926784
Azimuth to A2 -90.17469595073216
Azimuth to B1 -0.1746959507321521

It a is very useful tool, but which is the way to perform intersection of two geodesics in a similar manner to FAAs Compsys?

I'm not sure what you're asking for here. If you want a slick
GUI such as Compsys offers, then I can't help.

Ok, Compsys is an achievement of many people, but your achievement is also remarkable by alone person.

I do not understand the problem, that is why i can not do the code or follow the instructions you gave.

My question is to intersect two geodesic path, which is the first step? I suppose to calculate first the two path then transform into gnomonic projection and finally calculate the intersection point. It is that correct?

The algorithm is described in section 8 of "Algorithms for geodesics". I hope this provides you with the information you need.

The solution for calculating the intersection always returns the nearest intersection point without taking directionality into account. But what if you need the antipodal intersection point?
Example: plane A travels in a straight line from N52 E15 with an initial bearing of 80 degrees plane B travels in a straight line from N51 E15 with an initial bearing of 110 degrees. Where do they collide?
The solution above returns N51.41228, E10.46628, but that would only be true when the planes traveled in the opposite directions. Instead, it should be something like S51.4117, W169.9028 (approximately determined visually)

For each plane, pick two points (1000km apart, let's say) on its path
which straddle the intended intersection point (visually determined as
you say). (These points can be computed by solving the direct geodesic
problem with distances of around 20000km.) Then run the algorithm with
these points.

So the answer is S51.63673 W168.33512

Thank you very much!
I've incorporated it on this page: http://www.javawa.nl/coordcalc_en.html
It's a tool for projecting points, calculate distances and intersections etc.
(BTW: the coordinates in my example weren't correct, because I used a bearing of 100 degrees instead of 110)

On the 2nd question (about the distance from a point to a geodesic), using the 2nd provided source file intercept.cpp, i downloaded the last version of the library and installed it in std place (/usr/local, w.o. errors, tests succeeded too)

/usr/local/lib: ldconfig -p | grep -i geographic
libGeographic.so.19 (libc6,x86-64) => /usr/local/lib/libGeographic.so.19
libGeographic.so (libc6,x86-64) => /usr/local/lib/libGeographic.so
/usr/local/lib:

$ g++ intercept.cpp
/tmp/ccQGg0bv.o: In function main': intercept.cpp:(.text+0xbe): undefined reference to GeographicLib::Geodesic::Geodesic(double, double)'
intercept.cpp:(.text+0xd7): undefined reference to GeographicLib::Gnomonic::Gnomonic(GeographicLib::Geodesic const&)' /tmp/ccQGg0bv.o: In function GeographicLib::Geodesic::Inverse(double, double, double, double, double&, double&) const':
intercept.cpp:(.text.ZNK13GeographicLib8Geodesic7InverseEddddRdS1 [ZNK13GeographicLib8Geodesic7InverseEddddRdS1] +0x8f): undefined reference to GeographicLib::Geodesic::GenInverse(double, double, double, double, unsigned int, double&, double&, double&, double&, double&, double&, double&) const' /tmp/ccQGg0bv.o: In function GeographicLib::Gnomonic::Forward(double, double, double, double, double&, double&) const':
intercept.cpp:(.text.ZNK13GeographicLib8Gnomonic7ForwardEddddRdS1 [ZNK13GeographicLib8Gnomonic7ForwardEddddRdS1] +0x77): undefined reference to GeographicLib::Gnomonic::Forward(double, double, double, double, double&, double&, double&, double&) const' /tmp/ccQGg0bv.o: In function GeographicLib::Gnomonic::Reverse(double, double, double, double, double&, double&) const':
intercept.cpp:(.text.ZNK13GeographicLib8Gnomonic7ReverseEddddRdS1 [ZNK13GeographicLib8Gnomonic7ReverseEddddRdS1] +0x77): undefined reference to GeographicLib::Gnomonic::Reverse(double, double, double, double, double&, double&, double&, double&) const' collect2: error: ld returned 1 exit status

I am trying to see if i can get the c++ solution to work, if it's not too much trouble.


The tool seems to be just calculating the Euclidean distance between the two points (the square root of the sum of the squared differences between the coordinates). This doesn't make any sense for latitudes and longitudes, which are not coordinates in a Cartesian coordinate system. Not only is this number not a meaningful distance, but it no longer contains the information required to reconstruct a distance from it, so you won't be able to calculate anything meaningful from it you need to go back to the latitudes and longitudes themselves.

To calculate distances between points given by latitudes and longitudes precisely, you need to know which geoid was used as a reference in specifying them. But since you only want to get within 95% of the answer, you can safely assume that the Earth is a sphere.

There are two possible meanings for "the distance between two points" on a sphere. You can take the Euclidean distance between the two points (the actual points, not their latitude/longitude coordinates like your tool does), or you can take distance along the shortest curve along the surface of the Earth. Again, if you only want to get to within 95% of the answer and the distances are as small as in your example, the difference is negligble, so you can take the Euclidean distance, which is easier to calculate.

To get the Euclidean distance, you can first calculate the Cartesian coordinates of the points from their latitudes and longitudes. Denoting the latitude by $ heta$, the longitude by $phi$ and the Earth's radius by $R$ (with $Rapprox 6371 mathrm$), these are given by

$vec=left(eginxyzend ight) = left(egin Rcos hetacosphi Rcos hetasinphi Rsin heta end ight). $

Then you get the distance between them using

Since you seem to have small distances and aren't interested in precision, you can simplify this by expanding the trigonometric functions around one of the points, or, for greater precision, around the midpoint $ heta=( heta_1+ heta_2)/2$, $phi=(phi_1+phi_2)/2$:

$vec-vecapprox Rleft(egin sin hetacosphi( heta_2- heta_1)-cos hetasinphi(phi_2-phi_1) sin hetasinphi( heta_2- heta_1)+cos hetacosphi(phi_2-phi_1) cos heta( heta_2- heta_1) end ight), $


Computational geometry.

  • Intervals. An interval is defined by two Comparable objects of the same type. Program Interval.java represents a 1D interval.
  • Intervals. A 2D interval is defined by two 1D intervals, possibly of different types. (Maybe we should make them the same type for simplicity since that's all we need.) Program Interval2D.java represents a 2D interval.
  • Polygons. Polygons are a useful mathematical abstraction for representing the shapes of real-world objects (letters for optical character recognition, obstacles to be avoided by a robot, US congressional district, pieces of an airfoil). Program Polygon.java is a data type for closed polygons. A polygon is a sequence of points p0 through pn, where we assume the first point is equal to the last point, i.e., the polygon is closed. Das perimeter is the sum of the Euclidean distances of the N line segments. Das signed area of a non self-intersecting polygon is given by

The polygon is counterclockwise if the area is positive. We assume the points are indexed 0 through N-1 and that point N equals point 0. The centroid (or center of mass) of a non self-intersecting polygon is given by the point (x, y) where x and y are defined by

To draw a shaded polygon on screen, we need to know whether each pixel (i, j) is inside or outside the polygon. Jordan curve theorem implies any polygon partitions plane into a finite inside region and an infinite outside region. Solution (ray crossing method): draw a ray from (i, j) down and count the number of times it crosses the polygon (even = outside, odd = inside). Intution: think of polygon as a fence and count # times you jump over the fence.


Distance & travel time in Excel – Google Maps API

Let’s say your Google Maps API key is in a cell named gmaps.key

This API is really easy to use compared to Bing maps (as we need to make just one call).

https://maps.googleapis.com/maps/api/distancematrix/ xml ?origins= $1 &destinations= $2 &mode= $3 &key=gmaps.key

For example, let’s lookup the travel time and distance between Microsoft & APPLE offices.

The response is XML (if you want json, then replace xml with json) like below:

<?xml version=”𔄣.0″” encoding=””UTF-8″”?>
<DistanceMatrixResponse>
<status>OK</status>
<origin_address>Apple Campus, Cupertino, CA 95014, USA</origin_address>
<destination_address>Redmond, WA, USA</destination_address>
<row>
<element>
<status>OK</status>
<duration>
<value> 47736 </value>
<text> 13 hours 16 mins </text>
</duration>
<distance>
<value> 1379709 </value>
<text> 1,380 km </text>
</distance>
</element>
</row>
</DistanceMatrixResponse>

We can FILTERXML this response to extract the important bits like this:


2. Data Acquisition

In photogrammetry data acquisition is define as the process of obtaining the reliable information about the object of interest. This is achieved without physical being in contact with the objects.

The remotely acquired image can be grouped into four:

Geometric Information: It involves in the spatial position and the shape of objects.

Physical Information: It refers to the electromagnetic radiation properties of objects.

Semantic Information: It is refer to the meaning of a required image.

Temporal Information: Recorded images with different date shows the change in the object.


2.1 Geometric Characteristics of Aerial Photographs:

Aerial photographs are classified into two categories: vertical or oblique. Vertical photographs have the camera axis directed as vertically as possible. Most of time vertical photography use single lens camera to acquire remotely sensed image. It is very hard to obtain a true vertical image due to the angular rotation or tilts. This angular rotation or tilts are due to the angular attitude of the aircraft at the instant of exposure. This unavoidable tilts which results in 1 to 3 degree inclination of camera optical axis results in the capturing of titled photographs.

If there is intention of degree of inclination of camera optical axis then it is called Oblique photographs. High oblique photographs contains the image of horizon and Low Oblique photographs exclude it.

2.2 Geometric Characteristics of a Vertical Photographs:

Photographs taken by the camera are the perspective view. Image we see is the 3D view and camera convert 3D look of the image to the 2D. Our brain process the depth and other features of the photographs by using the 3D concept. Camera uses powerful concept of perspective to transfer 3D image to 2D.

Most vertical image acquires distortion in image due to image motion and image displacement due to topography and the effect of parallax. The geometric center of the air photo or the principal point does not have image displacement. The perpendicular from the principal point to the ground is called the Nadir or the Plumb point. Towards the margins of the air photo, the image displacement increases due to effect of the parallax.

The word parallax is derived from the Greek term parallaxis,which means alteration. The object we are observing at any given distance is dependent on the viewpoint or the position of the viewer. Perspective shift occurs when a close object is observed from various viewpoints with respective to the distant background.

Parallax can be describe with the help of the geometry. On the above figure object EIN and Object B are two viewpoints observing the object Ö. D is the baseline distance between two viewpoints, and then unknown variable R can be calculated. You can use trigonometry to calculate the unknown values.

In a simple way to explain the parallax is the way our eyes operate. We are always using parallax but do not realize because our brain process things very fast. Hold your arm straight in front of you at eye level and then point your forefinger up. After that alternatively blink each of your eyes and you will notice the forefingers that is arm length appears to move with the respect to the background object. This is the parallax effect.

2.3 Flight Characteristics:

Most of Photographs taken by the frame camera are along flight lines. The line on the ground which is just under the camera lens during photo capturing is called the nadir line. All the photographs taken with the degree of endlap. Endlap is the repeat of the some portion of the successive photographs. This not only ensure that end part of photographs is covered but also it is essential for the stereoscopic coverage.

Aerial photographs are generally taken North-South or East-West direction along flightlines. Flightlines are the path taken by the aircraft to cover the area of interest. This are imaginary lines drawn on the paper by the specialist so whole region is covered for the photographs and also there is enough succession of overlapping. The photos that overlaps within flightlines are called forward overlap and between flightlines are called sidelap.(image source: www.nrcan.gc.ca)

The area that is overlapped for the forward should be between 60-70 percentage. It is used for the stereoscopic view and complete coverage of the area of interest.

The area that is overlapped for the sidelap should be between 25-40 percentage. It is used to ensure that no area is left unphotographhed.

2.4 Coverage Errors: There are two errors that can lead for unsuccessful capturing of photographs: Drift and Crab. Drift is the lateral shift of the aircraft from the flight lines that may be caused by the blowing wind or the pilot error. So it is said that it is good practice to capture a photographs on a sunny day with no wind. Crab occurs when the aircraft is not oriented with flightline.


GIS Resources

The committee formally known as the GIS Committee is now GSADD (Geographic, Spatial and Demographic Data) Workgroup. Materials on this page have been developed by members of this committee.

Address Validation Reference Data - July 2015

Street address and county location at diagnosis are characteristically critically important elements for GIS mapping and analysis. Correct and complete geocoding to coordinate point locations (e.g., latitude/longitude) and standard data analysis areas (e.g., census tract and block) are a function of valid input in these standard NAACCR abstract fields.

The Wisconsin Cancer Reporting System has purchased licensing from the United States Postal Service (USPS) to access USA-wide zip code and street address Data (including County FIPS for addresses.) Using this authoritative reference data, the current validity of individual address zip codes, city/locality names, and county locations can be validated individually and in combination. These records can be used as visual job aids for abstractors as well as validation templates for automated edits in the field or at the central cancer registry.

  • Zip Code Data General Documentation
  • Zip Code Reference Files – DBF
  • Zip Code Reference Files – Single MDB
  • Zip Code Reference Files

American Community Survey Census Tract Data

The NAACCR GIS Committee has created a data table of commonly used demographic and socio-economic variables at the census tract level from the Census Bureau’s American Community Survey (ACS). Most variables are given as percentages of the population to facilitate geographic comparisons. ACS tract-level data are from 5-year periods and covers all of the U.S. and Puerto Rico. The data file downloads contain the tract data table in both SAS and MS Access format, a data dictionary, and a summary report. The SAS code library used to create the data tables is also available and includes a Word file describing the steps in the process.

Note: Updated SAS codes for ACS census tract-level data and urban/rural census tract-level data are available on the NAACCR Call for Data Website under the Certification Tab.

  • ACS Census Tract Data 2011-2015 (uses Census 2010 geographies)
  • ACS Census Tract Data 2007-2011 (uses Census 2010 geographies)
  • ACS Census Tract Data 2006-2010 (uses Census 2010 geographies)
  • ACS Census Tract Data 2005-2009 (uses Census 2000 geographies)
  • ACS Census Tract SAS Code Library

Cluster Analysis Software Review

The GIS Committee, working with a consultant, Luc Anselin, PhD of the University of Illinois at Urbana-Champaign, selected four spatial analysis software packages to be reviewed based on the following criteria: 1) they were free and/or open source, 2) they were up-to-date and under active development, 3) they came with a manual and documentation, 4) they were downloadable from the Internet, and 5) they worked within a Microsoft Windows operating system. This report, was accepted by the NAACCR Board of Directors on August 18, 2004.

NAACCR Geocoder

Due to a partnership between NAACCR, Texas A&M University, and the National Cancer Institute, NAACCR members have access to a single, uniform geocoding platform for open use by all NAACCR Full Member Registries. This system, Automated Geospatial Geocoding Interface Environment or AGGIE, system is accessible through your MyNAACCR log-in. The NAACCR AGGIE Geocoder is also integrated within the SEER DMS registry software package.

To access, first log-on to MyNAACCR.

There are resources on this page to assist with geocoding. For personal assistance or technical issues, please contact Dr. Recinda Sherman at .

Geocoding Best Practices Guide

This Guide was authored by Daniel W. Goldberg of the University of Southern California (USC) GIS Research Laboratory, with expert input and guidance from members of the NAACCR GIS Committee. The Guide serves to centralize much of the available research and practice scholarship on these topics to provide a single, comprehensive perspective on all aspects of geocoding. Geocoding, for example, may involve the process of assigning latitude and longitude coordinates to street addresses.

The Guide is designed for a variety of users, including cancer registry staff who design geocoding systems, those who geocode cancer data, and researchers who use these data for public health research and practice. Dr. John Wilson, Director of the USC GIS Research Laboratory, notes that the Best Practices Guide “will serve as a rich reference manual for anyone who wants to inject more science and less art (uncertainty) into their geocoding tasks.

NAACCR Geocoder Data Dictionary

This document defines the data items generated the by the NAACCR Geocoder during the batch database geocoding process.

NAACCR Geocoder Tutorial

In addition to the materials below, NAACCR is available to individually assist registries with issues related to geocoding and use of the NAACCR Geocoder.


2 A View System for Providing Environmental Information Prior to Work

In this section, we develop a view system to provide environmental information to teleoperators before work on the basis of human spatial cognition. First, we explain human spatial cognition according to psychological knowledge. Next, we assume the effects of acquiring environmental information for teleoperation. Finally, we develop a view system based on human spatial cognition and presume the effects of this view system.

2.1 Human Spatial Cognition

Humans store mental representations known as cognitive maps (Edward, 1948). These maps can be built by acquiring knowledge from survey and route perspectives (Golledge & Stimson, 1997). Humans acquire survey knowledge from external viewpoints, whereas route knowledge can be acquired from internal or personal viewpoints. Thus, survey knowledge is usually described in absolute coordinates such as east and west, whereas route knowledge is described in terms of relative coordinates such as front and back. Moreover, maps are usually used to express survey knowledge, whereas pictures taken from a human viewpoint are usually used to express route knowledge. For example, the maps illustrated in Figure 3(a) are used for the survey knowledge and described in terms such as south and north, whereas the pictures shown in Figure 3(b) come from the route knowledge and are described in terms of right and left (Figures 3(a) and (b) represent the campus of Waseda University).


Schau das Video: Vektorregning - Afstand mellem to punkter