当前位置: 首页 > 知识库问答 >
问题:

单张地图未完全显示平铺

梁和颂
2023-03-14

嗨,我正在尝试创建一个模式内的地图。但是地图只显示了一部分。我尝试过在节点创建后使其无效,但它似乎不起作用。谢谢!


    import React from 'react';
    import ReactDOM from 'react-dom'
    import L from 'leaflet';

    class Mapa extends React.Component {
        constructor(props){
            super(props);
            this.state = {
            };
        }

        createMap(element){
            var map = L.map(element);
            L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
                attribution: '© OpenStreetMap contributors'
            }).addTo(map);
            return map;
        }

        setupMap(){
            this.map.setView([this.props.lat, this.props.lon], this.props.zoom);
            this.map.invalidateSize();
        }

        componentDidMount(){
            let self = this;
            if (this.props.createMap) {
                this.map = this.props.createMap(ReactDOM.findDOMNode(self));
            } else {
                this.map = this.createMap(ReactDOM.findDOMNode(self));
            }

            this.setupMap();
        }

        render(){
            /*Returns div with id map*/
        }
    }

共有2个答案

黄流觞
2023-03-14

最后我修好了。代码是正确的,但我没有正确地添加传单依赖项。一旦我修好了,一切都很完美。事实上this.map.invalidatesize();是没有必要的。

    import React from 'react';
    import ReactDOM from 'react-dom'
    import L from 'leaflet';

    class Mapa extends React.Component {
        constructor(props){
            super(props);
            this.state = {
            };
        }

        createMap(element){
            var map = L.map(element);
            L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
                attribution: '© OpenStreetMap contributors'
            }).addTo(map);
            return map;
        }

        setupMap(){
            this.map.setView([this.props.lat, this.props.lon], this.props.zoom);
        }

        componentDidMount(){
            let self = this;
            if (this.props.createMap) {
                this.map = this.props.createMap(ReactDOM.findDOMNode(self));
            } else {
                this.map = this.createMap(ReactDOM.findDOMNode(self));
            }

            this.setupMap();
        }

        render(){
            /*Returns div with id map*/
        }
    }

龙飞文
2023-03-14

我这样做是使用JSS

import jss from 'jss';
import jssDefault from 'jss-preset-default';

import 'leaflet/dist/leaflet.css';

jss.setup(jssDefault());

jss.createStyleSheet({
  '@global': {
    '.leaflet-container': {
      height: '100%',
    },
  },
}).attach();

小册子使用全局CSS类。因此,您可以使用css-loader使用全局样式:

styles.css

:global {
  .leaflet-container {
    height: 100%;
  }
}

component.jsx

import './styles.css';
 类似资料:
  • 有人能解释这种行为以及如何修复它吗? 我为此使用的完整xml代码:

  • 我有一个自定义背景编辑文本。当他们的键盘打开-屏幕调整显示集中编辑文本,问题是,它削减了我的自定义背景。 什么是最好的方式显示我的编辑文本包括他的敲击白背景时,键盘打开? 我的清单现在是调整设置。

  • 问题内容: 我正在尝试使用Leaflet.js在Twitter Bootstrap的选项卡式面板内显示地图,但行为方式很奇怪: 当我单击包含面板的选项卡时,地图顶部有一个灰色层。如果拖动并移动地图,我会看到其他图块,但看不到初始图块。 更奇怪的是,如果我调整浏览器的大小,突然间它可以正常工作,直到我再次重新加载,所以我猜这是css的问题,但我找不到问题。 同样,将地图放置在选项卡式面板之外也很有效

  • 问题内容: 我确定我忘记了一些非常简单的内容,但是我无法获得某些与Seaborn合作的计划。 如果我做: 然后,我通常使用matplotlib创建的任何图都将获得Seaborn样式(背景为灰色网格)。 但是,如果我尝试执行以下示例之一,例如: pairplot函数返回一个PairGrid对象,但该图未显示。 我有点困惑,因为matplotlib似乎可以正常运行,并且Seaborn样式已应用于其他m

  • 我知道有一个类似的问题,但答案不够具体,无法在我的案例中发挥作用。 我试图创建一个程序,可以显示在平铺中创建的平铺地图,并使用pytmx上传到Pygame中。我唯一的问题是在Pygame中将图像快速显示在屏幕上。 这就是我一直收到的错误:回溯(最近一次调用):文件“C:\Users\b\Desktop\Frozed Map Textures\test.py”,第32行,在screen.blit(i

  • 我一直在为一个即将到来的项目使用JFreeChart进行实验,看着教程,它们似乎非常直截了当。我创建了一个简单的小程序,它要求一些数据并显示一个3D饼图。它可以工作,但当在面板中显示图表时,它只显示部分图表。如果单击面板内部,它将增长到显示面板的大小。我尝试在不同的地方设置不同的setPreferredSize(),但似乎都不起作用。我错过了什么?