4   <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
 
   5   <title>OpenStreetMap Nominatim</title>
 
   6   <meta name="viewport" content="width=device-width, initial-scale=1">
 
   8   <link rel="icon" type="image/png" href="assets/images/favicon-194x194.png" sizes="194x194" />
 
   9   <link rel="icon" type="image/png" href="assets/images/favicon-16x16.png" sizes="16x16" />
 
  11   <link href="assets/css/leaflet.css" rel="stylesheet" />
 
  12   <link href="assets/css/Control.MiniMap.min.css" rel="stylesheet" />
 
  13   <link href="assets/css/bootstrap.min.css" rel="stylesheet" />
 
  14   <link href="assets/css/common.css" rel="stylesheet" />
 
  15   <link href="assets/css/search.css" rel="stylesheet" type="text/css" />
 
  16   <link href="assets/css/details.css" rel="stylesheet" type="text/css" />
 
  20   <div id="error-overlay"></div>
 
  22   <header class="container-fluid">
 
  26           <a href="search.html">
 
  27             <img alt="logo" src="assets/images/osm_logo.120px.png" width="30" height="30"/>
 
  33         <div id="last-updated" class="text-center">
 
  34           <div id="loading">loading...</div>
 
  35           <div id="api-request">
 
  36             Data from <a href="">API request</a>
 
  37             <span id="api-request-debug">(<a href="">debug output</a>)</span>
 
  39           Data last updated: <span id="data-date"></span>
 
  42       <div class="col-4 text-right">
 
  43         <div class="dropdown">
 
  44           <button class="dropdown-toggle btn btn-sm btn-outline-secondary" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
 
  47           <div class="dropdown-menu dropdown-menu-right">
 
  48             <a class="dropdown-item" href="https://nominatim.org/release-docs/develop/api/Overview/" target="_blank">API Reference</a>
 
  49             <a class="dropdown-item" href="https://nominatim.org/release-docs/develop/api/Faq/" target="_blank">FAQ</a>
 
  50             <a class="dropdown-item" href="https://help.openstreetmap.org/tags/nominatim/">OpenStreetMap Help</a>
 
  51             <a class="dropdown-item" href="https://github.com/osm-search/Nominatim">Nominatim on Github</a>
 
  52             <a class="dropdown-item" href="https://github.com/osm-search/nominatim-ui">This frontend on Github</a>
 
  53             <div class="dropdown-divider"></div>
 
  54             <a class="dropdown-item" href="#" data-toggle="modal" data-target="#report-modal">Report problem with results</a>
 
  61   <div class="modal fade" id="report-modal">
 
  62     <div class="modal-dialog">
 
  63       <div class="modal-content">
 
  64         <div class="modal-header">
 
  65           <h4 class="modal-title">Report a problem</h4>
 
  66           <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
 
  68         <div class="modal-body">
 
  70             Before reporting problems please read the <a target="_blank" href="https://nominatim.org/release-docs/develop/api/Overview/">user documentation</a>
 
  72             <a target="_blank" href="https://nominatim.org/release-docs/develop/api/Faq/">FAQ</a>.
 
  74             If your problem relates to the address of a particular search result please use the 'details' link 
 
  75             to check how the address was generated before reporting a problem.
 
  78             Use <a target="_blank" href="https://github.com/osm-search/Nominatim/issues">Nominatim issues on github</a>
 
  82             Please ensure that you include a full description of the problem, including the search
 
  83             query that you used, the problem with the result and, if the problem relates to missing data,
 
  84             the osm type (node, way, relation) and id of the item that is missing.
 
  87             Problems that contain enough detail are likely to get looked at before ones that require
 
  91         <div class="modal-footer">
 
  92           <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">OK</button>
 
 102     <p class="disclaimer">
 
 103       Addresses and postcodes are approximate
 
 105     <p class="copyright">
 
 106       © <a href="https://osm.org/copyright">OpenStreetMap</a> contributors
 
 110   <script src="assets/js/jquery.min.js"></script>
 
 111   <script src="assets/js/bootstrap.bundle.min.js"></script>
 
 112   <script src="assets/js/leaflet.js"></script>
 
 113   <script src="assets/js/Control.MiniMap.min.js"></script>
 
 114   <script src="assets/js/handlebars.min.js"></script>
 
 115   <script src="assets/js/url-search-params.js"></script>
 
 117   <script src="config.js"></script>
 
 118   <script src="handlebar_helpers.js"></script>
 
 120   <script src="assets/js/nominatim-ui.js"></script>
 
 121 <script id="searchpage-template" type="text/x-handlebars-template">
 
 122 {{#*inline "partial_one_result"}}
 
 123   <div class="result" data-position="{{iResNum}}">
 
 124     {{formatMapIcon aResult}}
 
 126     <span class="name">{{aResult.display_name}}</span>
 
 127     <span class="type">({{formatLabel aResult}})</span>
 
 128     <p class="coords">{{aResult.lat}},{{aResult.lon}}</p>  
 
 130     <a class="details btn btn-outline-secondary btn-sm" href="{{detailsURL aResult}}">details</a>
 
 134 <div class="top-bar">
 
 135   <ul class="nav nav-tabs">
 
 136     <li class="nav-item">
 
 137       <a class="nav-link {{#unless hStructured}}active{{/unless}}" data-toggle="tab" href="#simple">simple</a>
 
 139     <li class="nav-item">
 
 140       <a class="nav-link {{#if hStructured}}active{{/if}}" data-toggle="tab" href="#structured">structured</a>
 
 142     <div class="search-type-link">
 
 143       <a href="details.html" class="mr-2">search by id</a>
 
 144       <a id="switch-to-reverse" href="/reverse.html">reverse search</a>
 
 147   <div class="tab-content p-2">
 
 148     <div class="tab-pane {{#unless hStructured}}active{{/unless}}" id="simple" role="tabpanel">
 
 149       <form class="form-inline" role="search" accept-charset="UTF-8" action="">
 
 153                class="form-control form-control-sm"
 
 155                value="{{sQuery}}" />
 
 157         <div class="form-group search-button-group">
 
 158           <button type="submit" class="btn btn-primary btn-sm mx-1">Search</button>
 
 159           <input type="hidden" name="viewbox" value="{{sViewBox}}" />
 
 160           <input type="hidden" name="dedupe" value="{{sDedupe}}" />
 
 161           <input type="hidden" name="bounded" value="{{sBounded}}" />
 
 162           <input type="hidden" name="accept-language" value="{{sLang}}" />
 
 163           <input type="hidden" name="countrycodes" value="{{sCCode}}" />
 
 164           <input type="hidden" name="limit" value="{{sLimit}}" />
 
 165           <input type="hidden" name="polygon_threshold" value="{{sPolyThreshold}}" />
 
 169     <div class="tab-pane {{#if hStructured}}active{{/if}}" id="structured" role="tabpanel">
 
 170       <form class="form-inline" role="search" accept-charset="UTF-8" action="">
 
 171         <input name="street" type="text" class="form-control form-control-sm mr-1"
 
 172                placeholder="House number/Street"
 
 173                value="{{hStructured.street}}" />
 
 174         <input name="city" type="text" class="form-control form-control-sm mr-1"
 
 176                value="{{hStructured.city}}" />
 
 177         <input id="county" name="county" type="text" class="form-control form-control-sm mr-1"
 
 179                value="{{hStructured.county}}" />
 
 180         <input name="state" type="text" class="form-control form-control-sm mr-1"
 
 182                value="{{hStructured.state}}" />
 
 183         <input name="country" type="text" class="form-control form-control-sm mr-1"
 
 184                placeholder="Country"
 
 185                value="{{hStructured.country}}" />
 
 186         <input name="postalcode" type="text" class="form-control form-control-sm mr-1"
 
 187                placeholder="Postal Code"
 
 188                value="{{hStructured.postalcode}}" />
 
 190         <div class="form-group search-button-group">
 
 191           <button type="submit" class="btn btn-primary btn-sm mx-1">Search</button>
 
 192           <input type="hidden" name="viewbox" value="{{sViewBox}}" />
 
 193           <input type="hidden" name="dedupe" value="{{#unless sDedupe}}0{{/unless}}" />
 
 194           <input type="hidden" name="bounded" value="{{#if sBounded}}1{{/if}}" />
 
 195           <input type="hidden" name="accept-language" value="{{sLang}}" />
 
 196           <input type="hidden" name="countrycodes" value="{{sCCode}}" />
 
 197           <input type="hidden" name="limit" value="{{sLimit}}" />
 
 198           <input type="hidden" name="polygon_threshold" value="{{sPolyThreshold}}" />
 
 202     <!-- Additional options -->
 
 203     <a class="btn btn-outline-secondary btn-sm" data-toggle="collapse" data-target="#searchAdvancedOptions" role="button" aria-expanded="false" aria-controls="collapseAdvancedOptions">
 
 206     <div class="collapse" id="searchAdvancedOptions">
 
 207       <div id="searchAdvancedOptionsContent">
 
 208           <div class="form-check form-check-inline">
 
 209             <span><input type="checkbox" class="form-check-input api-param-setting"
 
 210                    id="use_viewbox" {{#if sViewBox}}checked="checked"{{/if}}>
 
 211             <label class="form-check-label" for="use_viewbox">apply viewbox</label></span>
 
 212             <span><input type="checkbox" class="form-check-input api-param-setting"
 
 213                    id="option_bounded" {{#if sBounded}}checked="checked"{{/if}}>
 
 214             <label class="form-check-label" for="option_bounded">bounded to viewbox</label></span>
 
 215             <span><input type="checkbox" class="form-check-input api-param-setting"
 
 216                    id="option_dedupe" {{#unless sDedupe}}checked="checked"{{/unless}}>
 
 217             <label class="form-check-label" for="option_dedupe">deduplicate results</label></span>
 
 219           <div class="form-check form-check-inline">
 
 220             <span><label class="form-check-label" for="option_limit">Maximum number of results: </label>
 
 221             <input type="number" class="form-check-input api-param-setting" data-api-param="limit" id="option_limit" size="5" min="1" max="50" value="{{sLimit}}"></span>
 
 222             <span><label class="form-check-label" for="option_polygon_threashold">Polygon simplification: </label>
 
 223             <input type="number" class="form-check-input api-param-setting" data-api-param="polygon_threshold" id="option_polygon_threshold" size="5" min="0.0" step="0.01" value="{{sPolyThreshold}}"></span>
 
 225           <div class="form-check form-check-inline">
 
 226             <span><label class="form-check-label" for="accept_lang">Languages: </label>
 
 227             <input type="text" placeholder="e.g. en,zh-Hant" class="form-check-input api-param-setting" data-api-param="accept-language" id="accept_lang" size="15" value="{{sLang}}"></span>
 
 228             <span><label class="form-check-label" for="option_ccode">Countries: </label>
 
 229             <input type="text" placeholder="e.g. de,gb" class="form-check-input api-param-setting" data-api-param="countrycodes" id="option_ccode" size="15" value="{{sCCode}}"></span>
 
 233   </div> <!-- /tab-content -->
 
 234 </div> <!-- /top-bar -->
 
 239     <div id="searchresults" class="sidebar">
 
 240       {{#each aSearchResults as |aResult|}}
 
 241         {{>partial_one_result iResNum=@index aResult=aResult env=env}}
 
 244       {{#if aSearchResults}}
 
 247             <a class="btn btn-primary" href="{{sMoreURL}}">
 
 248               Search for more results
 
 253         <div class="noresults">No search results found</div>
 
 259     <div id="intro" class="sidebar">
 
 260       <h2>Welcome to Nominatim</h2>
 
 263         Nominatim is a search engine for
 
 264         <a href="https://www.openstreetmap.org">OpenStreetMap</a> data. This
 
 265         is the debugging interface. You may search for a name or address
 
 266         (forward search) or look up data by its geographic coordinate (reverse
 
 267         search). Each result comes with a link to a details page where you
 
 268         can inspect what data about the object is saved in the database and
 
 269         investigate how the address of the object has been computed.
 
 272       For more information visit the
 
 273       <a href="https://nominatim.org">Nominatim home page</a>.
 
 278   <div id="map-wrapper">
 
 279     <div id="map-position">
 
 280       <div id="map-position-inner"></div>
 
 281       <div id="map-position-close"><a href="#">hide</a></div>
 
 287 <script id="reversepage-template" type="text/x-handlebars-template">
 
 289 {{#*inline "partial_one_result"}}
 
 290   <div class="result" data-position="{{iResNum}}">
 
 291     {{formatMapIcon aResult}}
 
 293     <span class="name">{{aResult.display_name}}</span>
 
 294     <span class="type">{{formatLabel aResult}}</span>
 
 295     <p class="coords">{{aResult.lat}},{{aResult.lon}}</p>  
 
 297     <a class="details btn btn-outline-secondary btn-sm" href="{{detailsURL aResult}}">details</a>
 
 301 <div class="top-bar">
 
 302   <form class="form-inline" role="search" accept-charset="UTF-8" action="">
 
 303     <div class="form-group">
 
 304       <input name="format" type="hidden" value="html">
 
 308              class="form-control form-control-sm"
 
 309              placeholder="latitude"
 
 311       <a id="switch-coords" class="btn btn-outline-secondary btn-sm" title="switch lat and lon"><></a>
 
 315              class="form-control form-control-sm"
 
 316              placeholder="longitude"
 
 318       <label>max zoom</label>
 
 319       <select name="zoom" class="form-control form-control-sm" value="{{iZoom}}">
 
 322       <button type="submit" class="btn btn-primary btn-sm mx-1">
 
 326     <div class="search-type-link">
 
 327       <a href="details.html" class="mr-2">search by id</a>
 
 328       <a href="search.html">forward search</a>
 
 335     <div id="searchresults" class="sidebar">
 
 336       {{>partial_one_result iResNum=0 aResult=aPlace env=env}}
 
 339     <div id="intro" class="sidebar">
 
 340       Search for coordinates or click anywhere on the map.
 
 344   <div id="map-wrapper">
 
 345     <div id="map-position">
 
 346       <div id="map-position-inner"></div>
 
 347       <div id="map-position-close"><a href="#">hide</a></div>
 
 353 <script id="detailspage-template" type="text/x-handlebars-template">
 
 355 {{#*inline "partial_details_one_row"}}
 
 356   <tr class="{{#unless bAddressLineUsed}}notused{{/unless}}">
 
 358       {{#if this.localname}}
 
 361         <span class="noname">No Name</span>
 
 364     <td>{{formatPlaceType this}}</td>
 
 365     <td>{{osmLink this}}</td>
 
 366     <td>{{this.rank_address}}</td>
 
 367     <td>{{formatAdminLevel this.admin_level}}</td>
 
 368     <td>{{formatDistance this.distance bDistanceInMeters}}</td>
 
 369     <td>{{#if this.osm_id}}<a href="{{detailsURL this}}">details</a>{{/if}}</td>
 
 373 {{#*inline "partial_details_keyword_one_row"}}
 
 375     <td>{{formatKeywordToken this.token}}</td>
 
 377       <td>word id: {{this.id}}</td>
 
 383 {{#*inline "partial_h2"}}
 
 384   <tr class="all-columns"><td colspan="6"><h2>{{this}}</h2></td></tr>
 
 387 {{#*inline "partial_h3"}}
 
 388   <tr class="all-columns"><td colspan="6"><h3>{{this}}</h3></td></tr>
 
 391 <div class="container">
 
 393     <div class="col-sm-10">
 
 396         <small><a href="{{detailsURL aPlace}}">link to this page</a></small>
 
 399     <div class="col-sm-2 text-right">
 
 400       {{formatMapIcon aPlace}}
 
 404     <div class="col-md-6">
 
 405       <table id="locationdetails" class="table table-striped">
 
 409             {{#each aPlace.names}}
 
 411                 <span class="name">{{this}}</span> ({{@key}})
 
 418           <td>{{aPlace.category}}:{{aPlace.type}}</td>
 
 421           <td>Last Updated</td>
 
 422           <td>{{aPlace.indexed_date}}</td>
 
 424         {{#if (isAdminBoundary aPlace) }}
 
 427           <td>{{aPlace.admin_level}}</td>
 
 432           <td>{{aPlace.rank_search}}</td>
 
 435           <td>Address Rank</td>
 
 436           <td>{{aPlace.rank_address}} ({{formatAddressRank aPlace.rank_address}})</td>
 
 438         {{#if aPlace.calculated_importance}}
 
 442               {{aPlace.calculated_importance}}
 
 443               {{#unless aPlace.importance}} (estimated){{/unless}}
 
 449           <td>{{coverageType aPlace}}</td>
 
 452           <td>Centre Point (lat,lon)</td>
 
 454             {{aPlace.centroid.coordinates.[1]}},{{aPlace.centroid.coordinates.[0]}}
 
 459           <td>{{osmLink aPlace}}
 
 464             (<a href="https://nominatim.org/release-docs/develop/api/Output/#place_id-is-not-a-persistent-id">on this server</a>)
 
 466           <td>{{aPlace.place_id}}</td>
 
 468         {{#if aPlace.calculated_wikipedia}}
 
 470             <td>Wikipedia Calculated</td>
 
 471             <td>{{wikipediaLink aPlace}}</td>
 
 475           <td>Computed Postcode</td>
 
 476           <td>{{aPlace.calculated_postcode}}</td>
 
 479           <td>Address Tags</td>
 
 481             {{#each aPlace.addresstags}}
 
 483                 <span class="name">{{this}}</span> ({{@key}})
 
 491             {{#each aPlace.extratags}}
 
 493                 <span class="name">{{this}}</span> ({{@key}})
 
 500     <div class="col-md-6">
 
 505     <div class="col-md-12">
 
 507        <table id="address" class="table table-striped table-small">
 
 513             <th>Address rank</th>
 
 520           {{#if aPlace.address}}
 
 521             {{#each aPlace.address}}
 
 522               {{> partial_details_one_row bDistanceInMeters=false bAddressLineUsed=this.isaddress}}
 
 526           {{#if aPlace.linked_places}}
 
 527             {{> partial_h2 'Linked Places'}}
 
 528             {{#each aPlace.linked_places}}
 
 529               {{> partial_details_one_row bDistanceInMeters=true bAddressLineUsed=true}}
 
 533           {{> partial_h2 'Keywords'}}
 
 534           {{#if aPlace.keywords}}
 
 535             {{> partial_h3 'Name Keywords'}}
 
 536             {{#each aPlace.keywords.name}}
 
 537               {{> partial_details_keyword_one_row}}
 
 540             {{> partial_h3 'Address Keywords'}}
 
 541             {{#each aPlace.keywords.address}}
 
 542               {{> partial_details_keyword_one_row}}
 
 547                 <a class="btn btn-outline-secondary btn-sm"
 
 548                   href="{{base_url}}&keywords=1">display keywords</a>
 
 553           {{> partial_h2 'Parent Of'}}
 
 554           {{#if aPlace.hierarchy}}
 
 556             {{#each aPlace.hierarchy as |lines type|}}
 
 557               {{> partial_h3 type}}
 
 559                 {{> partial_details_one_row bDistanceInMeters=true bAddressLineUsed=true}}
 
 565                 <a class="btn btn-outline-secondary btn-sm"
 
 566                   href="{{base_url}}&hierarchy=1">display child places</a>
 
 570           {{tooManyHierarchyLinesWarning aPlace}}
 
 578 <script id="detailspage-index-template" type="text/x-handlebars-template">
 
 579 <div class="container" id="details-index-page">
 
 581     <div class="col-md-12">
 
 583       <h1>Show details for place</h1>
 
 585       <div class="search-form">
 
 586         <h4>Search by place id</h4>
 
 588         <form class="form-inline" action="details.html">
 
 590                  class="form-control input-sm"
 
 593                  placeholder="12345" />
 
 595                  class="btn btn-primary btn-sm"
 
 600       <div class="search-form">
 
 601         <h4>Search by OSM type and OSM id</h4>
 
 603         <form id="form-by-type-and-id"
 
 605               action="details.html">
 
 607                  class="form-control input-sm"
 
 608                  pattern="^[NWR][0-9]+$"
 
 609                  placeholder="N123 or W123 or R123" />
 
 610           <input type="hidden" name="osmtype" />
 
 611           <input type="hidden" name="osmid" />
 
 612           <input type="submit" class="btn btn-primary btn-sm" value="Show" />
 
 616       <div class="search-form">
 
 617         <h4>Search by openstreetmap.org URL</h4>
 
 619         <form id="form-by-osm-url"
 
 621               action="details.html">
 
 623                  class="form-control input-sm"
 
 624                  pattern=".*openstreetmap.*"
 
 625                  placeholder="https://www.openstreetmap.org/relation/123" />
 
 626           <input type="hidden" name="osmtype" />
 
 627           <input type="hidden" name="osmid" />
 
 628           <input type="submit" class="btn btn-primary btn-sm" value="Show" />
 
 635 <script id="deletable-template" type="text/x-handlebars-template">
 
 636 <div class="container">
 
 638     <div class="col-sm-12">
 
 642           {{aPolygons.length}} objects have been deleted in OSM but are still in the Nominatim database.
 
 645       <table class="table table-striped table-hover">
 
 648           <th>Country Code</th>
 
 658             <td><a href="{{detailsURL this}}">{{this.place_id}}</a></td>
 
 659             <td>{{country_code}}</td>
 
 661             <td>{{osmLink this}}</td>
 
 662             <td>{{osm_type}}</td>
 
 676 <script id="polygons-template" type="text/x-handlebars-template">
 
 677 <div class="container">
 
 679     <div class="col-sm-12">
 
 680       <h1>Broken polygons</h1>
 
 683           Total number of broken polygons: {{aPolygons.length}}.
 
 686       <table class="table table-striped table-hover">
 
 693           <th>Country Code</th>
 
 694           <th>Error message</th>
 
 701             <td>{{osm_type}}</td>
 
 702             <td>{{osmLink this}}</td>
 
 706             <td>{{country_code}}</td>
 
 707             <td>{{errormessage}}</td>
 
 710               <a href="http://localhost:8111/import?url=https://www.openstreetmap.org/api/0.6/{{formatOSMType osm_type}}/{{osm_id}}/full" target="josm">josm</a>