gpt4 book ai didi

javascript - 传单错误 : Invalid LatLng object: ( , 未定义)

转载 作者:行者123 更新时间:2023-11-30 10:25:30 25 4
gpt4 key购买 nike

我正在尝试将我的 L.polygon 数据移动到另一个文件。我正在使用 jQuery 从单独的文件中获取数据。它似乎应该返回与我在 index.html 文件中将其作为 L.polygon 时使用的完全相同的数据,但它返回的是此错误:

Invalid LatLng object: ( , undefined) 

我搜索了这个错误,但似乎所有报告错误的人都使用了与我不同的数据类型。

这是完整的例子:

index.html:

<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<style type="text/css">
#map {
height: 500px;
}
</style>
</head>
<body>

<div id="map"></div>
<script type="text/javascript">
var map = L.map('map').setView([33.720818, -84.240], 11);

$.get("data/temp.csv", function(data) {
console.log(data);
var temp = new L.polygon(data).setStyle(defaultStyle).addTo(map);
});
</script>

</body>
</html>

数据/temp.csv:

[
[33.829205,-84.377261],
[33.829121,-84.377257],
[33.829039,-84.377271],
[33.828937,-84.377204],
[33.828871,-84.377122]
]

编辑:澄清一下,将以下内容添加到 index.html 文件中效果很好,但是从另一个文件(上面)引入它是行不通的。

var temp = L.polygon([
[33.829205,-84.377261],
[33.829121,-84.377257],
[33.829039,-84.377271],
[33.828937,-84.377204],
[33.828871,-84.377122]
]).setStyle(defaultStyle).addTo(map);

最佳答案

L.polygon() 需要一组 LatLng 对象。

您需要遍历数组,从每个元素中创建一个 LatLng,或者将此列表包装在 GeoJSON 对象中并使用 GeoJSON 类为您执行此操作。

类似于:

L.geoJson({"type": "Polygon", "coordinates": data}).setStyle(defaultStyle).addTo(map);

根据评论编辑:事实证明,L.polygon() 实际上确实自动将一个数组数组转换为一个LatLng 数组.相反,问题是您需要明确地将“json”作为最后一个参数传递给 $.get(),以确保它实际上将字符串解析为 JSON,而不是返回原始字符串。

关于javascript - 传单错误 : Invalid LatLng object: ( , 未定义),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19772227/

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