Wikimedia Commons API搜索图像(纬度,经度)

Fla*_*vio 6 mediawiki geolocation mediawiki-api wikimedia-commons

我想从维基共享资源中检索图像以显示在地图上.这意味着给定一对(纬度,经度)我想在这一点找到图片.经过一天的搜索和尝试,我仍然不知道这是否可能.特别是我已经阅读了MediaWiki API主页面,API参考一些示例.

所以我的问题是:是否可以检索具有一对地理坐标的图片?如果有,怎么样?

Rai*_*lke 12

是的,那是可能的.在Commons上,扩展:安装了GeoData.使用action=query&list=geosearch&gscoord=lat|lon&gsradius=meters&gsnamespace=6&gsprimary=all

摘自API文档

  gscoord             - Coordinate around which to search: two floating-point values separated by pipe (|)
  gspage              - Title of page around which to search
  gsradius            - Search radius in meters
                        This parameter is required
                        The value must be between 10 and 10000
  gsmaxdim            - Restrict search to objects no larger than this, in meters
  gslimit             - Maximum number of pages to return
                        No more than 500 (5000 for bots) allowed
                        Default: 10
  gsnamespace         - Namespace(s) to search
                        Values (separate with '|'): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 100, 101, 102, 103, 104, 105, 106, 107, 460,
                            461, 490, 491, 1198, 1199, 828, 829
                        Maximum number of values 50 (500 for bots)
                        Default: 0
  gsprop              - What additional coordinate properties to return
                        Values (separate with '|'): type, name, dim, country, region, globe
                        Default: globe
Run Code Online (Sandbox Code Playgroud)

默认情况下,MediaWiki中的文件名称空间为NS 6.

示例:https: //commons.wikimedia.org/w/api.php?format = jsonfm&action = query&list = geosearch&gsprimary = all&thegsnamespace = 6&gsradius = 500&thegscoord = 51.5 | 11.95

结果:

{
    "query": {
        "geosearch": [
            {
                "pageid": 28971703,
                "ns": 6,
                "title": "File:RiveuferHerbst.JPG",
                "lat": 51.501042,
                "lon": 11.948794,
                "dist": 142.8
            },
            {
                "pageid": 32760810,
                "ns": 6,
                "title": "File:Pei\u00dfnitznordspitze4.JPG",
                "lat": 51.499675,
                "lon": 11.947992,
                "dist": 143.6
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您还希望使用API​​请求获取缩略图网址,请将其list=geosearch用作生成器:

示例:https: //commons.wikimedia.org/w/api.php?format=jsonfm&action=query&generator=geosearch&ggsprimary=all&ggsnamespace=6&ggsradius=500&ggscoord=51.5|11.95&ggslimit=1&prop=imageinfo&iilimit=1&iiprop=url&iiurlwidth=200&iiurlheight=200

结果:

{
    "query": {
        "pages": {
            "28971703": {
                "pageid": 28971703,
                "ns": 6,
                "title": "File:RiveuferHerbst.JPG",
                "imagerepository": "local",
                "imageinfo": [
                    {
                        "thumburl": "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/RiveuferHerbst.JPG/200px-RiveuferHerbst.JPG",
                        "thumbwidth": 200,
                        "thumbheight": 150,
                        "url": "https://upload.wikimedia.org/wikipedia/commons/b/b2/RiveuferHerbst.JPG",
                        "descriptionurl": "https://commons.wikimedia.org/wiki/File:RiveuferHerbst.JPG"
                    }
                ]
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)