2016-04-08 21 views
1

GeoIndexを初めて使用しています。現在、私は〜1600ジオタグの画像を持っています、私はGeoIndexで、私のポイント(または私の現在の場所)の特定の半径内のすべての画像を見つけるために働いている、すべて正常に動作している、それはクエリに一致するポイントを返しています。ただし、各画像に固有のURLがあるため、地理座標とURLの間のリンクを維持する必要があります。GeoIndexでの参照

例えば

:実行時

arraySearch = [(latitudecoordinate,longitudecoordinate,url)] 

:次の形式でJSONファイルから読み出されたデータが含まarraySearchという配列があるよう

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はPARAMTERとして渡されます上記の関数は、私は次の出力を得る:

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) 

ありがとうございました!コード

答えて

1

にインデントのエラーを訂正する

編集次に、あなたは、単にobject structureで利用可能なrefスロットにURLを含める必要があります:Pointオブジェクトとして

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 

は、この属性が含まれていません。その__repr__メソッドの場合は、上記のようにprintステートメントに追加する必要があります。

+0

ああ素晴らしい!ヘクトルに感謝します! – McCourt2364

+0

あなたは大歓迎です!それは動作しましたか?私はテストしなかったのが怖いです。また、あなたの質問に基づいてGeoindexコードに変更を提案しました:https://github.com/gusdan/geoindex/pull/2 –

+1

はい!非常にうまくいった!私はあなたの提案された変更に同意します! – McCourt2364