def search(self, q, loc, radius): from .models import Voting """ 融合百度POI数据和自有数据 point: 中心点坐标 tuple (lat, png) dist: 到中心点距离 """ loc = self.convert_GCJ02_to_BD09(loc) items = [] res = BaiduMap.search_around(q=q, loc=reversed(loc), radius=radius) if res['message'] == 'ok': for it in res['results']: it['category'] = q item = self.get_cached_or_create_item(it['uid'], it) try: voting = Voting.objects.get(item_id=item.pk) item.voting = voting except: item.voting = Voting(vote=0, unvote=0) items.append(item) return sorted(items, key=lambda x: x.voting.vote, reverse=True)