gpt4 book ai didi

javascript - 传单:找不到 map 容器

转载 作者:行者123 更新时间:2023-12-03 12:59:39 24 4
gpt4 key购买 nike

我有下面的 react 类,它通过浏览器获取地理位置。

我正在绘制传单 map 。我希望将地理定位作为 setView 的输入,以便 map “缩放”到客户端浏览器位置的区域。

这是 react 类:

    import React from 'react';
import L from 'leaflet';
import countries from './countries.js';

var Worldmap = React.createClass({

render: function() {

let geolocation = [];

navigator.geolocation.getCurrentPosition(function(position) {
let lat = position.coords.latitude;
let lon = position.coords.longitude;
geolocation.push(lat, lon);
locationCode()
});

function locationCode() {
if(geolocation.length <= 0)
geolocation.push(0, 0);
}


let map = L.map('leafletmap').setView(geolocation, 3);

L.geoJSON(countries, {
style: function(feature) {
return {
fillColor: "#FFBB78",
fillOpacity: 0.6,
stroke: true,
color: "black",
weight: 2
};
}
}).bindPopup(function(layer) {
return layer.feature.properties.name;
}).addTo(map);

return (
<div id="leafletmap" style={{width: "100%", height: "800px" }}/>
)
}
});

export default Worldmap

它在主文件中调用,其中 HTML 呈现为 <WorldMap /> .

我收到错误 Uncaught Error: Map container not found.加载页面时。环顾四周,通常是因为 map 在提供值之前尝试在 div 中显示(在本例中为(gelocation,3))。但是,在从下面的渲染函数返回之前,它不应该显示它。

问题可能是什么?

打印 geolocation在控制台中正确获取坐标,因此这似乎不是问题。

最佳答案

<div id="leafletmap">必须在调用 L.map('leafletmap') 之前添加到 dom .

关于javascript - 传单:找不到 map 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42647735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com