1

SQL コマンドの後に QuerySet をソートしたい。

resultSet = PoiRestauration.objects.raw(' \
    WITH point as( \
        SELECT ST_Transform(GeomFromText(\'POINT(%s %s)\',4326),900913) as geom \
    ) \
    SELECT \
        osm_id, way, type, amenity, name, cuisine, website, phone \
    FROM \
        poi_restauration, \
        point \
    WHERE \
        way && st_expand(geom,100000) \
    ORDER BY \
        st_length(ST_ShortestLine(way,geom)) ASC \
    LIMIT 5', [float(lon), float(lat)])


    for object in resultSet:
        object.way.transform(4326)

        osrm = getOsrmRoute([str(lat)+","+ str(lon),str(object.way.y)+","+str(object.way.x)],"car",True)
        object.osrmDistance = osrm['distance']
        object.osrmGeometry = osrm['geometry']
        print object.osrmDistance

結果セットの各ポイントについて、地理的距離を計算します。今、これらの距離を並べ替えたいのですが、クエリセットではできません。私はこのエラーがあります:

TypeError: 'PoiRestauration' object does not support indexing

このようなものを使用しようとすると:

print sorted(resultSet, key=lambda poi:poi[2])

ありがとうございます。それでは、お元気で

4

0 に答える 0