Uber / реагировать-map-gl getMap & выставленный API Mapbox - PullRequest
0 голосов
/ 23 ноября 2018

Я использую следующий фрагмент кода, чтобы попытаться получить доступ к API MapBox из uber Reaction-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 и другие, выдает ошибку "is not function" & "Cannot read свойство 'version' of undefined".Я делаю что-то не так или не все методы MapBox Api недоступны через метод getMap ()?

Спасибо

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

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

    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.

0 голосов
/ 08 декабря 2018

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

...