Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
2.6 kB
1
Indexable

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")