Fixes lat/lon precision and center change via zoom without pan.

This commit is contained in:
orangemug 2020-01-19 19:09:04 +00:00
parent 27e6675d26
commit 0009c74948
2 changed files with 13 additions and 22 deletions

View file

@ -134,14 +134,12 @@ export default class MapboxGlMap extends React.Component {
const map = new MapboxGl.Map(mapOpts);
const center = map.getCenter();
const zoom = map.getZoom();
this.setState({
center,
zoom,
});
this.props.onChange({center, zoom});
const mapViewChange = () => {
const center = map.getCenter();
const zoom = map.getZoom();
this.props.onChange({center, zoom});
}
mapViewChange();
map.showTileBoundaries = mapOpts.showTileBoundaries;
map.showCollisionBoxes = mapOpts.showCollisionBoxes;
@ -206,19 +204,8 @@ export default class MapboxGlMap extends React.Component {
});
});
map.on("dragend", e => {
this.props.onChange({
center: map.getCenter(),
zoom: this.state.zoom,
})
});
map.on("zoomend", e => {
this.props.onChange({
center: this.state.center,
zoom: map.getZoom(),
})
});
map.on("dragend", mapViewChange);
map.on("zoomend", mapViewChange);
}
render() {

View file

@ -19,6 +19,10 @@ class DebugModal extends React.Component {
render() {
const {mapView} = this.props;
const osmZoom = Math.round(mapView.zoom)+1;
const osmLon = Number.parseFloat(mapView.center.lng).toFixed(5);
const osmLat = Number.parseFloat(mapView.center.lat).toFixed(5);
return <Modal
data-wd-key="debug-modal"
isOpen={this.props.isOpen}
@ -56,7 +60,7 @@ class DebugModal extends React.Component {
<a
target="_blank"
rel="noopener noreferrer"
href={`https://www.openstreetmap.org/#map=${Math.round(mapView.zoom)+1}/${mapView.center.lat}/${mapView.center.lng}`}
href={`https://www.openstreetmap.org/#map=${osmZoom}/${osmLat}/${osmLon}`}
>
Open in OSM
</a> &mdash; Opens the current view on openstreetmap.org