C# 如何使用维基百科API在坐标中包含距离?

C# 如何使用维基百科API在坐标中包含距离?,c#,json,api,wikipedia-api,mediawiki-api,C#,Json,Api,Wikipedia Api,Mediawiki Api,在我的维基百科API中,我得到了一个地方的坐标。这个坐标包含lat、lon、dim、type等,但我还想在坐标中添加dist,这样我就可以从一个API获得每个位置的距离。我当前的API是- https://en.wikipedia.org/w/api.php?format=json&action=query&redirects=1&generator=geosearch&prop=extracts|coordinates|pageimages&ggslim

在我的维基百科API中,我得到了一个地方的坐标。这个坐标包含lat、lon、dim、type等,但我还想在坐标中添加dist,这样我就可以从一个API获得每个位置的距离。我当前的API是-

https://en.wikipedia.org/w/api.php?format=json&action=query&redirects=1&generator=geosearch&prop=extracts|coordinates|pageimages&ggslimit=20&ggsradius=1000&ggscoord=52.5243700|13.4105300&&formatversion=2&exintro=1&explaintext=1&exlimit=20&coprop=type|dim|globe&colimit=20&piprop=thumbnail&pithumbsize=400&pilimit=20
此API的输出为:

"query": {
    "pages": [
        {
            "pageid": 2511,
            "ns": 0,
            "title": "Alexanderplatz",
            "extract": "Alexanderplatz (pronounced [ʔalɛkˈsandɐˌplats]) is a large public square and transport hub in the central Mitte district of Berlin, near the Fernsehturm. Berliners often call it simply Alex, referring to a larger neighbourhood stretching from Mollstraße in the northeast to Spandauer Straße and the Rotes Rathaus in the southwest.",
            "coordinates": [
                {
                    "lat": 52.52166748,
                    "lon": 13.41333294,
                    "primary": "",
                    "type": "landmark",
                    "dim": "1000",
                    "globe": "earth"
                }
            ],
            "thumbnail": {
                "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm/400px--Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm.jpg",
                "width": 400,
                "height": 225
            }
        },
     ...and some many JSON object similar like this...
    ]
}
"query": {
    "geosearch": [
        {
            "pageid": 18618509,
            "ns": 0,
            "title": "Wikimedia Foundation",
            "lat": 37.78697,
            "lon": -122.399677,
            "dist": 13.7,
            "primary": ""
        },
        ... so on
    ]
}
在搜索位置的查询时,我发现了以下API:

https://en.wikipedia.org/w/api.php?action=query&list=geosearch&gscoord=37.786952%7C-122.399523&gsradius=10000&gslimit=10
此API的输出为:

"query": {
    "pages": [
        {
            "pageid": 2511,
            "ns": 0,
            "title": "Alexanderplatz",
            "extract": "Alexanderplatz (pronounced [ʔalɛkˈsandɐˌplats]) is a large public square and transport hub in the central Mitte district of Berlin, near the Fernsehturm. Berliners often call it simply Alex, referring to a larger neighbourhood stretching from Mollstraße in the northeast to Spandauer Straße and the Rotes Rathaus in the southwest.",
            "coordinates": [
                {
                    "lat": 52.52166748,
                    "lon": 13.41333294,
                    "primary": "",
                    "type": "landmark",
                    "dim": "1000",
                    "globe": "earth"
                }
            ],
            "thumbnail": {
                "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm/400px--Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm.jpg",
                "width": 400,
                "height": 225
            }
        },
     ...and some many JSON object similar like this...
    ]
}
"query": {
    "geosearch": [
        {
            "pageid": 18618509,
            "ns": 0,
            "title": "Wikimedia Foundation",
            "lat": 37.78697,
            "lon": -122.399677,
            "dist": 13.7,
            "primary": ""
        },
        ... so on
    ]
}

现在我想知道有没有办法在我以前的API中包含“dist”?

是的,您可以通过使用codistancefrompoint参数在API中包含
dist
,该参数是主API请求中已经使用的参数的一部分,因此您不需要使用其他API。此参数的值必须是您的入口点,因此它必须与
ggscoord
相同:

codistancefrompoint=52.5243700|13.4105300
在这种情况下,对于每个结果,将测量从该入口点到结果点的距离

以下是您的新API查询:

https://en.wikipedia.org/w/api.php?format=json&action=query&redirects=1&generator=geosearch&prop=extracts|coordinates|pageimages&ggslimit=20&ggsradius=1000&ggscoord=52.5243700|13.4105300&formatversion=2&exintro=1&explaintext=1&exlimit=20&coprop=type|dim|globe&colimit=20&piprop=thumbnail&pithumbsize=400&pilimit=20&codistancefrompoint=52.5243700|13.4105300
结果如下:

"query":{
    "pages":[
        {
            "pageid":2511,
            "ns":0,
            "title":"Alexanderplatz",
            "extract":"Alexanderplatz (pronounced [ʔalɛkˈsandɐˌplats]) is a large public square and transport hub in the central Mitte district of Berlin, near the Fernsehturm. Berliners often call it simply Alex, referring to a larger neighbourhood stretching from Mollstraße in the northeast to Spandauer Straße and the Rotes Rathaus in the southwest.",
            "coordinates":[
                {
                    "lat":52.52166748,
                    "lon":13.41333294,
                    "primary":"",
                    "type":"landmark",
                    "dim":"1000",
                    "globe":"earth",
                    "dist":355.3
                }
            ],
            "thumbnail":{
                "source":"https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm/400px--Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm.jpg",
                "width":400,
                "height":225
            }
        },
        ...
    ]
}

非常感谢你的回答。