Django Custom 함수 - Tirrilee/TechTalk GitHub Wiki
위도/경도 Search
설명 👍
- SearchPage
- GET과 Cookie를 사용해 파라미터를 가져와서 필터링
- getBoundsFromLatLng
- Cookie로 가져온 위도/경도를 통해 범위 구하기
# ------------------------------------------------------------------
# ViewName : getBoundsFromLatLng
# Description : 위도/경도 기반 BoundsFrom 구하는 함수
# ------------------------------------------------------------------
import math
def getBoundsFromLatLng(lat, lng):
# 1km 구간
lat_change = 1 / 111.2
lon_change = abs(math.cos(lat * (math.pi / 180)))
bounds = {
"lat_min": lat - lat_change,
"lon_min": lng - lon_change,
"lat_max": lat + lat_change,
"lon_max": lng + lon_change
}
return bounds
# ------------------------------------------------------------------
# ViewName : SearchPage
# Description : 즐겨찾기 페이지 기능 구현
# ------------------------------------------------------------------
@login_required
def SearchPage(request):
market = request.GET.get('m', None)
printer = request.GET.get('p', None)
wifi = request.GET.get('w', None)
m = True if market == "on" else False
p = True if printer == "on" else False
w = True if wifi == "on" else False
lat = request.COOKIES['latitude']
lng = request.COOKIES['longitude']
LC = getBoundsFromLatLng(float(lat), float(lng))
PClist = PCCenter.objects.filter(Q(wifi=w) | Q(print=p) | Q(food=m))
PClist = PClist.filter(Q(lat__range=[LC['lat_min'], LC['lat_max']]) & Q(lng__range=[LC['lon_min'], LC['lon_max']]))
return render(request, 'Search/SearchPage.html', {
'PClist' : PClist,
'checked': 3,
'm' : m,
'p': p,
'w': w,
})