zoukankan      html  css  js  c++  java
  • 使用Nominatim进行openstreetmap地址搜索/解析

    Nominatim(来自拉丁语,意思是“名称”)是一个可以按名称和地址来搜索OSM中的数据,并生成OSM点的合成地址的工具(反向地理编码)。可用在http://nominatim.openstreetmap.org找到这个工具。Nominatim也用在OpenStreetMap首页搜索工具栏中,同时也为MapQuest Open Initiative提供搜索支持。

    本页面提供了使用说明。要了解关于Nominatim如何工作的细节请查看发展概况以及这个FAQ。这里还有一个关于各个国家的语言代码各个国家地址格式的列表。

    搜索

    Nominatim为OSM的数据集中已命名(或编号)的内容,以及其他无名的功能子集(酒吧,旅馆,教堂等)进行了索引。

    搜索首先会从左至右进行,如果失败的话会再从右到左搜索。

    这两个搜索都会得到结果:皮尔金顿大道,伯明翰 伯明翰,皮尔金顿大道

    (逗号是可选的,但加上逗号可以降低搜索的复杂程度并提高搜索精度。)

    门牌号码已经被定义了的区域,可以使用:135皮尔金顿大道,伯明翰

    特殊的关键词

    在搜索中不同的关键字会被翻译成特定OSM标签(例如,酒吧=>市容=酒馆)。这里有一个这样特殊短语的列表。

    参数

     http://nominatim.openstreetmap.org/search?<params>
     http://nominatim.openstreetmap.org/search/<query>?<params>
    
     format=[html|xml|json|jsonv2]
       Output format
    
     json_callback=<string>
       Wrap json output in a callback function (JSONP) i.e. <string>(<json>) 
    
     accept-language=<browser language string>
       Preferred language order for showing search results, overrides the browser value.  
       Either uses standard rfc2616 accept-language string or 
       a simple comma separated list of language codes.
    
     q=<query>
       Query string to search for.  Alternatively can be entered as:
    
     street=<housenumber> <streetname>
     city=<city>
     county=<county>
     state=<state>
     country=<country>
     postalcode=<postalcode>
       (experimental) Alternative query string format for structured requests. 
       Structured requests are faster and require less server resources. 
       DO NOT COMBINE WITH q=<query> PARAMETER.
    
     countrycodes=<countrycode>[,<countrycode>][,<countrycode>]...
       Limit search results to a specific country (or a list of countries).  
       <countrycode> should be the ISO 3166-1alpha2 code, 
       e.g. gb for the United Kingdom, de for Germany, etc.
    
     viewbox=<left>,<top>,<right>,<bottom>
     or viewboxlbrt=<left>,<bottom>,<right>,<top>
       The preferred area to find search results
    
     bounded=[0|1]
       Restrict the results to only items contained with the bounding box. 
       Restricting the results to the bounding box also enables searching by amenity only. 
       For example a search query of just "[pub]" would normally be rejected
       but with bounded=1 will result in a list of items matching within the bounding box.
    
     polygon=[0|1]
       Output polygon outlines for items found 
       (deprecated, use one of the polygon_* parameters instead)
    
     addressdetails=[0|1]
       Include a breakdown of the address into elements
    
     email=<valid email address>
       If you are making large numbers of request please include a valid email address
       or alternatively include your email address as part of the User-Agent string.
       This information will be kept confidential and only used to contact you in the
       event of a problem, see Usage Policy for more details.
    
     exclude_place_ids=<place_id,[place_id],[place_id]>
       If you do not want certain openstreetmap objects to appear in the search result, 
       give a comma separated list of the place_id's you want to skip.
    
     limit=<integer>
       Limit the number of returned results.
    
     dedupe=[0|1]
       No explanation yet.
    
     debug=[0|1]
       No explanation yet.
    
     polygon_geojson=1
       Output geometry of results in geojson format.
    
     polygon_kml=1
       Output geometry of results in kml format.
    
     polygon_svg=1
       Output geometry of results in svg format.
    
     polygon_text=1
       Output geometry of results as a WKT.
    

    示例

     http://nominatim.openstreetmap.org/search?q=135+pilkington+avenue,+birmingham&format=xml&polygon=1&addressdetails=1
     http://nominatim.openstreetmap.org/search/135%20pilkington%20avenue,%20birmingham?format=xml&polygon=1&addressdetails=1
     http://nominatim.openstreetmap.org/search/gb/birmingham/pilkington%20avenue/135?format=xml&polygon=1&addressdetails=1
    
     <searchresults timestamp="Sat, 07 Nov 09 14:42:10 +0000" querystring="135 pilkington, avenue birmingham" polygon="true">
       <place 
         place_id="1620612" osm_type="node" osm_id="452010817" 
         boundingbox="52.548641204834,52.5488433837891,-1.81612110137939,-1.81592094898224" 
         polygonpoints="[['-1.81592098644987','52.5487429714954'],['-1.81592290792183','52.5487234624632'],...]" 
         lat="52.5487429714954" lon="-1.81602098644987" 
         display_name="135, Pilkington Avenue, Wylde Green, City of Birmingham, West Midlands (county), B72, United Kingdom" 
         class="place" type="house">
         <house>135</house>
         <road>Pilkington Avenue</road>
         <village>Wylde Green</village>
         <town>Sutton Coldfield</town>
         <city>City of Birmingham</city>
         <county>West Midlands (county)</county>
         <postcode>B72</postcode>
         <country>United Kingdom</country>
         <country_code>gb</country_code>
       </place>
     </searchresults>
    

    反向地理编码/地址查询

    反向地理编码由纬度和经度产生一个地址。可选的缩放参数指定用于显示某信息在openlayers上显示的合适的缩放级别。

    参数

     http://nominatim.openstreetmap.org/reverse?<query>
    
     format=[xml|json]
       Output format
    
     json_callback=<string>
       Wrap json output in a callback function (JSONP) i.e. <string>(<json>) 
    
     accept-language=<browser language string>
       Preferred language order for showing search results, overrides the browser value.  
       Either uses standard rfc2616 accept-language string or a simple comma separated list of language codes.
    
     osm_type=[N|W|R]
     osm_id=<value>
       A specific osm node / way / relation to return an address for
       Please use this in preference to lat/lon where possible 
    
     lat=<value>
     lon=<value>
       The location to generate an address for
    
     zoom=[0-18]
       Level of detail required where 0 is country and 18 is house/building
    
     addressdetails=[0|1]
       Include a breakdown of the address into elements
    
     email=<valid email address>
       If you are making large numbers of request please include a valid email address
       or alternatively include your email address as part of the User-Agent string.
       This information will be kept confidential and only used to contact you in the
       event of a problem, see Usage Policy for more details.
    

    示例

     http://nominatim.openstreetmap.org/reverse?format=xml&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1
    
     <reversegeocode timestamp="Fri, 06 Nov 09 16:33:54 +0000" querystring="...">
       <result place_id="1620612" osm_type="node" osm_id="452010817">
         135, Pilkington Avenue, Wylde Green, City of Birmingham, West Midlands (county), B72, United Kingdom
       </result>
       <addressparts>
         <house>135</house>
         <road>Pilkington Avenue</road>
         <village>Wylde Green</village>
         <town>Sutton Coldfield</town>
         <city>City of Birmingham</city>
         <county>West Midlands (county)</county>
         <postcode>B72</postcode>
         <country>United Kingdom</country>
         <country_code>gb</country_code>
       </addressparts>   
     </reversegeocode>
    http://wiki.openstreetmap.org/wiki/Zh-hans:Nominatim
  • 相关阅读:
    react-dnd例子代码学习记录
    GitKraken使用记录
    Table-dnd-tree代码分析
    umi-request请求码200,但是response是网页
    MyBatis-Plus配置输出日志
    PAT甲级1021解法
    PAT甲级1020解法
    PAT甲级1019解法
    PAT甲级1017解法
    PAT甲级1018解法
  • 原文地址:https://www.cnblogs.com/jhlong/p/5394771.html
Copyright © 2011-2022 走看看