<title>OpenStreetMap Nominatim</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="icon" type="image/png" href="/assets/images/favicon-194x194.png" sizes="194x194" />
- <link rel="icon" type="image/png" href="/assets/images/favicon-16x16.png" sizes="16x16" />
+ <link rel="icon" type="image/png" href="assets/images/favicon-194x194.png" sizes="194x194" />
+ <link rel="icon" type="image/png" href="assets/images/favicon-16x16.png" sizes="16x16" />
<link href="assets/css/leaflet.css" rel="stylesheet" />
<link href="assets/css/Control.MiniMap.min.css" rel="stylesheet" />
<div class="row">
<div class="col-4">
<div class="brand">
- <a href="/">
+ <a href="search.html">
<img alt="logo" src="assets/images/osm_logo.120px.png" width="30" height="30"/>
<h1>Nominatim</h1>
</a>
</div>
</div>
- <div id="last-updated" class="col-4 text-center">
- <div id="loading">loading...</div>
- Data from <a id="api-request-link" href="">API request</a>
- <br>
- Data last updated:
- <span id="data-date"></span>
+ <div class="col-4">
+ <div id="last-updated" class="text-center">
+ <div id="loading">loading...</div>
+ <div id="api-request">
+ Data from <a href="">API request</a>
+ <span id="api-request-debug">(<a href="">debug output</a>)</span>
+ </div>
+ Data last updated: <span id="data-date"></span>
+ </div>
</div>
<div class="col-4 text-right">
<div class="dropdown">
<span class="type">({{formatLabel aResult}})</span>
<p class="coords">{{aResult.lat}},{{aResult.lon}}</p>
- <a class="details btn btn-outline-secondary btn-sm"
- href="details.html?osmtype={{shortOSMType aResult.osm_type}}&osmid={{aResult.osm_id}}">details</a>
+ <a class="details btn btn-outline-secondary btn-sm" href="{{detailsURL aResult}}">details</a>
</div>
{{/inline}}
<a class="nav-link {{#if hStructured}}active{{/if}}" data-toggle="tab" href="#structured">structured</a>
</li>
<div class="search-type-link">
+ <a href="details.html" class="mr-2">search by id</a>
<a id="switch-to-reverse" href="/reverse.html">reverse search</a>
</div>
</ul>
<div class="form-group search-button-group">
<button type="submit" class="btn btn-primary btn-sm mx-1">Search</button>
<input type="hidden" name="viewbox" value="{{sViewBox}}" />
- <div class="form-check form-check-inline">
- <input type="checkbox" class="form-check-input"
- id="use_viewbox" {{#if sViewBox}}checked="checked"{{/if}}>
- <label class="form-check-label" for="use_viewbox">apply viewbox</label>
- </div>
+ <input type="hidden" name="dedupe" value="{{sDedupe}}" />
+ <input type="hidden" name="bounded" value="{{sBounded}}" />
+ <input type="hidden" name="accept-language" value="{{sLang}}" />
+ <input type="hidden" name="countrycodes" value="{{sCCode}}" />
+ <input type="hidden" name="limit" value="{{sLimit}}" />
+ <input type="hidden" name="polygon_threshold" value="{{sPolyThreshold}}" />
</div>
</form>
</div>
<div class="form-group search-button-group">
<button type="submit" class="btn btn-primary btn-sm mx-1">Search</button>
<input type="hidden" name="viewbox" value="{{sViewBox}}" />
+ <input type="hidden" name="dedupe" value="{{#unless sDedupe}}0{{/unless}}" />
+ <input type="hidden" name="bounded" value="{{#if sBounded}}1{{/if}}" />
+ <input type="hidden" name="accept-language" value="{{sLang}}" />
+ <input type="hidden" name="countrycodes" value="{{sCCode}}" />
+ <input type="hidden" name="limit" value="{{sLimit}}" />
+ <input type="hidden" name="polygon_threshold" value="{{sPolyThreshold}}" />
+ </div>
+ </form>
+ </div>
+ <!-- Additional options -->
+ <a class="btn btn-outline-secondary btn-sm" data-toggle="collapse" data-target="#searchAdvancedOptions" role="button" aria-expanded="false" aria-controls="collapseAdvancedOptions">
+ Advanced options
+ </a>
+ <div class="collapse" id="searchAdvancedOptions">
+ <div id="searchAdvancedOptionsContent">
<div class="form-check form-check-inline">
- <input type="checkbox" class="form-check-input"
+ <span><input type="checkbox" class="form-check-input api-param-setting"
id="use_viewbox" {{#if sViewBox}}checked="checked"{{/if}}>
- <label class="form-check-label" for="use_viewbox">apply viewbox</label>
+ <label class="form-check-label" for="use_viewbox">apply viewbox</label></span>
+ <span><input type="checkbox" class="form-check-input api-param-setting"
+ id="option_bounded" {{#if sBounded}}checked="checked"{{/if}}>
+ <label class="form-check-label" for="option_bounded">bounded to viewbox</label></span>
+ <span><input type="checkbox" class="form-check-input api-param-setting"
+ id="option_dedupe" {{#unless sDedupe}}checked="checked"{{/unless}}>
+ <label class="form-check-label" for="option_dedupe">deduplicate results</label></span>
</div>
- </div>
- </form>
+ <div class="form-check form-check-inline">
+ <span><label class="form-check-label" for="option_limit">Maximum number of results: </label>
+ <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>
+ <span><label class="form-check-label" for="option_polygon_threashold">Polygon simplification: </label>
+ <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>
+ </div>
+ <div class="form-check form-check-inline">
+ <span><label class="form-check-label" for="accept_lang">Languages: </label>
+ <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>
+ <span><label class="form-check-label" for="option_ccode">Countries: </label>
+ <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>
+ </div>
+ </div>
</div>
</div> <!-- /tab-content -->
</div> <!-- /top-bar -->
<div id="content">
- {{#if sQuery}}
+ {{#if bSearchRan}}
<div id="searchresults" class="sidebar">
{{#each aSearchResults as |aResult|}}
{{>partial_one_result iResNum=@index aResult=aResult env=env}}
<span class="type">{{formatLabel aResult}}</span>
<p class="coords">{{aResult.lat}},{{aResult.lon}}</p>
- <a class="details btn btn-outline-secondary btn-sm"
- href="details.html?osmtype={{shortOSMType aResult.osm_type}}&osmid={{aResult.osm_id}}">details</a>
+ <a class="details btn btn-outline-secondary btn-sm" href="{{detailsURL aResult}}">details</a>
</div>
{{/inline}}
</button>
</div>
<div class="search-type-link">
- <a href="/search.html">forward search</a>
+ <a href="details.html" class="mr-2">search by id</a>
+ <a href="search.html">forward search</a>
</div>
</form>
</div>
<script id="detailspage-template" type="text/x-handlebars-template">
{{#*inline "partial_details_one_row"}}
- <tr class="{{#unless this.isaddress}}notused{{/unless}}">
+ <tr class="{{#unless bAddressLineUsed}}notused{{/unless}}">
<td class="name">
{{#if this.localname}}
{{this.localname}}
<td>{{osmLink this}}</td>
<td>{{this.rank_address}}</td>
<td>{{formatAdminLevel this.admin_level}}</td>
- <td>{{formatDistance this.distance}}</td>
- <td>{{detailsPermaLink this 'details >'}}</td>
+ <td>{{formatDistance this.distance bDistanceInMeters}}</td>
+ <td>{{#if this.osm_id}}<a href="{{detailsURL this}}">details</a>{{/if}}</td>
</tr>
{{/inline}}
<div class="col-sm-10">
<h1>
{{aPlace.localname}}
- <small>{{detailsPermaLink aPlace 'link to this page'}}</small>
+ <small><a href="{{detailsURL aPlace}}">link to this page</a></small>
</h1>
</div>
<div class="col-sm-2 text-right">
<td>Last Updated</td>
<td>{{aPlace.indexed_date}}</td>
</tr>
+ {{#if (isAdminBoundary aPlace) }}
<tr>
<td>Admin Level</td>
<td>{{aPlace.admin_level}}</td>
</tr>
+ {{/if}}
+ <tr>
+ <td>Search Rank</td>
+ <td>{{aPlace.rank_search}}</td>
+ </tr>
<tr>
- <td>Rank</td>
- <td>{{formatSearchRank aPlace.rank_search}}</td>
+ <td>Address Rank</td>
+ <td>{{aPlace.rank_address}} ({{formatAddressRank aPlace.rank_address}})</td>
</tr>
{{#if aPlace.calculated_importance}}
<tr>
<tbody>
{{#if aPlace.address}}
{{#each aPlace.address}}
- {{> partial_details_one_row}}
+ {{> partial_details_one_row bDistanceInMeters=false bAddressLineUsed=this.isaddress}}
{{/each}}
{{/if}}
{{#if aPlace.linked_places}}
{{> partial_h2 'Linked Places'}}
{{#each aPlace.linked_places}}
- {{> partial_details_one_row}}
+ {{> partial_details_one_row bDistanceInMeters=true bAddressLineUsed=true}}
{{/each}}
{{/if}}
{{#each aPlace.hierarchy as |lines type|}}
{{> partial_h3 type}}
{{#each lines}}
- {{> partial_details_one_row}}
+ {{> partial_details_one_row bDistanceInMeters=true bAddressLineUsed=true}}
{{/each}}
{{/each}}
{{else}}
<tbody>
{{#each aPolygons}}
<tr>
- <td>{{detailsLink this place_id}}</td>
+ <td><a href="{{detailsURL this}}">{{this.place_id}}</a></td>
<td>{{country_code}}</td>
<td>{{name}}</td>
<td>{{osmLink this}}</td>