LatLongToTimezone icon indicating copy to clipboard operation
LatLongToTimezone copied to clipboard

Two polygon nodes are not always split correctly

Open andymstone opened this issue 4 years ago • 1 comments

I think there is a bug in TimeZoneMapperConverter.split2Polys where it splits a node with 2 non-overlapping polygons into 2 pure nodes. It works out if it can do the split on longitude/latitude, but then it always assigns poly1 to left and poly2 to right, but I think actually in the first branch of the if statement (if (box1.lat1 > box2.lat2)) you should assign the polygons the otherway around? Since poly1 is north of poly2 it should be assigned to right? Similarly in the 3rd branch where poly1 is east of poly2.

The result of this error is cases like (65.842400, -52.665800) which should have time zone America/Godthab but doesn't because the wrong polygon ended up in the leaf node.

andymstone avatar May 06 '20 15:05 andymstone

Seems legit.

Hope that someone can fix this.


@Test @Ignore
public void testIssue38() {

        assertEquals("America/Godthab", TimezoneMapper.latLngToTimezoneString(65.842400, -52.665800));
        assertNotEquals("America/Goose_Bay", TimezoneMapper.latLngToTimezoneString(65.842400, -52.665800));

}

tom-b-wright avatar May 07 '20 07:05 tom-b-wright