首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取公路名称- Skobbler

获取公路名称- Skobbler
EN

Stack Overflow用户
提问于 2015-09-18 13:41:20
回答 2查看 128关注 0票数 4

我需要获得用户当前正在导航的高速公路名称。可以在导航模式下完成,从

代码语言:javascript
复制
-(void)routingService:(SKRoutingService *)routingService didChangeCurrentStreetName:(NSString *)currentStreetName streetType:(SKStreetType)streetType countryCode:(NSString *)countryCode

所以,当我昨天在测试我的应用程序时,我在高速公路上,是的,斯科布勒确实认识到我在其中一个,是的,我把高速公路的名字拿回来了。

是“布鲁克林-皇后区高速公路”。但是,布鲁克林-皇后区高速公路实际上是I-278州际公路的名称,我以后必须使用的所有功能都需要以I-nnn的格式命名。

这是我的意思的地图照片

那么,当streetName被确认为一条州际公路时,是否有一种方法可以获得in格式的streetType呢?或者有什么开放的街道地图数据库可以供我们参考?我没能在OSM Wiki上找到任何东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-18 20:41:18

不知道Skobbler,但是如果有在线查询,并且您有大致的地理区域和高速公路名称,您可以使用天桥API (API接口)查询openstreetmap数据库,以获得高速公路参考。

例如,以下查询(针对包含一小部分公路的特定bbox ):

代码语言:javascript
复制
[out:json]
[timeout:25]
;
(
  way
    ["highway"="motorway"]
    ["name"="Brooklyn-Queens Expressway"]
    (40.73483602685421,-73.91463160514832,40.73785205632046,-73.9096748828888);
);
out body qt;

返回(为了简单起见,省略了一些键值对):

代码语言:javascript
复制
{
  "version": 0.6,
  "generator": "Overpass API",
  "osm3s": {
    "timestamp_osm_base": "2015-09-18T20:21:02Z",
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
  },
  "elements": [

{
  "type": "way",
  "id": 46723482,
  "nodes": [
    488264429,
    488264444,
    488264461,
    488264512,
    488264530,
    488264541,
    597315979
  ],
  "tags": {
    "bicycle": "no",
    "bridge": "yes",
    "foot": "no",
    "hgv": "designated",
    "highway": "motorway",
    "horse": "no",
    "lanes": "3",
    "layer": "1",
    "name": "Brooklyn-Queens Expressway",
    "oneway": "yes",
    "ref": "I 278",
    "sidewalk": "none",
  }
},
{
  "type": "way",
  "id": 46724225,
  "nodes": [
    597315978,
    488242888,
    488248526,
    488248544,
    488248607
  ],
  "tags": {
    "bicycle": "no",
    "bridge": "yes",
    "foot": "no",
    "hgv": "designated",
    "highway": "motorway",
    "horse": "no",
    "lanes": "3",
    "layer": "1",
    "name": "Brooklyn-Queens Expressway",
    "oneway": "yes",
    "ref": "I 278",
    "sidewalk": "none",
  }
}

  ]
}

这是osm数据库中的两个路段。在美国,州际公路的“参考”标签以“In”的形式表示(参见高速公路,并注意同一地点的格式)。您可以相应地检索州际名称。

您可以在http://overpass-turbo.eu/s/bxi (按RUN和返回数据的data选项卡)的天桥-turbo(服务的UI )中尝试上述查询,并在另一个bbox中浏览查询的地图。

票数 3
EN

Stack Overflow用户

发布于 2015-09-22 05:37:52

SDK中没有公开"ref“信息(将此信息放到TODO列表中)。

解决方法是查看文本建议(当使用TTS时),因为存在这些信息(如果您查看$ref参数,其中包含您要查找的信息)。有关文本建议结构的详细信息,请参阅这篇博客文章

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32653550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档