]> git.openstreetmap.org Git - nominatim-ui.git/blob - dist/details.html
55023c0b4e6415cbd8a59931274beae497440273
[nominatim-ui.git] / dist / details.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
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">
7
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" />
10
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" />
17 </head>
18 <body id="BODYID">
19
20   <div id="error-overlay"></div>
21
22   <header class="container-fluid">
23     <div class="row">
24       <div class="col-4">
25         <div class="brand">
26           <a href="search.html">
27             <img alt="logo" src="assets/images/osm_logo.120px.png" width="30" height="30"/>
28             <h1>Nominatim</h1>
29           </a>
30         </div>
31       </div>
32       <div class="col-4">
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>
38           </div>
39           Data last updated: <span id="data-date"></span>
40         </div>
41       </div>
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">
45             About &amp; Help
46           </button>
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>
55           </div>
56         </div>
57       </div>
58     </div>
59   </header>
60
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">&times;</span></button>
67         </div>
68         <div class="modal-body">
69           <p>
70             Before reporting problems please read the <a target="_blank" href="https://nominatim.org/release-docs/develop/api/Overview/">user documentation</a>
71             and
72             <a target="_blank" href="https://nominatim.org/release-docs/develop/api/Faq/">FAQ</a>.
73
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.
76           </p>
77           <p>
78             Use <a target="_blank" href="https://github.com/osm-search/Nominatim/issues">Nominatim issues on github</a>
79             to report problems.
80           </p>
81           <p>
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.
85           </p>
86           <p>
87             Problems that contain enough detail are likely to get looked at before ones that require
88             significant research.
89           </p>
90         </div>
91         <div class="modal-footer">
92           <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">OK</button>
93         </div>
94       </div>
95     </div>
96   </div>
97
98   <main>
99   </main>
100
101   <footer>
102     <p class="disclaimer">
103       Addresses and postcodes are approximate
104     </p>
105     <p class="copyright">
106       &copy; <a href="https://osm.org/copyright">OpenStreetMap</a> contributors
107     </p>
108   </footer>
109
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>
116
117   <script src="config.js"></script>
118   <script src="handlebar_helpers.js"></script>
119
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}}
125
126     <span class="name">{{aResult.display_name}}</span>
127     <span class="type">({{formatLabel aResult}})</span>
128     <p class="coords">{{aResult.lat}},{{aResult.lon}}</p>  
129
130     <a class="details btn btn-outline-secondary btn-sm" href="{{detailsURL aResult}}">details</a>
131   </div>
132 {{/inline}}
133
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>
138     </li>
139     <li class="nav-item">
140       <a class="nav-link {{#if hStructured}}active{{/if}}" data-toggle="tab" href="#structured">structured</a>
141     </li>
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>
145     </div>
146   </ul>
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="">
150         <input id="q"
151                name="q"
152                type="text"
153                class="form-control form-control-sm"
154                placeholder="Search"
155                value="{{sQuery}}" />
156
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}}" />
166         </div>
167       </form>
168     </div>
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"
175                placeholder="City"
176                value="{{hStructured.city}}" />
177         <input id="county" name="county" type="text" class="form-control form-control-sm mr-1"
178                placeholder="County"
179                value="{{hStructured.county}}" />
180         <input name="state" type="text" class="form-control form-control-sm mr-1"
181                placeholder="State"
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}}" />
189
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}}" />
199         </div>
200       </form>
201     </div>
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">
204       Advanced options
205     </a>
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>
218           </div>
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>
224           </div>
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>
230           </div>
231        </div>
232     </div>
233   </div> <!-- /tab-content -->
234 </div> <!-- /top-bar -->
235
236 <div id="content">
237
238   {{#if bSearchRan}}
239     <div id="searchresults" class="sidebar">
240       {{#each aSearchResults as |aResult|}}
241         {{>partial_one_result iResNum=@index aResult=aResult env=env}}
242       {{/each}}
243
244       {{#if aSearchResults}}
245         {{#if sMoreURL}}
246           <div class="more">
247             <a class="btn btn-primary" href="{{sMoreURL}}">
248               Search for more results
249             </a>
250           </div>
251         {{/if}}
252       {{else}}
253         <div class="noresults">No search results found</div>
254       {{/if}}
255     </div>
256
257   {{else}}
258
259     <div id="intro" class="sidebar">
260       <h2>Welcome to Nominatim</h2>
261
262       <p>
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.
270       </p>
271
272       For more information visit the
273       <a href="https://nominatim.org">Nominatim home page</a>.
274     </div>
275
276   {{/if}}
277
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>
282     </div>
283     <div id="map"></div>
284   </div>
285 </div>
286 </script>
287 <script id="reversepage-template" type="text/x-handlebars-template">
288
289 {{#*inline "partial_one_result"}}
290   <div class="result" data-position="{{iResNum}}">
291     {{formatMapIcon aResult}}
292
293     <span class="name">{{aResult.display_name}}</span>
294     <span class="type">{{formatLabel aResult}}</span>
295     <p class="coords">{{aResult.lat}},{{aResult.lon}}</p>  
296
297     <a class="details btn btn-outline-secondary btn-sm" href="{{detailsURL aResult}}">details</a>
298   </div>
299 {{/inline}}
300
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">
305       <label>lat</label>
306       <input name="lat"
307              type="text"
308              class="form-control form-control-sm"
309              placeholder="latitude"
310              value="{{fLat}}" />
311       <a id="switch-coords" class="btn btn-outline-secondary btn-sm" title="switch lat and lon">&lt;&gt;</a>
312       <label>lon</label>
313       <input name="lon"
314              type="text"
315              class="form-control form-control-sm"
316              placeholder="longitude"
317              value="{{fLon}}" />
318       <label>max zoom</label>
319       <select name="zoom" class="form-control form-control-sm" value="{{iZoom}}">
320         {{zoomLevels iZoom}}
321       </select>
322       <button type="submit" class="btn btn-primary btn-sm mx-1">
323         Search
324       </button>
325     </div>
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>
329     </div>
330   </form>
331 </div>
332
333 <div id="content">
334   {{#if aPlace}}
335     <div id="searchresults" class="sidebar">
336       {{>partial_one_result iResNum=0 aResult=aPlace env=env}}
337     </div>
338   {{else}}
339     <div id="intro" class="sidebar">
340       Search for coordinates or click anywhere on the map.
341     </div>
342   {{/if}}
343
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>
348     </div>
349     <div id="map"></div>
350   </div>
351 </div>
352 </script>
353 <script id="detailspage-template" type="text/x-handlebars-template">
354
355 {{#*inline "partial_details_one_row"}}
356   <tr class="{{#unless bAddressLineUsed}}notused{{/unless}}">
357     <td class="name">
358       {{#if this.localname}}
359         {{this.localname}}
360       {{else}}
361         <span class="noname">No Name</span>
362       {{/if}}
363     </td>
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>
370   </tr>
371 {{/inline}}
372
373 {{#*inline "partial_details_keyword_one_row"}}
374   <tr>
375     <td>{{formatKeywordToken this.token}}</td>
376     {{#if this.id}}
377       <td>word id: {{this.id}}</td>
378     {{/if}}
379   </tr>
380 {{/inline}}
381
382
383 {{#*inline "partial_h2"}}
384   <tr class="all-columns"><td colspan="6"><h2>{{this}}</h2></td></tr>
385 {{/inline}}
386
387 {{#*inline "partial_h3"}}
388   <tr class="all-columns"><td colspan="6"><h3>{{this}}</h3></td></tr>
389 {{/inline}}
390
391 <div class="container">
392   <div class="row">
393     <div class="col-sm-10">
394       <h1>
395         {{aPlace.localname}}
396         <small><a href="{{detailsURL aPlace}}">link to this page</a></small>
397       </h1>
398     </div>
399     <div class="col-sm-2 text-right">
400       {{formatMapIcon aPlace}}
401     </div>
402   </div>
403   <div class="row">
404     <div class="col-md-6">
405       <table id="locationdetails" class="table table-striped">
406         <tr>
407           <td>Name</td>
408           <td>
409             {{#each aPlace.names}}
410               <div class="line">
411                 <span class="name">{{this}}</span> ({{@key}})
412               </div>
413             {{/each}}
414           </td>
415         </tr>
416         <tr>
417           <td>Type</td>
418           <td>{{aPlace.category}}:{{aPlace.type}}</td>
419         </tr>
420         <tr>
421           <td>Last Updated</td>
422           <td>{{aPlace.indexed_date}}</td>
423         </tr>
424         {{#if (isAdminBoundary aPlace) }}
425         <tr>
426           <td>Admin Level</td>
427           <td>{{aPlace.admin_level}}</td>
428         </tr>
429         {{/if}}
430         <tr>
431           <td>Search Rank</td>
432           <td>{{aPlace.rank_search}}</td>
433         </tr>
434         <tr>
435           <td>Address Rank</td>
436           <td>{{aPlace.rank_address}} ({{formatAddressRank aPlace.rank_address}})</td>
437         </tr>
438         {{#if aPlace.calculated_importance}}
439           <tr>
440             <td>Importance</td>
441             <td>
442               {{aPlace.calculated_importance}}
443               {{#unless aPlace.importance}} (estimated){{/unless}}
444             </td>
445           </tr>
446         {{/if}}
447         <tr>
448           <td>Coverage</td>
449           <td>{{coverageType aPlace}}</td>
450         </tr>
451         <tr>
452           <td>Centre Point (lat,lon)</td>
453           <td>
454             {{aPlace.centroid.coordinates.[1]}},{{aPlace.centroid.coordinates.[0]}}
455           </td>
456         </tr>
457         <tr>
458           <td>OSM</td>
459           <td>{{osmLink aPlace}}
460         </tr>
461         <tr>
462           <td>
463             Place Id
464             (<a href="https://nominatim.org/release-docs/develop/api/Output/#place_id-is-not-a-persistent-id">on this server</a>)
465           </td>
466           <td>{{aPlace.place_id}}</td>
467         </tr>
468         {{#if aPlace.calculated_wikipedia}}
469           <tr>
470             <td>Wikipedia Calculated</td>
471             <td>{{wikipediaLink aPlace}}</td>
472           </tr>
473         {{/if}}
474         <tr>
475           <td>Computed Postcode</td>
476           <td>{{aPlace.calculated_postcode}}</td>
477         </tr>
478         <tr>
479           <td>Address Tags</td>
480           <td>
481             {{#each aPlace.addresstags}}
482               <div class="line">
483                 <span class="name">{{this}}</span> ({{@key}})
484               </div>
485             {{/each}}
486           </td>
487         </tr>
488         <tr>
489           <td>Extra Tags</td>
490           <td>
491             {{#each aPlace.extratags}}
492               <div class="line">
493                 <span class="name">{{this}}</span> ({{@key}})
494               </div>
495             {{/each}}
496           </td>
497         </tr>
498       </table>
499     </div>
500     <div class="col-md-6">
501       <div id="map"></div>
502     </div>
503   </div>
504   <div class="row">
505     <div class="col-md-12">
506       <h2>Address</h2>
507        <table id="address" class="table table-striped table-small">
508         <thead>
509           <tr>
510             <th>Local name</th>
511             <th>Type</th>
512             <th>OSM</th>
513             <th>Address rank</th>
514             <th>Admin level</th>
515             <th>Distance</th>
516             <th></th>
517           </tr>
518         </thead>
519         <tbody>
520           {{#if aPlace.address}}
521             {{#each aPlace.address}}
522               {{> partial_details_one_row bDistanceInMeters=false bAddressLineUsed=this.isaddress}}
523             {{/each}}
524           {{/if}}
525
526           {{#if aPlace.linked_places}}
527             {{> partial_h2 'Linked Places'}}
528             {{#each aPlace.linked_places}}
529               {{> partial_details_one_row bDistanceInMeters=true bAddressLineUsed=true}}
530             {{/each}}
531           {{/if}}
532
533           {{> partial_h2 'Keywords'}}
534           {{#if aPlace.keywords}}
535             {{> partial_h3 'Name Keywords'}}
536             {{#each aPlace.keywords.name}}
537               {{> partial_details_keyword_one_row}}
538             {{/each}}
539
540             {{> partial_h3 'Address Keywords'}}
541             {{#each aPlace.keywords.address}}
542               {{> partial_details_keyword_one_row}}
543             {{/each}}
544           {{else}}
545             <tr>
546               <td>
547                 <a class="btn btn-outline-secondary btn-sm"
548                   href="{{base_url}}&keywords=1">display keywords</a>
549               </td>
550             </tr>
551           {{/if}}
552
553           {{> partial_h2 'Parent Of'}}
554           {{#if aPlace.hierarchy}}
555
556             {{#each aPlace.hierarchy as |lines type|}}
557               {{> partial_h3 type}}
558               {{#each lines}}
559                 {{> partial_details_one_row bDistanceInMeters=true bAddressLineUsed=true}}
560               {{/each}}
561             {{/each}}
562           {{else}}
563             <tr>
564               <td>
565                 <a class="btn btn-outline-secondary btn-sm"
566                   href="{{base_url}}&hierarchy=1">display child places</a>
567               </td>
568             </tr>
569           {{/if}}
570           {{tooManyHierarchyLinesWarning aPlace}}
571         </tbody>
572       </table>
573     </div>
574   </div>
575 </div>
576
577 </script>
578 <script id="detailspage-index-template" type="text/x-handlebars-template">
579 <div class="container" id="details-index-page">
580   <div class="row">
581     <div class="col-md-12">
582
583       <h1>Show details for place</h1>
584
585       <div class="search-form">
586         <h4>Search by place id</h4>
587
588         <form class="form-inline" action="details.html">
589           <input type="edit"
590                  class="form-control input-sm"
591                  pattern="^[0-9]+$"
592                  name="place_id"
593                  placeholder="12345" />
594           <input type="submit"
595                  class="btn btn-primary btn-sm"
596                  value="Show" />
597         </form>
598       </div>
599
600       <div class="search-form">
601         <h4>Search by OSM type and OSM id</h4>
602
603         <form id="form-by-type-and-id"
604               class="form-inline"
605               action="details.html">
606           <input type="edit"
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" />
613         </form>
614       </div>
615
616       <div class="search-form">
617         <h4>Search by openstreetmap.org URL</h4>
618
619         <form id="form-by-osm-url"
620               class="form-inline"
621               action="details.html">
622           <input type="edit"
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" />
629         </form>
630       </div>
631
632     </div>
633   </div>
634 </div></script>
635 <script id="deletable-template" type="text/x-handlebars-template">
636 <div class="container">
637   <div class="row">
638     <div class="col-sm-12">
639       <h1>Deletable</h1>
640
641       <p>
642           {{aPolygons.length}} objects have been deleted in OSM but are still in the Nominatim database.
643       </p>
644
645       <table class="table table-striped table-hover">
646         <thead>
647           <th>Place id</th>
648           <th>Country Code</th>
649           <th>Name</th>
650           <th>OSM id</th>
651           <th>OSM type</th>
652           <th>Class</th>
653           <th>Type</th>
654         </thead>
655         <tbody>
656           {{#each aPolygons}}
657           <tr>
658             <td><a href="{{detailsURL this}}">{{this.place_id}}</a></td>
659             <td>{{country_code}}</td>
660             <td>{{name}}</td>
661             <td>{{osmLink this}}</td>
662             <td>{{osm_type}}</td>
663             <td>{{class}}</td>
664             <td>{{type}}</td>
665           </tr>
666           {{/each}}
667         </tbody>
668       </table>
669
670
671     </div>
672   </div>
673 </div
674
675 </script>
676 <script id="polygons-template" type="text/x-handlebars-template">
677 <div class="container">
678   <div class="row">
679     <div class="col-sm-12">
680       <h1>Broken polygons</h1>
681
682       <p>
683           Total number of broken polygons: {{aPolygons.length}}.
684       </p>
685
686       <table class="table table-striped table-hover">
687         <thead>
688           <th>OSM type</th>
689           <th>OSM id</th>
690           <th>Class</th>
691           <th>Type</th>
692           <th>Name</th>
693           <th>Country Code</th>
694           <th>Error message</th>
695           <th>Updated</th>
696           <th>&nbsp;</th>
697         </thead>
698         <tbody>
699           {{#each aPolygons}}
700           <tr>
701             <td>{{osm_type}}</td>
702             <td>{{osmLink this}}</td>
703             <td>{{class}}</td>
704             <td>{{type}}</td>
705             <td>{{name}}</td>
706             <td>{{country_code}}</td>
707             <td>{{errormessage}}</td>
708             <td>{{updated}}</td>
709             <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>
711             </td>
712           </tr>
713           {{/each}}
714         </tbody>
715       </table>
716
717
718     </div>
719   </div>
720 </div
721
722 </script>
723 </body>
724 </html>