Hello,

I want to know addresses of some coordinates, so I use geopy.

my code is

``````from geopy.geocoders import Nominatim

def to_degrees(lats, longs):
lat_deg = lats[0:2]
lat_mins = lats[2:4]
lat_secs = int(lats[5:])*60/10000
lat_msecs = int(lats[5:])*60%10000
lat_str = lat_deg + u'.'+ lat_mins + str(lat_secs) + str(lat_msecs)

lon_deg = longs[0:3]
lon_mins = longs[3:5]
lon_secs = int(longs[6:])*60/10000
lon_msecs = int(longs[6:])*60%10000
lon_str = lon_deg + u'.'+ lon_mins + str(lon_secs) + str(lon_msecs)
return [lat_str, lon_str]

def gpgga():
if data[0:6] == "\$GPGGA":
gpgga = nmea.GPGGA()
gpgga.parse(data)
lats = gpgga.latitude
lat_dir = gpgga.lat_direction
longs = gpgga.longitude
long_dir = gpgga.lon_direction

lat_lon = to_degrees(lats, longs)

p = lat_lon[0] + "," + lat_lon[1]
geolocator = Nominatim()
location = geolocator.reverse(p, timeout = None)
print "p:", p
``````

my output is

``````Latitude:  37.27265020"N & Longitude:  126.56552840"E
``````

``````301, 대부북동 (Daebubukdong), 안산시 (Ansan), 경기(kyungki), 대한민국(S.Korea)
``````

where Latitude: 37.244358, Longitude: 126.583535

How can I fix this problem?? I tried to add and subtract errors but I failed because of different types; unicode(lat_lon) vs float...

as I know, changing unicode to float or float to unicode is impossible.

1
Contributor
1
21
Views
2 Years
Discussion Span
Last Post by 승환

I changed type to str, float and calculate(latitude - 0.02803, longitude+0.017907) and change type again to unicode.

but result is

``````301, 대부북동 (Daebubukdong), 안산시 (Ansan), 경기, 대한민국
location.latitude, location.longitude : 37.2915257, 126.578164
Latitude:  37.27256"N & Longitude:  126.565540"E
``````

how can i solve this problem?