import math
import re
# Koordinatları içeren dosyanın yolunu burada değiştirin
file_path = "C:\\Users\\Erdem\\Desktop\\Koordinatlar.txt"
# İlk koordinatı burada ayarlayabilirsiniz
start_coord = (37.044800, 27.408900)
def distance(coord1, coord2):
"""İki koordinat arasındaki mesafeyi hesaplayan fonksiyon"""
lat1, long1 = coord1
lat2, long2 = coord2
radius = 6371 # Yeryüzünün ortalama yarıçapı (km)
dlat = math.radians(lat2 - lat1)
dlong = math.radians(long2 - long1)
a = (math.sin(dlat / 2) * math.sin(dlat / 2) +
math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) *
math.sin(dlong / 2) * math.sin(dlong / 2))
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
d = radius * c
return d
def get_sorted_coords(coords, start_coord):
"""Verilen koordinat listesini, başlangıç koordinatına göre sıralayan fonksiyon"""
sorted_coords = []
curr_coord = start_coord
while len(coords) > 0:
min_dist = float('inf')
min_coord = None
for coord in coords:
dist = distance(curr_coord, coord)
if dist < min_dist:
min_dist = dist
min_coord = coord
sorted_coords.append(min_coord)
coords.remove(min_coord)
curr_coord = min_coord
return sorted_coords
def format_coords(coords):
"""Koordinatları Google Maps URL formatına dönüştüren fonksiyon"""
formatted_coords = []
for coord in coords:
lat, long = coord
formatted_coords.append(f"{lat},{long}")
return formatted_coords
def clean_coords(file_path):
"""Dosyadaki koordinatları temizleyen fonksiyon"""
with open(file_path, "r") as f:
coordinates = f.readlines()
clean_coordinates = []
for coordinate in coordinates:
clean_coordinate = re.sub(r'[^\d.,]+', '', coordinate)
if clean_coordinate:
lat, long = clean_coordinate.split(',')
clean_coordinates.append((float(lat), float(long)))
return clean_coordinates
# Dosyadaki koordinatları temizleyin
coordinates = clean_coords(file_path)
# Başlangıç koordinatına göre koordinatları sıralayın
sorted_coordinates = get_sorted_coords(coordinates, start_coord)
# Koordinatları Google Maps URL formatına dönüştürün
formatted_coordinates = format_coords(sorted_coordinates)
# Dosyaya yazdırın
with open(file_path, "w") as f:
for coord in formatted_coordinates:
f.write(f"https://www.google.com/maps/place/{coord}\n")