Leaflet中使用leaflet-search插件实现搜索定位效果


场景

Leaflet快速入门与加载OSM显示地图:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/122290880

在上面的基础上,怎样使用插件实现搜索定位效果如下

3、这里直接在html中引入css文件,并修改其中图片的路径

        .leaflet-container .leaflet-control-search {
            position: relative;
            float: left;
            background: #fff;
            color: #1978cf;
            border: 2px solid rgba(0, 0, 0, 0.2);
            background-clip: padding-box;
            -moz-border-radius: 4px;
            -webkit-border-radius: 4px;
            border-radius: 4px;
            background-color: rgba(255, 255, 255, 0.8);
            z-index: 1000;
            margin-left: 10px;
            margin-top: 10px;
        }

        .leaflet-control-search.search-exp {
            /*expanded*/
            background: #fff;
            border: 2px solid rgba(0, 0, 0, 0.2);
            background-clip: padding-box;
        }

        .leaflet-control-search .search-input {
            display: block;
            float: left;
            background: #fff;
            border: 1px solid #666;
            border-radius: 2px;
            height: 22px;
            padding: 0 20px 0 2px;
            margin: 4px 0 4px 4px;
        }

        .leaflet-control-search.search-load .search-input {
            background: url('./icon/loader.gif') no-repeat center right #fff;
        }

        .leaflet-control-search.search-load .search-cancel {
            visibility: hidden;
        }

        .leaflet-control-search .search-cancel {
            display: block;
            width: 22px;
            height: 22px;
            position: absolute;
            right: 28px;
            margin: 6px 0;
            background: url('./icon/search-icon.png') no-repeat 0 -46px;
            text-decoration: none;
            filter: alpha(opacity=80);
            opacity: 0.8;
        }

        .leaflet-control-search .search-cancel:hover {
            filter: alpha(opacity=100);
            opacity: 1;
        }

        .leaflet-control-search .search-cancel span {
            display: none;
            /* comment for cancel button imageless */
            font-size: 18px;
            line-height: 20px;
            color: #ccc;
            font-weight: bold;
        }

        .leaflet-control-search .search-cancel:hover span {
            color: #aaa;
        }

        .leaflet-control-search .search-button {
            display: block;
            float: left;
            width: 30px;
            height: 30px;
            background: url('./icon/search-icon.png') no-repeat 4px 4px #fff;
            border-radius: 4px;
        }

        .leaflet-control-search .search-button:hover {
            background: url('./icon/search-icon.png') no-repeat 4px -20px #fafafa;
        }

        .leaflet-control-search .search-tooltip {
            position: absolute;
            top: 100%;
            left: 0;
            float: left;
            list-style: none;
            padding-left: 0;
            min-width: 120px;
            max-height: 122px;
            box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.4);
            background-color: rgba(0, 0, 0, 0.25);
            z-index: 1010;
            overflow-y: auto;
            overflow-x: hidden;
            cursor: pointer;
        }

        .leaflet-control-search .search-tip {
            margin: 2px;
            padding: 2px 4px;
            display: block;
            color: black;
            background: #eee;
            border-radius: .25em;
            text-decoration: none;
            white-space: nowrap;
            vertical-align: center;
        }

        .leaflet-control-search .search-button:hover {
            background-color: #f4f4f4;
        }

        .leaflet-control-search .search-tip-select,
        .leaflet-control-search .search-tip:hover {
            background-color: #fff;
        }

        .leaflet-control-search .search-alert {
            cursor: pointer;
            clear: both;
            font-size: .75em;
            margin-bottom: 5px;
            padding: 0 .25em;
            color: #e00;
            font-weight: bold;
            border-radius: .25em;
        }

4、完整示例代码


"en">


    "UTF-8">
    leaflet实现搜索定位
    "stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
    



    
"map">