Untitled
unknown
plain_text
2 years ago
2.6 kB
1
Indexable
Never
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")