gpt4 book ai didi

c# - 如何使用 geonames API 获取城市名称?

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:48 25 4
gpt4 key购买 nike

如何使用 API 搜索地名并获取城市名称和坐标?链接到他们的 API

最佳答案

当然这完全取决于您要执行的实际搜索。假设您要查找英国所有以 Lon 开头的位置。将执行此搜索的 URL(例如,实际搜索可能会发生很多变化)是:

http://api.geonames.org/search?name_startsWith=lon&country=GB&maxRows=10&username=demo

您可以在浏览器中弹出它并查看结果:

<geonames style="MEDIUM">
<totalResultsCount>334</totalResultsCount>
<geoname>
<toponymName>London</toponymName>
<name>London</name>
<lat>51.50853</lat>
<lng>-0.12574</lng>
<geonameId>2643743</geonameId>
<countryCode>GB</countryCode>
<countryName>United Kingdom</countryName>
<fcl>P</fcl>
<fcode>PPLC</fcode>
</geoname>
<geoname>
<toponymName>Lone</toponymName>
<name>Lone</name>
<lat>58.33333</lat>
<lng>-4.88333</lng>
<geonameId>2643732</geonameId>
<countryCode>GB</countryCode>
<countryName>United Kingdom</countryName>
<fcl>P</fcl>
<fcode>PPL</fcode>
</geoname>
<!-- and so on ... -->
</geonames>

请注意,您需要每个 geoname 下的 latlng 元素。使用 LINQ to XML(在命名空间声明中包括 System.LinqSystem.Linq.Xml):

var xml = XElement.Load("http://api.geonames.org/search?name_startsWith=lon&country=GB&maxRows=10&username=demo");

var locations = xml.Descendants("geoname").Select(g => new {
Name = g.Element("name").Value,
Lat = g.Element("lat").Value,
Long = g.Element("lng").Value
});

foreach (var location in locations)
{
Console.WriteLine("{0}: {1}, {2}", location.Name, location.Lat, location.Long);
}

当然,您可以选择以不同方式使用这些值,并且您可能希望将 LatLong 解析为 double 值。

关于c# - 如何使用 geonames API 获取城市名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10677471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com