Найдите конкретную границу с помощью fitBounds ofact-mapbox-gl - PullRequest
0 голосов
/ 21 октября 2018

Я хочу, чтобы карта переместилась на постоянную границу по событию нажатия кнопки.Когда страница загружена, она показывает границу, по которой я получаю границу, которую я правильно рассчиталПосле загрузки мне нужно перейти к маркерам, которые я нарисовал.Перейдя к нескольким маркерам, нужно перелететь до первоначальной границы, которую я получил первым.Но он находится в Лондоне.Я не уверен, почему он не перемещается в исходную границу.

Вот мой код

<CustomMapbox
    showAll={this.state.showAll}
    center={this.state.center}
    fitBounds={this.state.bound}
    zoom={[8]}
    containerStyle={{
       height: "100%"
    }} onClick={this.onClickMap}
>
     <Marker
        locations={this.state.places}
        data={this.state.product}
        onClick={this.onClickPosition} 
     />

      { (this.state.selectedPoint ) && (this.state.showPopup) &&
         <Popup key={`${this.state.selectedPoint[0]}_${this.state.selectedPoint[1]}`} coordinates={this.state.selectedPoint}>
              <StyledPopup>
                <div>{this.state.selectedUPCDate}</div>
              </StyledPopup>
         </Popup>
                }
</CustomMapbox>

Как вы можете видеть мой код, я использую CustomMapbox компонент и реквизиты, такие как showAll, center, fitBounds для карты.showAll - показывать все маркеры или нет.Когда showAll истинно, необходимо показать все маркеры, поэтому необходимо указать область с fitBound.И когда showAll ложно, необходимо показать центральную точку.

Я сделал CustomMapbox, чтобы выбрать правильный реквизит с помощью переменной showAllCustomMapbox, если showAll имеет значение true, реквизиты center будут удалены, или нет, реквизиты fitBounds будут удалены.Проблема заключается в правильном отображении этой области, когда страница загружена, но не отображается после выполнения навигации к определенному центру.

Есть ли какое-либо решение, позволяющее сделать эту функцию с помощью react-mapbox-gl?

1 Ответ

0 голосов
/ 22 октября 2018

все!Я решил это сам.При использовании fitBounds необходимо использовать центр этой границы.Теперь он работает отлично

Не нужно использовать флаг showAll для fitBounds Просто нужно использовать fitBounds и его значение center

...