簡體   English   中英

無法通過Python使用Overpass API打印查詢

[英]Failing to print query using Overpass API with Python

到目前為止,這是我的代碼,我正在使用flickrapi獲取帶有lat和lon的圖像,然后在flickr中使用Overpass API查找有關該位置節點的信息。

import flickrapi
import overpy

api_key = "xxxxxxxxxxxxxxxxxxx"
secret_api_key = "xxxxxxxx"
flickr = flickrapi.FlickrAPI(api_key, secret_api_key)

def obtainImages():

    photo_list = flickr.photos.search(api_key=api_key, accuracy = 15, has_geo=1, per_page = 100, extras = 'tags, url_s')

    for photo in photo_list[0]:

        id = str(photo.attrib['id'])
        url = str(photo.attrib['url_s'])
        title = (photo.attrib['title']).encode('utf-8')

        photo_location = flickr.photos_geo_getLocation(photo_id=photo.attrib['id'])
        lat = float(photo_location[0][0].attrib['latitude'])
        lon = float(photo_location[0][0].attrib['longitude'])

        max_lat = lat + 0.25
        min_lat = lat - 0.25
        max_lon = lon + 0.25
        min_lon = lon - 0.25


        print lat
        print min_lat
        api = overpy.Overpass()
        query = "node(%s, %s, %s, %s);out;" % ( min_lat, min_lon, max_lat, max_lon )
        result = api.query(query)
        print query
        print len(result.nodes)

obtainImages()

如果我嘗試打印任何變量,則flickr api方面運行良好,並且一切正常。 min_lat和min_lon都可以在打印時使用。

但是,盡管沒有錯誤,但我的查詢沒有返回任何結果。lat和min_lat僅打印一次,然后程序繼續運行,但不執行任何操作並且不執行其他任何操作

有誰對這可能是為什么的任何建議? 由於我是新手,任何幫助將不勝感激!

問題在於您正在查詢龐大的數據集,這將使查詢花費大量時間。

例如,我僅從flickr中查詢了一張圖像,您的腳本生成了以下查詢:

node(20.820875, -87.027648, 21.320875, -86.527648);out;

51162個結果。 您正在2890平方千米的框中查詢每個可用節點,請參見此處的插圖: http : //bl.ocks.org/d/3d4865b71194101b9473

為了更好地了解經度和緯度的變化(甚至是+/- 0.25之類的“小”變化)如何影響結果,我建議您在GIS Stackexchange上查看以下文章: https://gis.stackexchange。 com / a / 8655/12310

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM