【问题标题】:Get the name of the state in Deutsch using OpenStreetMap使用 OpenStreetMap 获取 Deutsch 中的州名
【发布时间】:2017-04-27 22:51:16
【问题描述】:

目前我正在使用下面的 url 来获取给定地址的详细信息。

link

控制器中生成上述url的相应代码如下:

var query = [address.streetName, address.streetNumber, address.zipCode, address.city, 'Deutschland'].join(' ');

L.Control.Geocoder.jsonp('https://nominatim.openstreetmap.org/search/', {
 q: query,
 limit: 1,
 format: 'json'
}, function (data) {
  if (0 < data.length && ('way' === data[0].osm_type || 'house' === data[0].type)) {
    //do something here
  }
}, this, 'json_callback');

上述查询将返回如下结果:

“地点” 显示名称 : "12, Dolivostraße, Pallaswiesenviertel, Darmstadt, Regierungsbezirk Darmstadt, Hesse, 64293, Germany" 重要性 : 0.111 纬度 : “49.8766854” 执照 : “数据 © OpenStreetMap 贡献者,ODbL 1.0。http://www.openstreetmap.org/copyright” 隆 : “8.6396259” osm_id : “1791379113” osm_type : “节点” place_id : “18711662” 类型 : “房子”

我想要 'Hessen'(这是德国使用的名称)而不是 'Hesse'强>。如何做到这一点?任何帮助都会很棒:)

【问题讨论】:

    标签: angularjs openstreetmap angular-leaflet-directive overpass-api


    【解决方案1】:

    请参阅Nominatim documentation。它提到了参数accept-language

    显示搜索结果的首选语言顺序,覆盖 在“Accept-Language”HTTP 标头中指定的值。 使用标准 rfc2616 接受语言字符串或简单的逗号 语言代码的分隔列表。

    它允许您根据 RFC2616 中描述的 Accept-Language 请求标头指定语言列表。要优先选择德语,其次选择英语,只需将 &amp;accept-language=de,en 添加到您的 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多