Ordering rows based on cross reference between columns
You can do this with a hierarchical recursive CTE.

The only problem is that you have a loop in your data, due to there being 3,3,4,4 and 4,4, 3,3.

drop table #tmp;

create table #tmp
(
lat1 int,
lng1 int,
lat2 int,
lng2 int
);

insert into #tmp values (1,1,2,2);
insert into #tmp values (2,2,5,5);
insert into #tmp values (3,3,4,4);
insert into #tmp values (4,4,3,3);
insert into #tmp values (5,5,4,4);

WITH cte AS
(
  SELECT 
   lat1,lng1,lat2,lng2,
    0 AS level, cast('('+cast(lat1 as varchar) + ',' + cast(lng1 as varchar)+')' as varchar) as path 
  FROM #tmp
  WHERE lat1=1 and lng1=1
  UNION ALL
  SELECT 
  t.lat1,t.lng1,t.lat2,t.lng2, 
  level+1, cast(path+','+'('+cast(t.lat2 as varchar) + ',' + cast(t.lng2 as varchar)+')' as varchar)
  FROM #tmp t
  INNER JOIN cte c
    ON c.lat2 = t.lat1 and c.lng2 = t.lng1
)
select * from cte; 
;


The WHERE lat1=1 and lng1=1 part specifies the base of the hierarchy (which is probably the start of a journey, in this case).