mirror of
				https://github.com/KevinMidboe/termForecast.git
				synced 2025-10-29 18:00:17 +00:00 
			
		
		
		
	Get the area names from long and lat coordinates from google geocode API. Then it is compiled in string for YR and a GET request for the weather API is called with the location names.
This commit is contained in:
		| @@ -3,7 +3,7 @@ | |||||||
| # @Author: KevinMidboe | # @Author: KevinMidboe | ||||||
| # @Date:   2017-07-27 21:26:53 | # @Date:   2017-07-27 21:26:53 | ||||||
| # @Last Modified by:   KevinMidboe | # @Last Modified by:   KevinMidboe | ||||||
| # @Last Modified time: 2017-07-28 13:58:43 | # @Last Modified time: 2017-07-28 17:30:12 | ||||||
|  |  | ||||||
| # TODO LIST | # TODO LIST | ||||||
| # Get coordinates from IP ✔ | # Get coordinates from IP ✔ | ||||||
| @@ -33,6 +33,31 @@ class Location(object): | |||||||
| 		long = self.ip.location.longitude | 		long = self.ip.location.longitude | ||||||
| 		return [lat, long] | 		return [lat, long] | ||||||
|  |  | ||||||
|  | 	def getAreaName(self): | ||||||
|  | 		lat, long = self.getCoordinates() | ||||||
|  | 		coordinates = ','.join([str(lat), str(long)]) | ||||||
|  | 		areaURL = 'https://maps.googleapis.com/maps/api/geocode/json?&latlng=' | ||||||
|  |  | ||||||
|  | 		areaAPIResponse = json.loads(get(areaURL + coordinates).text) | ||||||
|  | 		closestArea = areaAPIResponse['results'][0]['address_components'] | ||||||
|  |  | ||||||
|  | 		area = {} | ||||||
|  |  | ||||||
|  | 		for item in closestArea: | ||||||
|  | 			if 'route' in item['types']: | ||||||
|  | 				area['street'] = item['long_name'] | ||||||
|  |  | ||||||
|  | 			if 'locality' in item['types']: | ||||||
|  | 				area['town'] = item['long_name'] | ||||||
|  |  | ||||||
|  | 			if 'administrative_area_level_1' in item['types']: | ||||||
|  | 				area['municipality'] = item['long_name'] | ||||||
|  |  | ||||||
|  | 			if 'country' in item['types']: | ||||||
|  | 				area['country'] = item['long_name'] | ||||||
|  |  | ||||||
|  | 		return area | ||||||
|  |  | ||||||
|  |  | ||||||
| class WeatherForcast(object): | class WeatherForcast(object): | ||||||
| 	def __init__(self, area=None): | 	def __init__(self, area=None): | ||||||
| @@ -41,14 +66,17 @@ class WeatherForcast(object): | |||||||
|  |  | ||||||
| 	def now(self): | 	def now(self): | ||||||
| 		location = Location() | 		location = Location() | ||||||
| 		lat, long = location.getCoordinates() | 		self.area = location.getAreaName() | ||||||
| 		print('Coords: ', lat, long) | 		print('Area: ', self.area) | ||||||
| 		print(' - - - - - - - - ') | 		print(' - - - - - - - - ') | ||||||
|  |  | ||||||
| 		weather = Yr(coordinates=(lat, long, 10)) | 		# Create seperate function for formatting | ||||||
|  | 		locationName = '/'.join([self.area['country'], self.area['municipality'], self.area['town'], self.area['street']]) | ||||||
|  |  | ||||||
|  | 		weather = Yr(location_name=locationName) | ||||||
| 		now = json.loads(weather.now(as_json=True)) | 		now = json.loads(weather.now(as_json=True)) | ||||||
|  |  | ||||||
| 		temp = now['location']['temperature'] | 		temp = now['temperature'] | ||||||
| 		print(temp['@value'] + ' ' + temp['@unit']) | 		print(temp['@value'] + ' ' + temp['@unit']) | ||||||
| 		 | 		 | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user