@@ -627,93 +627,93 @@ def testFormatDistance(self):
627
627
self .assertEqual (QgsDistanceArea .formatDistance (1.0 , 1 , QgsUnitTypes .DistanceUnknownUnit , False ), '1.0' )
628
628
QLocale .setDefault (QLocale .system ())
629
629
630
- def testGeodesicIntersectionAtDateLine (self ):
630
+ def testGeodesicIntersectionAtAntimeridian (self ):
631
631
da = QgsDistanceArea ()
632
632
crs = QgsCoordinateReferenceSystem (4326 , QgsCoordinateReferenceSystem .EpsgCrsId )
633
633
da .setSourceCrs (crs , QgsProject .instance ().transformContext ())
634
634
da .setEllipsoid ("WGS84" )
635
635
636
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (0 , 0 ), QgsPointXY (- 170 , 0 ))
636
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (0 , 0 ), QgsPointXY (- 170 , 0 ))
637
637
self .assertAlmostEqual (lat , 0 , 5 )
638
638
self .assertAlmostEqual (fract , 0 , 5 )
639
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (- 170 , 0 ), QgsPointXY (170 , 0 ))
639
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (- 170 , 0 ), QgsPointXY (170 , 0 ))
640
640
self .assertAlmostEqual (lat , 0 , 5 )
641
641
self .assertAlmostEqual (fract , 0.5 , 5 )
642
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (179 , 0 ), QgsPointXY (181 , 0 ))
642
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (179 , 0 ), QgsPointXY (181 , 0 ))
643
643
self .assertAlmostEqual (lat , 0 , 5 )
644
644
self .assertAlmostEqual (fract , 0.5 , 5 )
645
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (- 170 , 0 ), QgsPointXY (170 , 0 ))
645
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (- 170 , 0 ), QgsPointXY (170 , 0 ))
646
646
self .assertAlmostEqual (lat , 0 , 5 )
647
647
self .assertAlmostEqual (fract , 0.5 , 5 )
648
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (180 , 0 ), QgsPointXY (180 , 0 ))
648
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (180 , 0 ), QgsPointXY (180 , 0 ))
649
649
self .assertAlmostEqual (lat , 0 , 5 )
650
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (180 , - 10 ), QgsPointXY (180 , - 10 ))
650
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (180 , - 10 ), QgsPointXY (180 , - 10 ))
651
651
self .assertAlmostEqual (lat , - 10 , 5 )
652
652
653
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (138.26237 , - 20.314687 ), QgsPointXY (- 151.6 , - 77.8 ))
653
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (138.26237 , - 20.314687 ), QgsPointXY (- 151.6 , - 77.8 ))
654
654
self .assertAlmostEqual (lat , - 73.89148222666744914 , 5 )
655
655
self .assertAlmostEqual (fract , 0.007113545719515548 , 5 )
656
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (138.26237 , - 20.314687 ), QgsPointXY (- 151.6 + 360 , - 77.8 ))
656
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (138.26237 , - 20.314687 ), QgsPointXY (- 151.6 + 360 , - 77.8 ))
657
657
self .assertAlmostEqual (lat , - 73.89148222666744914 , 5 )
658
658
self .assertAlmostEqual (fract , 0.007113545719515548 , 5 )
659
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (- 151.6 , - 77.8 ), QgsPointXY (138.26237 , - 20.314687 ))
659
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (- 151.6 , - 77.8 ), QgsPointXY (138.26237 , - 20.314687 ))
660
660
self .assertAlmostEqual (lat , - 73.89148222666744914 , 5 )
661
661
self .assertAlmostEqual (fract , 0.007113545719515548 , 5 )
662
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (170.60188754234980024 , - 70.81368329001529105 ),
663
- QgsPointXY (- 164.61259948055175073 , - 76.66761193248410677 ))
662
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (170.60188754234980024 , - 70.81368329001529105 ),
663
+ QgsPointXY (- 164.61259948055175073 , - 76.66761193248410677 ))
664
664
self .assertAlmostEqual (lat , - 73.89148222666744914 , 5 )
665
665
self .assertAlmostEqual (fract , 0.0879577697523441 , 5 )
666
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (- 164.61259948055175073 , - 76.66761193248410677 ),
667
- QgsPointXY (170.60188754234980024 ,
668
- - 70.81368329001529105 ))
666
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (- 164.61259948055175073 , - 76.66761193248410677 ),
667
+ QgsPointXY (170.60188754234980024 ,
668
+ - 70.81368329001529105 ))
669
669
self .assertAlmostEqual (lat , - 73.89148222666744914 , 5 )
670
670
self .assertAlmostEqual (fract , 0.0879577697523441 , 5 )
671
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (178.44469761238570982 , - 73.47820480021761114 ),
672
- QgsPointXY (- 179.21026002627399976 , - 74.08952948682963324 ))
671
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (178.44469761238570982 , - 73.47820480021761114 ),
672
+ QgsPointXY (- 179.21026002627399976 , - 74.08952948682963324 ))
673
673
self .assertAlmostEqual (lat , - 73.89148222666744914 , 5 )
674
674
self .assertAlmostEqual (fract , 0.6713541474159178 , 5 )
675
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (- 179.21026002627399976 , - 74.08952948682963324 ),
676
- QgsPointXY (178.44469761238570982 ,
677
- - 73.47820480021761114 ))
675
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (- 179.21026002627399976 , - 74.08952948682963324 ),
676
+ QgsPointXY (178.44469761238570982 ,
677
+ - 73.47820480021761114 ))
678
678
self .assertAlmostEqual (lat , - 73.89148222666744914 , 5 )
679
679
self .assertAlmostEqual (fract , 0.6713541474159178 , 5 )
680
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (179.83103440731269984 , - 73.8481044794813215 ),
681
- QgsPointXY (- 179.93191793815378787 , - 73.90885909527753483 ))
680
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (179.83103440731269984 , - 73.8481044794813215 ),
681
+ QgsPointXY (- 179.93191793815378787 , - 73.90885909527753483 ))
682
682
self .assertAlmostEqual (lat , - 73.89148222666744914 , 5 )
683
683
self .assertAlmostEqual (fract , 0.7135414998986486 , 5 )
684
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (- 179.93191793815378787 , - 73.90885909527753483 ),
685
- QgsPointXY (179.83103440731269984 , - 73.8481044794813215 ))
684
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (- 179.93191793815378787 , - 73.90885909527753483 ),
685
+ QgsPointXY (179.83103440731269984 , - 73.8481044794813215 ))
686
686
self .assertAlmostEqual (lat , - 73.89148222666744914 , 5 )
687
687
self .assertAlmostEqual (fract , 0.7135414998986486 , 5 )
688
688
689
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (179.92498611649580198 , 7.24703528617311754 ),
690
- QgsPointXY (- 178.20070563806575592 , 16.09649962419504732 ))
689
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (179.92498611649580198 , 7.24703528617311754 ),
690
+ QgsPointXY (- 178.20070563806575592 , 16.09649962419504732 ))
691
691
self .assertAlmostEqual (lat , 7.6112109902580265 , 5 )
692
692
self .assertAlmostEqual (fract , 0.04111771567489498 , 5 )
693
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (- 178.20070563806575592 , 16.09649962419504732 ),
694
- QgsPointXY (179.92498611649580198 , 7.24703528617311754 ))
693
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (- 178.20070563806575592 , 16.09649962419504732 ),
694
+ QgsPointXY (179.92498611649580198 , 7.24703528617311754 ))
695
695
self .assertAlmostEqual (lat , 7.6112109902580265 , 5 )
696
696
self .assertAlmostEqual (fract , 0.04111771567489498 , 5 )
697
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (360 - 178.20070563806575592 , 16.09649962419504732 ),
698
- QgsPointXY (179.92498611649580198 , 7.24703528617311754 ))
697
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (360 - 178.20070563806575592 , 16.09649962419504732 ),
698
+ QgsPointXY (179.92498611649580198 , 7.24703528617311754 ))
699
699
self .assertAlmostEqual (lat , 7.6112109902580265 , 5 )
700
700
self .assertAlmostEqual (fract , 0.04111771567489498 , 5 )
701
701
702
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (175.76717768974583578 , 8.93749416467257873 ),
703
- QgsPointXY (- 175.15030911497356669 , 8.59851183021221033 ))
702
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (175.76717768974583578 , 8.93749416467257873 ),
703
+ QgsPointXY (- 175.15030911497356669 , 8.59851183021221033 ))
704
704
self .assertAlmostEqual (lat , 8.80683758146703966 , 5 )
705
705
self .assertAlmostEqual (fract , 0.46581637044475815 , 5 )
706
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (- 175.15030911497356669 , 8.59851183021221033 ),
707
- QgsPointXY (175.76717768974583578 ,
708
- 8.93749416467257873 ))
706
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (- 175.15030911497356669 , 8.59851183021221033 ),
707
+ QgsPointXY (175.76717768974583578 ,
708
+ 8.93749416467257873 ))
709
709
self .assertAlmostEqual (lat , 8.80683758146703966 , 5 )
710
710
self .assertAlmostEqual (fract , 0.46581637044475815 , 5 )
711
711
712
712
# calculation should be ellipsoid dependent!
713
713
da .setEllipsoid ("Phobos2000" )
714
- lat , fract = da .latitudeGeodesicCrossesDateLine (QgsPointXY (- 175.15030911497356669 , 8.59851183021221033 ),
715
- QgsPointXY (175.76717768974583578 ,
716
- 8.93749416467257873 ))
714
+ lat , fract = da .latitudeGeodesicCrossesAntimeridian (QgsPointXY (- 175.15030911497356669 , 8.59851183021221033 ),
715
+ QgsPointXY (175.76717768974583578 ,
716
+ 8.93749416467257873 ))
717
717
self .assertAlmostEqual (lat , 8.836479503936307 , 5 )
718
718
self .assertAlmostEqual (fract , 0.46593364650414865 , 5 )
719
719
@@ -768,71 +768,71 @@ def testGeodesicLine(self):
768
768
self .assertEqual (g .asWkt (0 ),
769
769
'MultiLineString ((-13536427 14138932, -16514348 11691516, -17948849 9406595, -18744235 7552985, -19255354 6014890, -19622372 4688888, -19909239 3505045, -20037508 2933522),(20037508 2933522, 19925702 2415579, 19712755 1385803, 19513769 388441, 19318507 -600065, 19117459 -1602293, 18899973 -2642347, 18651869 -3748726, 18351356 -4958346, 17960498 -6322823, 17404561 -7918366, 16514601 -9855937, 14851845 -12232940, 13760912 -13248201))' )
770
770
771
- def testSplitGeometryAtDateline (self ):
771
+ def testSplitGeometryAtAntimeridian (self ):
772
772
da = QgsDistanceArea ()
773
773
crs = QgsCoordinateReferenceSystem (4326 , QgsCoordinateReferenceSystem .EpsgCrsId )
774
774
da .setSourceCrs (crs , QgsProject .instance ().transformContext ())
775
775
da .setEllipsoid ("WGS84" )
776
776
777
777
# noops
778
- g = da .splitGeometryAtDateLine (QgsGeometry ())
778
+ g = da .splitGeometryAtAntimeridian (QgsGeometry ())
779
779
self .assertTrue (g .isNull ())
780
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('Point(1 2)' ))
780
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('Point(1 2)' ))
781
781
self .assertEqual (g .asWkt (), 'Point (1 2)' )
782
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('MultiPoint(1 2, 3 4)' ))
782
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('MultiPoint(1 2, 3 4)' ))
783
783
self .assertEqual (g .asWkt (), 'MultiPoint ((1 2),(3 4))' )
784
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('PointZ(1 2 3)' ))
784
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('PointZ(1 2 3)' ))
785
785
self .assertEqual (g .asWkt (), 'PointZ (1 2 3)' )
786
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('PointM(1 2 3)' ))
786
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('PointM(1 2 3)' ))
787
787
self .assertEqual (g .asWkt (), 'PointM (1 2 3)' )
788
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString()' ))
788
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString()' ))
789
789
self .assertEqual (g .asWkt (), 'MultiLineString ()' )
790
790
791
791
# lines
792
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString(0 0, -170 0)' ))
792
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString(0 0, -170 0)' ))
793
793
self .assertEqual (g .asWkt (), 'MultiLineString ((0 0, -170 0))' )
794
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString(-170 0, 0 0)' ))
794
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString(-170 0, 0 0)' ))
795
795
self .assertEqual (g .asWkt (), 'MultiLineString ((-170 0, 0 0))' )
796
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString(179 0, -179 0)' ))
796
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString(179 0, -179 0)' ))
797
797
self .assertEqual (g .asWkt (), 'MultiLineString ((179 0, 180 0),(-180 0, -179 0))' )
798
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString(179 0, 181 0)' ))
798
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString(179 0, 181 0)' ))
799
799
self .assertEqual (g .asWkt (), 'MultiLineString ((179 0, 180 0),(-180 0, -179 0))' )
800
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString(-179 0, 179 0)' ))
800
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString(-179 0, 179 0)' ))
801
801
self .assertEqual (g .asWkt (), 'MultiLineString ((-179 0, -180 0),(180 0, 179 0))' )
802
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString(181 0, 179 0)' ))
802
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString(181 0, 179 0)' ))
803
803
self .assertEqual (g .asWkt (), 'MultiLineString ((-179 0, -180 0),(180 0, 179 0))' )
804
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString(179 10, -179 -20)' ))
804
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString(179 10, -179 -20)' ))
805
805
self .assertEqual (g .asWkt (3 ), 'MultiLineString ((179 10, 180 -5.362),(-180 -5.362, -179 -20))' )
806
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString(179 -80, -179 70)' ))
806
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString(179 -80, -179 70)' ))
807
807
self .assertEqual (g .asWkt (3 ), 'MultiLineString ((179 -80, 180 -55.685),(-180 -55.685, -179 70))' )
808
808
809
809
# multiline input
810
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('MultiLineString((1 10, 50 30),(179 -80, -179 70))' ))
810
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('MultiLineString((1 10, 50 30),(179 -80, -179 70))' ))
811
811
self .assertEqual (g .asWkt (3 ), 'MultiLineString ((1 10, 50 30),(179 -80, 180 -55.685),(-180 -55.685, -179 70))' )
812
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('MultiLineString((1 10, 50 30),(179 -80, 179.99 70))' ))
812
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('MultiLineString((1 10, 50 30),(179 -80, 179.99 70))' ))
813
813
self .assertEqual (g .asWkt (3 ), 'MultiLineString ((1 10, 50 30),(179 -80, 179.99 70))' )
814
814
815
815
# with z/m
816
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineStringZ(179 -80 1, -179 70 10)' ))
816
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineStringZ(179 -80 1, -179 70 10)' ))
817
817
self .assertEqual (g .asWkt (3 ), 'MultiLineStringZ ((179 -80 1, 180 -55.685 2.466),(-180 -55.685 2.466, -179 70 10))' )
818
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineStringM(179 -80 1, -179 70 10)' ))
818
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineStringM(179 -80 1, -179 70 10)' ))
819
819
self .assertEqual (g .asWkt (3 ), 'MultiLineStringM ((179 -80 1, 180 -55.685 2.466),(-180 -55.685 2.466, -179 70 10))' )
820
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineStringZM(179 -80 1 -4, -179 70 10 -30)' ))
820
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineStringZM(179 -80 1 -4, -179 70 10 -30)' ))
821
821
self .assertEqual (g .asWkt (3 ), 'MultiLineStringZM ((179 -80 1 -4, 180 -55.685 2.466 -8.234),(-180 -55.685 2.466 -8.234, -179 70 10 -30))' )
822
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('MultiLineStringZ((179 -80 1, -179 70 10),(-170 -5 1, -181 10 5))' ))
822
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('MultiLineStringZ((179 -80 1, -179 70 10),(-170 -5 1, -181 10 5))' ))
823
823
self .assertEqual (g .asWkt (3 ), 'MultiLineStringZ ((179 -80 1, 180 -55.685 2.466),(-180 -55.685 2.466, -179 70 10),(-170 -5 1, -181 10 5))' )
824
824
825
825
# different ellipsoid - should change intersection latitude
826
826
da .setEllipsoid ("Phobos2000" )
827
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString(179 10, -179 -20)' ))
827
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString(179 10, -179 -20)' ))
828
828
self .assertEqual (g .asWkt (3 ), 'MultiLineString ((179 10, 180 -5.459),(-180 -5.459, -179 -20))' )
829
829
830
830
# with reprojection
831
831
da .setEllipsoid ("WGS84" )
832
832
# with reprojection
833
833
da .setSourceCrs (QgsCoordinateReferenceSystem ('EPSG:3857' ), QgsProject .instance ().transformContext ())
834
834
835
- g = da .splitGeometryAtDateLine (QgsGeometry .fromWkt ('LineString( -13536427 14138932, 13760912 -13248201)' ))
835
+ g = da .splitGeometryAtAntimeridian (QgsGeometry .fromWkt ('LineString( -13536427 14138932, 13760912 -13248201)' ))
836
836
self .assertEqual (g .asWkt (1 ), 'MultiLineString ((-13536427 14138932, -20037508.3 2933521.7),(20037508.3 2933521.7, 13760912 -13248201))' )
837
837
838
838
0 commit comments