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 не считается источником? Не уверен насчет этого последнего бита.