from math import radians, sin, cos, sqrt, atan2
def haversine(lat1, lon1, lat2, lon2):
R = 6371.0
lat1, lon1, lat2, lon2 = map(radians, [lat1, lon1, lat2, lon2])
dlat = lat2 - lat1
dlon = lon2 - lon1
a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
distance = R * c
return distance
google_lat, google_lng = 39.90492, 116.39758
gcj_lat, gcj_lng = 39.904949, 116.397594
wgs_lat, wgs_lng = 39.90354564401196, 116.39135088735438
distance_to_gcj = haversine(google_lat, google_lng, gcj_lat, gcj_lng)
distance_to_wgs = haversine(google_lat, google_lng, wgs_lat, wgs_lng)
distance_to_gcj, distance_to_wgs