JavaScript Leaflet TypeError:L.tileLayer.Unwired不是函数

时间:2019-05-24 12:13:08

标签: javascript leaflet

我正在使用LocationIQ地图服务:https://locationiq.com/docs并将3个脚本加载到页面标题中(在Concrete5 CMS控制器中):

$this->addHeaderItem($html->css("https://unpkg.com/leaflet@1.5.1/dist/leaflet.css"));
$this->addHeaderItem($html->javascript("https://unpkg.com/leaflet@1.5.1/dist/leaflet.js"));
$this->addHeaderItem($html->javascript("https://tiles.unwiredmaps.com/js/leaflet-unwired.js"));

然后我在视图中设置地图:

<div class="leaflet-map" data-jq="<?php echo h($data); ?>" style="height: <?php echo $height; ?>; width: <?php echo $width; ?>;"></div>

和JS中的

$(document).ready(function(e) {
    $.each($('.leaflet-map[data-jq]'), function(index, element) {
        var jq_data = $.parseJSON($(element).attr('data-jq'));
        InitLeafletMap(element, jq_data);
    });
});

function InitLeafletMap(element, jq_data) {
    var myLeafletStreets = L.tileLayer.Unwired({ // <- ERROR HERE
        key: jq_data.api_key, 
        scheme: "streets",
    });

    var myLeafletMap = L.map(element, {
        center: [jq_data.latitude, jq_data.longitude],
        zoom: jq_data.zoom ? jq_data.zoom : 16,
        scrollWheelZoom : jq_data.lock_wheel,
        layers: [myLeafletStreets],
    });
    L.control.scale().addTo(myLeafletMap);

问题是有时没有错误发生,但是在大多数情况下,在加载页面时,我在上面显示的行上收到“ TypeError:L.tileLayer.Unwired不是函数”。

为什么会这样?

PS。我必须说,我还在页面上使用其他地图(2Gis和Yandex)-不同的脚本,不同的库。但是,如果我仅使用Leaflet映射-没有错误。如果我使用其他地图,大多数时候都会得到错误提示,但并非总是如此。时间安排有问题吗?

[更新]

看起来像这样可以解决问题:

var Leaflet = L.noConflict();

0 个答案:

没有答案