如何使用Leaflet和OpenStreetMap将地图视图重设回Ionic中的位置?

时间:2019-05-27 08:55:57

标签: angular typescript ionic-framework leaflet openstreetmap

现在,我正在Ionic v4中基于位置的应用程序上工作。现在,我希望能够将地图视图重设为我的位置。我想我需要再次使用setView来实现这一点,但是我不知道这样做的语法。

这是我到目前为止所拥有的所有相关代码:

home.page.html

<ion-content>
  <div class="home-button" (click)="centerMap()">
    <ion-icon name="navigate"></ion-icon>
  </div>
  <div id="map"></div>
</ion-content>

home.page.ts

centerMap() {
    this.mapService.backToCenter();
}

map.service.ts

loadmap(map) {
    this.map = map;
    this.map.locate({
        setView: true,
        maxZoom: 22,
        minZoom: 12
    })
    .on('locationfound', e => {
        const markerGroup = leaflet.featureGroup();
        const marker: any = leaflet
            .marker([e.latitude, e.longitude], {
                icon: positionIcon,
                zIndexOffset: -1000
            })
            .on('click', () => {
                console.log('Position marker clicked');
            });
        markerGroup.addLayer(marker);
        this.map.addLayer(markerGroup);
        this.loadMarkers(this.dropService.getDrops());
    });
    return this.map;
}
backToCenter() {
    console.log('Center Map');
}

是否可以通过单击按钮来触发新的setView

1 个答案:

答案 0 :(得分:2)

您可以将初始位置和缩放级别存储在变量中,然后单击map.setView方法返回到初始位置。

backToCenter(){
    map.setView([latitude, longitude], zoom);
}