gpt4 book ai didi

swift - 在线合并两个或多个 API 的响应

转载 作者:行者123 更新时间:2023-11-30 12:48:41 25 4
gpt4 key购买 nike


我想合并两个或多个 API 的响应。我之前没有制作过 API,所以更喜欢在线提供的东西来组合两个 API。
例如,如果一个 API 列出了加利福尼亚州的城市名称,其他 API 列出了德克萨斯州的城市名称,那么我如何才能以一种方式将它们组合起来,只需要一次 API 调用即可返回加利福尼亚州和德克萨斯州的城市列表?
大家知道网上有没有类似的东西吗?喜欢任何工具或其他东西吗?
预先感谢您的帮助。
我想要以下结构或具有以下结构的 API。任何具有这种结构的 API 都可以,它只是应该有一系列位置

results:
[
California :
{
county:Orange county
lat:
long:
},
{
county:santa clara county
lat:
long:
},
{
county:LA county
lat:
long:
},
{
county:long beach county
lat:
long:
},
],
Texas:
{
county:Orange county
lat:
long:
},
{
county:Orange county
lat:
long:
},
{
county:Orange county
lat:
long:
},
{
county:Orange county
lat:
long:
},
{
county:Orange county
lat:
long:
},
],
New Jersey[
{
county:Orange county
lat:
long:
}

]
]

最佳答案

可以通过在开发控制台或 <script> 中使用 javascript 向 openstreetmaps 发出两个请求来完成。标签,您也可以使用curlpythonrequests.get ,或您喜欢的任何语言:

Promise.all([
fetch("http://nominatim.openstreetmap.org/search/?city=San%20Francisco&state=California&format=json"),
fetch("http://nominatim.openstreetmap.org/search/?city=Austin&state=Texas&format=json")
])
.then(values => {
return Promise.all(values.map(v=>v.text()))
})
.then(values => {
values.map(v=>{console.log(v)})
})
.catch(e => {console.warn(e)})

输出:

"[
{
"place_id": "158675742",
"licence": "Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright",
"osm_type": "relation",
"osm_id": "111968",
"boundingbox": [
"37.6403143",
"37.9298443",
"-123.1738249",
"-122.2817799"
],
"lat": "37.7792808",
"lon": "-122.4192362",
"display_name": "San Francisco, San Francisco City and County, California, United States of America",
"class": "place",
"type": "city",
"importance": 0.99836369596997,
"icon": "http://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png"
}
]"

"[
{
"place_id": "158900509",
"licence": "Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright",
"osm_type": "relation",
"osm_id": "113314",
"boundingbox": [
"30.0986648",
"30.516863",
"-97.9383829",
"-97.5614889"
],
"lat": "30.2711286",
"lon": "-97.7436994",
"display_name": "Austin, Travis County, Texas, United States of America",
"class": "place",
"type": "city",
"importance": 0.8589403884382,
"icon": "http://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png"
}
]"

另一种选择是使用:

文档示例:

from geopy.geocoders import GeocoderDotUS
geolocator = GeocoderDotUS(format_string="%s, Cleveland OH")
address, (latitude, longitude) = geolocator.geocode("11111 Euclid Ave")
print(address, latitude, longitude)
11111 Euclid Ave, Cleveland, OH 44106 41.506784 -81.608148

对于 swift 来说,这看起来可能可行,但它只是一个 get 请求,所以我不确定 openstreetmaps 的包装器需要有多复杂:

或查看:

关于swift - 在线合并两个或多个 API 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41297649/

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