Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-传单标记不显示_Javascript_Css_Leaflet_Marker - Fatal编程技术网

Javascript-传单标记不显示

Javascript-传单标记不显示,javascript,css,leaflet,marker,Javascript,Css,Leaflet,Marker,我一直试图找到解决这个基本问题的办法,但没有成功 document.addEventListener('DOMContentLoaded', function () { showMap() }) var map; function showMap() { map = L.map('mapid').setView([45.508991, -73.568602], 13); L.tileLayer('https://api.tiles.mapbox.com/v4/

我一直试图找到解决这个基本问题的办法,但没有成功

document.addEventListener('DOMContentLoaded', function () {
  showMap()
})
var map;
function showMap() {
        map = L.map('mapid').setView([45.508991, -73.568602], 13);
        L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
          attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
          maxZoom: 12,
          id: 'mapbox.streets',
          accessToken: 'sk.eyJ1IjoidGlydmF4IiwiYSI6ImNqNWJ3cHdnazAzeDUyd25xMThzZXc0b3kifQ.NRP_9hz5G4k0xQAwIje5bw'
        }).addTo(map);
        var marker = L.marker([45.508991, -73.568602]).addTo(map);
        marker.bindPopup("<b>Batiment PK</b><br>Depart</br>").openPopup();
}
function onEachFeature(feature, layer) {
        var coords = feature.geometry.coordinates;
        //window.alert(coords);
        var markerLocation = new L.LatLng(parseFloat(coords[0]), parseFloat(coords[1]));
        var marker1 = L.marker(markerLocation);
        map.addLayer(marker1);


}
function printLocationOnMap(location){
    var loc = JSON.parse(location);

    L.geoJson(loc, {
        onEachFeature : onEachFeature
    }).addTo(map)
}
function search(debut, fin, rayon) {
   var url = "http://localhost:8080//activites-375e?du=" + debut + "&au=" + fin + "&rayon=" + rayon + "&lat=45.508991&lng=-73.568602";
    var client = new XMLHttpRequest();
    client.open("GET", url, false);
    client.setRequestHeader("Accept", "text/json");
    client.send(null);
    if (client.status == 200){
        printLocationOnMap(client.responseText);
    }
    else{
        alert("Oups, ça n'a pas fonctionner. \n statut : " + client.status + " " + client.statusText + "\n");
    }
    return false;
}
这段代码没有错误。 在函数showMap()中,标记器工作正常,弹出窗口也正常。但无法使onEachFeature()函数正常工作。我看到触摸传单css可能有用,所以我尝试了这个,但仍然不起作用

事实上,最令人沮丧的是,当函数printLocationOnMap()完成时,我可以在1/4秒的时间内看到标记,但随后它们立即消失

有什么建议吗

谢谢

  • 使用
    XMLHttpRequest
    时,您似乎错过了回调实现步骤。看

  • 您提供的GeoJSON响应示例似乎在
    坐标中使用
    [经度]
    顺序,而它应该是
    [经度]
    ,以符合GeoJSON规范。这可能是您必须在
    onEachFeature
    函数中构建新标记的原因,而在使用
    L.geoJSON
    时,它应该已经自动完成了。因为你的坐标顺序是颠倒的,所以标记是在南极洲的某个地方画的,而不是加拿大的蒙特利尔

  • 至于你的标记在消失之前是短暂可见的,这确实很奇怪,可能是因为你如何调用你的
    搜索
    函数。但是
    XMLHttpRequest
    (第1点)的不当使用也可能起到一定作用


  • 您应该分享如何调用
    printLocationOnMap
    ,尤其是作为
    location
    参数传递的值的示例。@ghybs我刚刚编辑了这篇文章。更清楚吗?我真的无法理解,因为我能看到那个该死的标记,但不到一秒钟。我只是改变了lat和long的顺序,这并没有改变问题,但谢谢你的注意;)。XMLHttpRequest对我来说似乎不是问题。我在geojson上制作了一些windows.alert(),javascript接收得很好,我想……我刚刚意识到我有两个关于king的警告:[违规]在滚动阻止“touchstart”事件中添加了非被动事件侦听器。将事件处理程序标记为“被动”以使页面更加响应。传单:l6。你认为这可能是问题所在吗?我不得不说:它终于起作用了
    {"features":[{"geometry":{"coordinates":[45.48753749999999,-73.8837685],"type":"Point"},"type":"Feature","properties":{"name":"Parc","province": "blabla", ......}}],"type":"FeatureCollection"}