多边形未绘制// //变量不存在,但在控制台中没有返回错误

时间:2019-04-03 07:57:43

标签: javascript leaflet

我正在尝试在地图上显示多边形,当我console.log这个[obj[2][0].geometry.coordinates[0][0][0]得到这些坐标时,我在此地图上使用的数据来自具有数组的数据库4.87896和我要使用的完整坐标是这些

0: (2) ["4.87896", "52.367477"]
1: (2) ["4.87896", "52.379843"]
2: (2) ["4.918785", "52.379843"]
3: (2) ["4.918785", "52.367477"]
4: (2) ["4.87896", "52.367477"] 

以及我要如何使多边形显示在地图上的代码

let map = L.map('map').setView([52.37, 4.90], 13);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
    maxZoom: 14,

}).addTo(map);
var polygon = L.polygon([
        [obj[2][0].geometry.coordinates[0][0][0], obj[2][0].geometry.coordinates[0][0][1]],
        [obj[2][0].geometry.coordinates[0][1][0], obj[2][0].geometry.coordinates[0][1][1]],
        [obj[2][0].geometry.coordinates[0][2][0], obj[2][0].geometry.coordinates[0][2][1]],
        [obj[2][0].geometry.coordinates[0][3][0], obj[2][0].geometry.coordinates[0][3][1]],
        [obj[2][0].geometry.coordinates[0][4][0], obj[2][0].geometry.coordinates[0][4][1]]
    ]).addTo(map); 

多边形未显示在地图上,但是在console中也没有返回错误,而且当我在polygon中键入console时也找不到它。

  

VM94:1未捕获的ReferenceError:未定义多边形       在:1:1

我使用的所有链接

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css"
      integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA=="
      crossorigin=""/>
<!-- Make sure you put this AFTER Leaflet's CSS -->
<script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js"
        integrity="sha512-QVftwZFqvtRNi0ZyCtsznlKSWOStnDORoefr1enyq5mVL4tmKB3S/EnC3rRJcxCPavG10IcrVGSmPh6Qw5lwrg=="
        crossorigin=""></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/0.4.2/leaflet.draw.css"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/0.4.2/leaflet.draw.js"></script>

编辑: js的垃圾桶

https://output.jsbin.com/lewaroc/1

1 个答案:

答案 0 :(得分:0)

经过一些测试,我发现该坐标仅接受numbers,因此在这种情况下,它必须为Number([obj[2][0].geometry.coordinates[0][0][0]),然后绘制得很好