Mam wiejską warstwę wielokąta, która ma ponad 6 000 000 rekordów. Obliczyłem centroid każdej wioski. Chcę znaleźć odległość między środkiem ciężkości a najdalszym węzłem każdego wielokąta. Sprawdź zdjęcie poniżej w celach informacyjnych. Czarne linie to granice wielokątów.
12
Odpowiedzi:
Wygląda na to, że pracujesz z MapInfo. „Kalkulator odległości” (znajdź go w menedżerze narzędzi) ma wiele opcji i myślę, że poradzi sobie również z tym zadaniem. Artykuł na ten temat znajduje się tutaj: http://web.pb.com/mapinfopro-jul-2013/Toolbox-Distance-Calculator
źródło
Korzystając z PostGIS, użyłem ST_ConvexHull, aby uprościć wielokąt i uzyskać szybszy wynik:
Zdobądź najdalszy punkt:
A jeśli chcesz utworzyć okrąg z centrum ciężkości:
źródło
Za pomocą następnego kodu PyQGIS :
i ten plik kształtu (z 11 funkcjami):
Mam warstwę pamięci, w której polilinie były odległościami między środkiem ciężkości a najdalszym punktem każdego wielokąta (cecha); jak widać na następnym obrazku:
W konsoli Pythona QGIS wydrukowano również indeks elementu, indeks punktu w elemencie, w którym odległość od środka ciężkości jest maksymalna, a na koniec maksymalna.
źródło
Wygląda na to, że korzystasz z MapInfo, oto funkcja MapBasic, którą napisałem jakiś czas temu dla wewnętrznego narzędzia, nad którym pracowałem. Jako argument przyjmuje węzeł źródłowy (punkt środkowy) i obiekt regionu (wielokąt) i zwraca obiekt punktowy w najdalszym węźle wielokąta od punktu źródłowego.
źródło