如何通过输入传单进行搜索?

How to do search by input leaflet?

我需要你的帮助,我正在使用 Leaflet 库,我想将地址搜索放在地图内,但不是地图内的搜索,但是,有一个输入,在地图外:

enter image description here

不过,我看到可以做到,Nominatim even uses it (https://nominatim.openstreetmap.org/),但是没有说明如何做到。

代码如下所示

var target = document.getElementById('map');

document.addEventListener('DOMContentLoaded', function(e){ //executa o código somente após carregar o DOM
    var optionsMap = {
        center: [-21.511263, -51.434978],
        zoom: 15
    }

    // criação do mapa
    let map = new L.map(target, optionsMap);
    map.doubleClickZoom.disable();

    //adicionar uma camada de bloco do OpenStreetMap
    let basemap = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    }); basemap.addTo(map);
});
/*Imports*/
@import 'reset.css';
@import 'https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css';
@import 'https://unpkg.com/leaflet@1.6.0/dist/leaflet.css';
@import 'popup.css';

/*Geral*/
body{
    background-color: rgb(109, 164, 182);
    font-family: Arial, Helvetica, sans-serif;
}

.titulo{
    padding: 0.5em;
    color: white;
    text-align: center;
    font-size: 3em;
    font-weight: bold;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
}

.container {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

/*Section*/
.campo{
    padding: 1em;
    background-color: rgba(255, 255, 255, 0.5);
    width: 80%;
    height: 80%;
    border-radius: 1em;
    box-shadow: 0px 2px 6.35px 0.35px rgba(0, 0, 0, 0.3);
}

.pesquisa{
    border: none;
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
    width: 92%;
    padding: 10px;
}

.btn{
    border: none;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    padding: 10px;
    margin-left: 0em;
    margin-top: 0em;
}

.btn:hover{
    background-color: rgb(90, 136, 221, 0.3);
}

#map{    
    width: auto;
    height: 500px;
    border: none;
    border-radius: 1em;
    box-shadow: 2px 2px 2px 2px rgba(0, 0, 0, 0.3);
}

/*Footer*/
footer{
    padding: 1em;
    text-align: center;
    color: white;
}

footer a {
    color: white;
    text-decoration: none;
}

footer a:hover{
    font-weight: bold;
}
<!DOCTYPE html>
<html lang="pt-Br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Leaflet - Nominatim</title>

    <link rel="stylesheet" href="css/estilos.css">
    <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script>
</head>
<body>
    <div class="container">
        <header>
            <h1 class="titulo">Maps Leaflet - Nominatim</h1>
        </header>
        <section class="campo container">
            <div class="container">
                <input class="pesquisa" type="text"><input class="btn" type="button" value="Ok!">
            </div>
            <br>
            <div id="map" class="container"></div>
        </section>
        <footer><a href="https://github.com/cortelucas">cortelucas</a></footer>
    </div>
    <script src="js/map.js"></script>
</body>
</html>

恳请大家的帮助!

正如我昨天所说,我准备了一个使用 GeoJSON 格式的工作示例。我稍微修改了 autosuggest 我的申请。
我已经连接到 nominatim 并且还添加了处理静态 GeoJSON 文件的选项。

我准备了一个分支 - autosuggest+nominatim and the working example nominatim-leaflet-search

当然,我能在短时间内测试多少,但你必须考虑到可能存在一些错误。 Gzip 代码,大约 8KB,所以还不错。

更新
我在 github Leaflet.Autocomplete 上准备了一个项目来展示插件的工作原理,并尽可能多地解释它是如何工作的。