Ich arbeite mit Breiten- / Längengradkoordinaten in einer Google Map.
Ich habe zwei Zeilen:
Ich verwende dann die folgende Formel, um den Punkt zu finden, an dem sie sich kreuzen.
%Vor%Das sagt mir, dass die Linien tatsächlich die X- und Y-Werte kreuzen und zurückgeben.
Wenn ich jedoch den zurückgegebenen Punkt grafisch darstelle, wird er (nicht viel) von der realen Schnittmenge versetzt.
Gibt es einen besseren und genauso schnellen Algorithmus, den ich verwenden könnte, der mir den richtigen Schnittpunkt zurückgibt?
Es muss schnell sein, da ich über eine große Anzahl von Zeilen iteriere (~ 1000).
BEARBEITEN: Beachten Sie, dass dies einen Fehler-Offset von etwa 7,5 Metern ergibt.
Ich gehe davon aus, dass der Algorithmus, den Sie verwenden, derjenige ist, um Linienüberschneidungen in einem kartesischen Koordinatensystem (d. h. einer Ebene) zu finden. Leider ist die Erde keine Ebene (oder sogar eine Kugel), so dass die Verwendung dieses Algorithmus einen Fehler verursacht. Google Maps verwendet ein Ellipsoid (speziell WGS84), um die Erdoberfläche zu approximieren. Daher benötigen Sie einen Algorithmus, um die Schnittpunkte von Bögen auf einem Ellipsoid zu finden.
Diese Seite enthält möglicherweise hilfreiche Informationen: Ссылка
Tags und Links map line gis intersection