Example #1
0
def submit(request):
	if request.method == 'POST':
		form = LocationForm(request.POST)
		if form.is_valid():
			user_need = form.cleaned_data
			ip = request.META['HTTP_X_FORWARDED_FOR'] if not TEST else "67.169.27.214"
			if user_need['coordinates'] == 'current':
				coord = cache.get(ip)
				if coord:
					lat, lon = getLatLong(coord)
				else: # in case the cache failed
					coord = getCoord(request)
					lat, lon = getLatLong(coord)
					logging.error('using api to get coord --- cache failed')
			else:
				lat, lon = getLatLong(user_need['coordinates'])
			class_id = int(user_need['parktype'])
			resList = recommend.recommend(class_id, lat, lon)
			res = resList[1]["result"]
			resN = resList[0]["result"][0]
			NweatherList = weather.getWeather(str(resN['coords']['lat']), str(resN['coords']['lon']))
			resN['weather'] = NweatherList
			resDetail = getResDetail(res)
			API_KEY = 'AIzaSyAnEt9j1iiUDG6X2cRxQ2GUfotwoe4vCCY'
			google_maps = "https://maps.googleapis.com/maps/api/js?key="+API_KEY+"&sensor=false"
			content = {'results': resDetail,
			           'Nresult': resN,
					   'google_maps_src': google_maps ,
		               'latitude' : lat,
		               'longitude' : lon,
		               'lat0': float(resN['coords']['lat']),
		               'lon0': float(resN['coords']['lon'])
		               }
			return render(request, 'mainpage/recommend.html', content)
Example #2
0
def submit(request):
	if request.method == 'POST':
		urlfetch.set_default_fetch_deadline(10)
		form = LocationForm(request.POST)
		if form.is_valid():
			user_need = form.cleaned_data
			if test == False:
				ra = 'REMOTE_ADDR'
				ip = request.META[ra]
			else:
				ip = memcache.get('ip')
			# logging.error(ip)
			if user_need['coordinates'] == 'current':
				coord = memcache.get(ip)
				lat, lon = getLatLong(coord)
				logging.error('default coord')
				logging.error(coord)
			else:
				lat, lon = getLatLong(user_need['coordinates'])
			class_id = int(user_need['parktype'])
			res = recommender.recommend(class_id, lat, lon)
			resN = recommender.recommendN(class_id, lat, lon)
			NweatherList = weather.getWeather(str(resN['coords']['lat']), str(resN['coords']['lon']))
			resN['weather'] = NweatherList
			resDetail = getResDetail(res)
			API_KEY = 'AIzaSyAnEt9j1iiUDG6X2cRxQ2GUfotwoe4vCCY'
			google_maps = "https://maps.googleapis.com/maps/api/js?key="+API_KEY+"&sensor=false"
			content = {'results': resDetail,
			           'Nresult': resN,
					   'google_maps_src': google_maps ,
		               'latitude' : lat,
		               'longitude' : lon,
		               'lat0': float(resN['coords']['lat']),
		               'lon0': float(resN['coords']['lon']),
		               'lat1': float(res[0]['latitude']),
		               'lon1': float(res[0]['longitude']),
		               'lat2': float(res[1]['latitude']),
		               'lon2': float(res[1]['longitude']),
		               'lat3': float(res[2]['latitude']),
		               'lon3': float(res[2]['longitude'])
		               }
			return render(request, 'mainpage/recommend.html', content)
Example #3
0
def getResDetail(res):
	key = 'd2rttztqpfhbqjz42buq6duc'
	baseUrl = 'http://www.reserveamerica.com'
	# iconUrl = 'http://openweathermap.org/img/w/'
	resDetail = []
	for idx,r in enumerate(res):
		detail = {}
		query = 'contractCode='+r['state']+'&parkId='+r['facilityID']
		camp_detail = 'http://api.amp.active.com/camping/campground/details?'+query+'&api_key='+key
		urlfile = urllib2.urlopen(camp_detail)
		data = urlfile.read()
		urlfile.close()
		dom = minidom.parseString(data)
		detailDescription = dom.getElementsByTagName('detailDescription')
		detail['description'] = detailDescription[0].attributes['description'].value
		detail['facility'] = detailDescription[0].attributes['facility'].value
		detail['importantInformation'] = detailDescription[0].attributes['importantInformation'].value
		photoUrls = []
		photos = dom.getElementsByTagName('photo')
		for p in photos:
			realUrl = p.attributes['realUrl'].value
			# logging.error(realUrl)
			if realUrl != '':
				photoUrls.append(baseUrl+realUrl)
		detail['imgs'] = photoUrls
		detail['state'] = r['state']
		detail['coords'] = {'lat': r['latitude'], 'lon':r['longitude']}
		wkey = r['latitude']+r['longitude']

		weatherList = cache.get(wkey)
		if weatherList is None:
			weatherList = weather.getWeather(r['latitude'], r['longitude'])
			cache.set(wkey, weatherList, 900)
			logging.error('using weather api')
		# logging.error(weatherList[0])
		detail['weather'] = weatherList
		resDetail.append(detail)
		time.sleep(0.6)
	return resDetail