2013-03-08 12 views
5

Chciałbym wykryć, po stronie serwera przy użyciu tylko C#, czy współrzędne oparte na szerokości/długości geograficznej znajdują się w obszarze (wielokącie) składającym się z punktów opartych na szerokości/długości geograficznej. Wierzę, że właściwą drogą do tego jest raycasting, ale może jest już tam implementacja C#, ponieważ nie jest trywialna?Wykryj, czy punkt w Poligonie opartym na szerokości geograficznej/szerokości geograficznej

Rozumiem, że SQL Server ma pewną funkcję geometrii, taką jak STIntersects, ale aby móc z niego korzystać, potrzebuję zarówno programu SQL Server 2008, jak i każdego czeku wymagałoby połączenia z bazą danych, co jest niepożądane.

+0

Raczej bardziej ogólnym algorytmem byłoby zapytanie lub poszukiwanie "Jak wykryć, czy punkt wpada do nieregularnie ukształtowanego wielokąta". Właściwie to nie wiem, prawdopodobnie mógłbym napisać coś od podstaw, ale z pewnością nie byłby to najskuteczniejszy kawałek kodu ... nie na początku. – Nevyn

Odpowiedz

0

Poszperałem trochę w Internecie i odnalazłem this link.

Przykład jest napisany w języku C, ale wygląda na to, że można go bardzo łatwo dostosować do współrzędnych C# i Long/Lat. Musisz jednak pamiętać o liniach podziału (NS/EW) i dodać kod, aby to zrekompensować, jeśli to konieczne, albo dokonać dziesiętnej konwersji wartości LatLong przed uruchomieniem funkcji (West i South są reprezentowane wartościami < 0).

0

Ponieważ sfera jest lokalnie diffeomorficzna do płaszczyzny, można użyć dowolnego algorytmu działającego na płaszczyźnie kartezjańskiej, np. this SO question. Będziesz musiał wykonać pracę tłumaczącą współrzędne, jeśli twój wielokąt obejmuje biegun. W zależności od przypadku użycia możesz odrzucić te dane wejściowe.

+0

Warto tutaj zauważyć, że geometria przekraczająca 180 południka (tj. Punkt, w którym płaszczyzna kartezjańska nie oblewa się, ale globus), może być również czymś w rodzaju bólu głowy. Punkt-w-wielokącie dla GIS musi być obezwładniony w 180 °, w przeciwnym razie możesz uzyskać bardzo dziwne wyniki. – jlmt

Powiązane problemy