gazetteer/gazetteer/places/views.py
2011-08-29 18:43:22 +05:30

52 lines
1.5 KiB
Python

# Create your views here.
from django.shortcuts import render_to_response, get_object_or_404
from ox.django.shortcuts import render_to_json_response
from django.template import RequestContext
from models import Feature, FeatureType
def search(request):
d = RequestContext(request, {})
return render_to_response("search.html", d)
def search_json(request):
search_term = request.GET.get("search", "")
bbox = request.GET.get("bbox", False)
if not bbox:
return render_to_json_response({'error': 'no bbox parameter'})
bs = bbox.split(",")
bs_param = (float(bs[0]), float(bs[1]), float(bs[2]), float(bs[3]),)
features_qset = Feature.search.overlaps(bs_param, text=search_term, srid=3785)[0:20]
features = [f.get_geojson() for f in features_qset]
d = {
'type': 'FeatureCollection',
'features': features
}
return render_to_json_response(d)
def search_related(request):
id = request.GET.get("id", "0")
feature = get_object_or_404(Feature, pk=id)
similar_features = feature.similar_features()
d = []
for s in similar_features:
d.append({
'id': s.id,
'feature_type': FeatureType.objects.get(pk=s.feature_type_id)
'preferred_name': s.preferred_name,
'similarity': s.similarity,
'distance': s.distance
})
return render_to_response("search_related.html", {
'feature': feature,
'similar_features': d
})
def search_related_json(request):
d = {}
return render_to_json_response(d)