Daha çox

PostGIS-də poliqonların bərabərliyini istiqamətlərindən asılı olmayaraq necə hesablamaq olar?


Postgisdə bəzi funksiyaları sınadım. İşin əhatə dairəsi, məkandakı istiqamətlərindən asılı olmayaraq iki formalı bərabərliyi əldə edin. Autocad-dan şəkilləri təsbit edirəm və təbii ki, bir layihənin ömrü boyu, iki fərqli çəkilişdə iki şəklin fərqli bir şəkildə yönəldilməsi baş verə bilər. Buna görə ilk münasibətləri sınadım, yansıtılmış formaların fərqini aldım (bu mənim ilk problemim idi):

st_equals seçin (ST_GeomFromEWKT ('TRIANGLE ((0 0, 5 10, 30 0, 0 0))'), ST_GeomFromEWKT ('TRIANGLE ((0 0, 5 -10, 30 0, 0 0))'))

Və yalan düşünürəm. Mükəmməl. Ancaq həndəsəni döndərməyə çalışdığım zaman daha xoşbəxt deyildim:

st_equals seçin (ST_GeomFromEWKT ('TRIANGLE ((0 0, 5 10, 30 0, 0 0))'), ST_GeomFromEWKT ('TRIANGLE ((0 0, -10 5, 0 30, 0 0))'))

Bunlar eyni üçbucaqdır, yalnız 90 ° döndürün, mən də False alıram. Postgis, fəzada fırlanırsa da, formaların bərabərliyini təyin edə bilirmi?


Bu saytda bərabərliklə bağlı bir neçə sual var

PostGIS 1.5 ~ = operatorunun PostGIS 2.x ekvivalenti nədir?

ST_Equals Postgis problemləri

Nümunənizin həndəsələri "məkan baxımından bərabər deyil", eyni məkanı paylaşmır, buna görə st_equals həmişə yalnış qayıdır. Hansı nəticəni gözləyirsiniz?

Şəkil yaratmaq üçün istifadə olunan kod:

matplotlib idxal piplotundan plt olaraq shapely.geometry.polygon idxal LinearRing, Polygon poly = Polygon ([(0, 0), (5, 10), (30, 0), (0, 0)]) x, y = poly.exterior.xy fig = plt.fiqur (1, incsize = (5,5), dpi = 90) ax = fig.add_subplot (111) ax.plot (x, y) poly2 = Polygon ([(0, 0) ), (5, -10), (30, 0), (0, 0)]) x2, y2 = poly2.exterior.xy ax.plot (x2, y2) plt.show ()


Videoya baxın: المضلع المنتظم (Oktyabr 2021).