Uber/ Reaction-Map-GL GetMap и открытый API Mapbox

Я использую следующий фрагмент кода, чтобы попытаться получить доступ к API-интерфейсу MapBox из uber response-map-gl: 4.0.2 с помощью mapbox-gl v0.50.0.

 import MapGL from 'react-map-gl';
 export default class App extends Component 
 {
   constructor(props) {
    super(props);
   this.mapRef= React.createRef();
   }
   componentDidMount() 
   {
      let data = this.mapRef.getMap().getBounds(); <----
   } 
   render() {
    <MapGL
    {...viewport}
    width="100%"
    height="100%"
    mapStyle={MapStyle}
    onViewportChange={this._updateViewport}
    ref={map => this.mapRef = map}
    mapboxApiAccessToken={TOKEN} >
   }
 }

если я пытаюсь получить доступ к любым другим методам, таким как getStyle/getSource и другие, возникает ошибка "не является функцией" & "Не удается прочитать свойство 'версия' из неопределенного". Я делаю что-то не так или не все методы MapBox Api не доступны через метод getMap()?

Спасибо

0 ответов

Я использую это, чтобы получить начальные границы карты.

    getMapBoundaries = () => {
    // Get map boundaries
    const myMap = this.mapRef.getMap(); 
    console.log(myMap.getBounds());
    const mapBoundaries = myMap.getBounds();
    this.setState({ mapBoundaries })
  }

  componentDidMount = () => this.getMapBoundaries();

Я также заметил, что импорт для "response-map-gl" должен быть

import ReactMapGL from 'react-map-gl';

Почему ошибка? Кажется, вы не используете функцию возврата в методе componentDidMount.

Если вы можете получить map объект правильно, то все функции должны быть выставлены в том числе getStyle, getSource у меня тоже не сработало, может быть, использование mapStyle не считается источником? Не уверен насчет этого последнего бита.

Другие вопросы по тегам