Полигон не рисует // говоря, что переменная не существует, но в консоли не возвращаются ошибки - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь заставить полигон отображаться на карте, данные, которые я использую на этой карте, взяты из базы данных с массивом, когда я 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 Uncaught 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>

Edit: корзина для js

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

1 Ответ

0 голосов
/ 03 апреля 2019

После некоторого тестирования я обнаружил, что координаты принимают только numbers, так что в этом случае это должно было быть Number([obj[2][0].geometry.coordinates[0][0][0]), а затем он отлично рисует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...