代码之家  ›  专栏  ›  技术社区  ›  foufrix

从Mapbox地理编码器检索数据

  •  0
  • foufrix  · 技术社区  · 6 年前

    我只需要mapbox地理编码自动完成,而不需要地图(将带有lat/lng的结果放入另一个请求中)

    我设法把它完全单独放在没有地图的地方,用这个:

    <template>
        <div id='geocoder' class='geocoder'></div>
    </template>
    
    <script>
    import MapboxGeocoder from '@mapbox/mapbox-gl-geocoder'
    require('../../node_modules/@mapbox/mapbox-gl-geocoder/dist/mapbox-gl-geocoder.css')
    
    mapboxgl.accessToken = '<your access token here>';
    var geocoder = new MapboxGeocoder({
        accessToken: mapboxgl.accessToken
        placeholder: 'Rechercher'
    });
    document.getElementById('geocoder').appendChild(geocoder.onAdd());
    </script>
    

    enter image description here

    但现在我想检索数据(特别是lat/lng属性,以便将其保存在组件中并使用它)

    我该怎么做我搜索了mapbox doc,但没有发现任何相关信息:/

    提前感谢社区

    2 回复  |  直到 6 年前
        1
  •  3
  •   AndrewHarvey    6 年前

    从api文档 https://github.com/mapbox/mapbox-gl-geocoder/blob/master/API.md#on 你可以用

    geocoder.on('results', function(results) {
       console.log(results);
    })
    
        2
  •  1
  •   foufrix    6 年前

    我终于找到了一种更便宜、更容易集成的替代方案:

    https://community.algolia.com/places/documentation.html#using-npm

    下面是简单的代码:

    <template>
        <input type="search" id="address-input" placeholder="Where are we going?" />
    </template>
    
    <script>
    import Places from 'places.js'
    
    ...
        mounted: function() {
            var placesAutocomplete = new Places({
                container: document.querySelector('#address-input')
            })
            placesAutocomplete.on('change', e => console.log(e.suggestion))
        }
    </script>