使用OpenStreetMap获取Deutsch中的州名称

时间:2016-12-12 23:50:09

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

目前我正在使用以下网址获取指定地址的详细信息。

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   LAT   :   “49.8766854”   执照   :   “数据©OpenStreetMap贡献者,ODbL 1.0。http://www.openstreetmap.org/copyright”   LON   :   “8.6396259”   osm_id   :   “1791379113”   osm_type   :   “节点”   place_id   :   “18711662”   类型   :   “房子”

我希望 'Hessen' (这是德国使用的名称)而不是 'Hesse' 。怎么做到这一点?任何帮助都会很棒:)

1 个答案:

答案 0 :(得分:0)

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

  

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

它允许您根据RFC2616中描述的Accept-Language请求标头指定语言列表。要首选德语和英语,只需将&accept-language=de,en添加到您的网址。