Hello I have squares defined by LatLong corn...

Hello

I have squares defined by LatLong cornerpoints, like chess board. How do I check in which square I am? I need to compare HERE() to the table of squares and find the correct square that Iโ€™m inside the cormerpoints

0 6 340
6 REPLIES 6

Letโ€™s say you have LatLong values and they are all positive from all corners in one record. You could read the correct Square with the ANY & SELECT expression likeโ€ฆ ANY(SELECT(Tabel[Square], AND( LAT([_THISROW].[HERE])>=LAT([#1Corner]), LAT([_THISROW].[HERE])<=LAT([#2Corner]), LONG([_THISROW].[HERE])>=LONG([#1Corner]), LONG([_THISROW].[HERE])>=LONG([#4Corner]) )))

Thanks Aleksi, I think that works only if the sides of squares are parallel to coordinates. If the sides are not perpendicular, but more diamond shape then it wonโ€™t work anymore.

stackoverflow.com - Finding whether a point lies inside a rectangle or not hereโ€™s some solutions to the problem, I think the solution with the GPS on title could be useful, checking if the point is on correct side of line between cornerpoints, and repeat that for all lines. Finding whether a point lies inside a rectangle or not stackoverflow.com

@Mikko_Palmu Yes I made the consumption that the square is parallel.

Assuming opposite sides are parallel Try this. Table: Geofence

keycol : squareName

col1: C1

col2: C2

col3: C3

col4: C4

VC-5: Cx, appformula: (Long(C1)+Long(C2)+Long(C3)+Long(C4))/4

VC-6: Cy, appformula: (Lat(C1)+Lat(C2)+Lat(C3)+Lat(C4))/4

VC-7: m1, appformula: (Lat(C2)-Lat(C1))/(Long(C2)-Long(C1))

VC-8: b1, appformula: (Lat(C1)-m1*Long(C1))-Cy

VC-9: a1, appformula: -b1/m1-Cx

VC10: m2, appformula: (Lat(C3)-Lat(C2))/(Long(C3)-Long(C2))

VC11: b2, appformula: (Lat(C2)-m2*Long(C2))-Cy

VC12: a2, appformula: -b2/m2-Cx

Now the formula is Any(Select(Geofence[squareName],AND(ABS(Long(here())/[a1]+Lat(here())/[b1])<1,ABS(Long(here())/[a2]+Lat(here())/[b2])<1)))

PS: I didnโ€™t test this. Please test it well before using. PSS: Can anyone verify this?

Edit: little change in formula

Any(Select(Geofence[squareName],AND(ABS((Long(here())- [Cx])/[a1]+(Lat(here()) -[Cy])/[b1])<1,ABS((Long(here()) -[Cx])/[a2]+(Lat(here()) -[Cy])/[b2])<1)))

Thanks for that I actually already got it working with with a random shape, straight lines between corner points, with the formula from my previous linkโ€ฆ or at least it works on worksheet level, but I guess getting the result to App is then quite easy

Points 1,2,3,4 Lines 12, 23,34,41 check if point x is on the same side of line 12 as point 3, same side of line 23 as point 4 and so on if โ€ฆ if all are true then itโ€™s inside

Top Labels in this Space