MAPBOX GL加载2个地图

发布于 2025-01-29 07:44:57 字数 1300 浏览 4 评论 0原文

因此,Mapbox提供的示例代码似乎已损坏。我已经将他们的示例映射组件复制到了地图。JS,由于某种原因,我获得了2个地图而不是1个地图。

import * as React from "react";
import mapboxgl from 'mapbox-gl';
mapboxgl.accessToken = 'API KEY';



export default class Mapy extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
        lng: -70.9,
        lat: 42.35,
        zoom: 9
        };
        this.mapContainer = React.createRef();
        }
        componentDidMount() {
        const { lng, lat, zoom } = this.state;
        const map = new mapboxgl.Map({
        container: this.mapContainer.current,
        style: 'mapbox://styles/mapbox/streets-v11',
        center: [lng, lat],
        zoom: zoom
        });
         
        map.on('move', () => {
        this.setState({
        lng: map.getCenter().lng.toFixed(4),
        lat: map.getCenter().lat.toFixed(4),
        zoom: map.getZoom().toFixed(2)
        });
        });
        }
        render() {
        const { lng, lat, zoom } = this.state;
        return (
        <div>
        <div className="sidebar">
        Longitude: {lng} | Latitude: {lat} | Zoom: {zoom}
        </div>
        <div ref={this.mapContainer} className="map-container" />
        </div>
        );
        }
        }

So the sample code provided by Mapbox seems to be broken. I have copied their sample map component into a map.js and for some reason, I am getting 2 maps instead of 1.

import * as React from "react";
import mapboxgl from 'mapbox-gl';
mapboxgl.accessToken = 'API KEY';



export default class Mapy extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
        lng: -70.9,
        lat: 42.35,
        zoom: 9
        };
        this.mapContainer = React.createRef();
        }
        componentDidMount() {
        const { lng, lat, zoom } = this.state;
        const map = new mapboxgl.Map({
        container: this.mapContainer.current,
        style: 'mapbox://styles/mapbox/streets-v11',
        center: [lng, lat],
        zoom: zoom
        });
         
        map.on('move', () => {
        this.setState({
        lng: map.getCenter().lng.toFixed(4),
        lat: map.getCenter().lat.toFixed(4),
        zoom: map.getZoom().toFixed(2)
        });
        });
        }
        render() {
        const { lng, lat, zoom } = this.state;
        return (
        <div>
        <div className="sidebar">
        Longitude: {lng} | Latitude: {lat} | Zoom: {zoom}
        </div>
        <div ref={this.mapContainer} className="map-container" />
        </div>
        );
        }
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

各自安好 2025-02-05 07:44:57

我有同样的问题&amp;通过添加以下内容来修复。

导入“ mapbox-gl/dist/mapbox-gl.css”

I had the same issue & fixed by adding the below.

import "mapbox-gl/dist/mapbox-gl.css"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文