Leaflet和VueJS中的地图标记

时间:2019-02-13 00:21:12

标签: vuejs2 leaflet

我正在使用传单 VueJS 2 ,我希望获得如下结果: 单击地图上的标记时,位置列表将水平显示,滚动到所选位置的中心。 相反,当您滚动到水平方向时,地图将以相应的标记为中心,该标记将突出显示。

我已经有了这个模板: Leaflet Map With Horizontal List

地图组件的代码如下:

    <div class="map" id="map">   
    <div class="placeHorizontalList" id="placeHorizontalList">
        <div v-for="(place, index) in placeList" :key="index">                                                        
            <img :src="place.media.main.src" >    
            <div class="placeHorizontalList__detail">
               <p>{{place.label}}</p>
               <p>{{place.text.displayAddress}}</p>                      
            </div> 
        </div>
     </div>  


<script>
export default{
    data() {
        return {
            map: null,
            tileLayer: null,
            placeList: []    
        }
    },
    mounted() {
        this.initMap(); 
        this.initMarkers();   
    },
    methods: {
        initMap() { 
            // INIT MAP
            this.map= L.map('map').setView([43.9493, 4.8055],13);
            this.tileLayer= 
               L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png');  
            this.tileLayer.addTo(this.map); 
        },
        initMarkers() {
            // INIT MARKERS
                this.services.entityController.listPlaces(()=>{            
                    console.log("please wait")
                }, (results)=>{                                   
                    this.placeList= results;  
                    this.placeList.forEach(place => {                 
                        var marker= L.marker([place.geo.latitude, place.geo.longitude]);
                        marker.addTo(this.map); 
                        var layerGroup= L.layerGroup();                     
                        layerGroup.addLayer(marker);
                        place.marker_id= layerGroup.getLayerId(marker);
                        marker.on({click: this.clickMarker});  
               }, ()=>{
                   console.error("error")
               });                                          
          }); 
        }
   }


}


</script>

0 个答案:

没有答案