参考 GeoIndex

Referencing with GeoIndex

我是 GeoIndex 的新手。目前我有大约 1600 张地理标记图像,我正在使用 GeoIndex 查找我点(或我当前位置)一定半径内的所有图像,一切正常,它正在返回与查询匹配的点。但是,由于每个图像都有一个独特的 URL,我需要能够在地理坐标和 URL.

之间保持 link

例如:

def find_distance(index,myLocation,arraySearch,radius):

    myUrlArray = []
    for coords in arraySearch:
        index.add_point(GeoPoint(coords[0],coords[1]))

    for point,distance in index.get_nearest_points(myLocation,radius,'km'):
        print point

myLocation 和一个名为 arraySearch 的数组一样作为参数传入,其中包含以下列格式从 JSON 文件中读取的数据:

arraySearch = [(latitudecoordinate,longitudecoordinate,url)]

当运行上述函数时,我得到以下输出:

Point(54.573307, -5.998721)
Point(54.600225, -5.920579)
Point(54.598671, -5.918605)
Point(54.598671, -5.918605)
Point(54.598671, -5.918605)
Point(54.598671, -5.918605)
Point(54.598671, -5.918605)
Point(54.598671, -5.918605)
Point(54.601469, -5.921652)
Point(54.601493, -5.920901)

理想情况下我想要:

(Point(x,y),URL)

提前致谢!

已编辑以更正代码中的缩进错误

然后您只需将 url 包含在 object structure 中可用的 ref 插槽中:

def find_distance(index,myLocation,arraySearch,radius):

    myUrlArray = []
    for value in arraySearch:
        index.add_point(GeoPoint(value[0],value[1], ref=value[2]))

    for point,distance in index.get_nearest_points(myLocation,radius,'km'):
        print point, point.ref

由于 Point 对象在其 __repr__ 方法中不包含此属性,因此您需要将其添加到上述 print 语句中。