Я работаю над загрузкой карты Mapbox, используя библиотеку Reber-map-gl от Uber.Я успешно загрузил карту с помощью пользовательских маркеров через JSON, который подается из моего API (как вы можете видеть из этого первого изображения).
Если вы посмотритехотя на зеленом маркере возле Хьюстона он почему-то выключен где-то в Мексиканском заливе.Однако, если я увеличу эту область ...
Вы можете видеть, что при увеличении масштаба маркер перестраивается в правильное положение.Что может вызвать что-то вроде этого?
import ReactMapGL, { Marker, NavigationControl, Popup } from 'react-map-gl';
import CityInfo from './city-info';
import 'mapbox-gl/dist/mapbox-gl.css';
class ExplorePage extends Component {
state = {
viewport: {
width : 400,
height : 400,
latitude : 38.789093,
longitude: -95.295881,
zoom : 3.7,
},
popupInfo: null,
};
componentDidMount() {
this.props.dispatch(explorepageActions.getFavoriteHikes());
}
_renderMarker = (marker, index) => {
return (
<Marker
anchor='bottom'
key={`marker-${index}`}
longitude={parseFloat(marker.longitude)}
latitude={parseFloat(marker.latitude)}
>
<Pin width={100} onClick={(event) => this._handleClick(event, marker)} />
</Marker>
);
};
_onViewportChange = viewport => this.setState({viewport});
render() {
const { explorepageData, loading } = this.props;
const { viewport } = this.state;
return (
<ExplorePageStyles>
{loading && <img src='/static/loading.svg' alt='loading' className='loading-img' />}
{explorepageData.data &&
<Fragment>
<Sidebar>
<ExploreSidebar favoriteHikes={explorepageData} />
</Sidebar>
<ReactMapGL
{...viewport}
mapboxApiAccessToken={MAPBOX_TOKEN}
width='100%'
height='100%'
style={{ float: 'right' }}
onViewportChange={this._onViewportChange}
attributionControl={false}
>
{explorepageData.data.map(this._renderMarker)}
{this._renderPopup()}
<div className="nav" style={navStyle}>
<NavigationControl />
</div>
</ReactMapGL>
</Fragment>
}
</ExplorePageStyles>
);
}
}