Javascript 传单脚本检查循环中点的位置,并在距离改变时发送web请求

Javascript 传单脚本检查循环中点的位置,并在距离改变时发送web请求,javascript,html,mysql,leaflet,fetch,Javascript,Html,Mysql,Leaflet,Fetch,所以在我的网站上,我有这个代码 <script> var HydrantIcon = L.icon({ iconUrl: 'img/hydrat.png', iconSize: [2, 39], // size of the icon popupAnchor: [0, -14] // point from which the popup should open relative to the iconAnchor }); L.mapbox.ac

所以在我的网站上,我有这个代码

<script>
  var HydrantIcon = L.icon({
    iconUrl: 'img/hydrat.png',

    iconSize:     [2, 39], // size of the icon
    popupAnchor:  [0, -14] // point from which the popup should open relative to the iconAnchor
});
L.mapbox.accessToken = '';
var options = {
  minZoom: 14,
  zoomControl: false,
  maxZoom: 18
};
var map = L.mapbox.map('map', undefined, options);
    map.setView([52.413300, 8.869450], 16)
    var markerpositions;
    map.addLayer(L.mapbox.styleLayer('mapbox://styles/mapbox/satellite-streets-v9'));
   // L.Control.geocoder().addTo(map);
    L.marker([52.41401117, 8.86953413], {icon: HydrantIcon}).addTo(map).bindPopup("Hydrant  13");
    L.marker([52.41069629842804, 8.868584632873537], {icon: HydrantIcon}).addTo(map).bindPopup("Hydrant  2");
    L.marker([52.40941419180167, 8.866181373596193], {icon: HydrantIcon}).addTo(map).bindPopup("Hydrant  3");
    var mark1 = [
   [52.414737, 8.868510],
   [52.413151, 8.872171],
   [52.407455, 8.865287],
   [52.409102, 8.861021]
];
    var polygon = L.polygon(mark1, {color: 'blue'}).addTo(map);
    var data = <?php echo JSON_encode($geojson); ?>;
    var geoJsonLayer = L.geoJson(false, {onEachFeature: addMyPopup}).addTo(map);
    var hydrat1 = [52.41401117, 8.86953413];
    var hydrat2 = [52.41069629842804, 8.868584632873537];
    var hydrat3 = [52.40941419180167, 8.866181373596193];
function addMyPopup ( feature, layer) {
  var triggerOnce = true;
if ((layer.getLatLng().distanceTo(hydrat1) < 5)
  ||(layer.getLatLng().distanceTo(hydrat2) < 5)
  ||(layer.getLatLng().distanceTo(hydrat3) < 5)) {
      if(triggerOnce == true){
          var http = new XMLHttpRequest();
          var url = "https://maker.ifttt.com/trigger/vandingsmaskine/with/key/";
          http.open("POST", url, true);
          http.send(JSON.stringify({"value1": "Maskine 1"}));
          triggerOnce == false;
          }
          layer.bindPopup("My ID is: " + feature.properties.id);
          }
      }


function requestGeoJson(){
    fetch('https:///admin/RealtimeTest/get-features')
      .then(function(response){
       return response.json(); 
     })
      .then(function(json){
         geoJsonLayer.clearLayers().addData(json);

         setTimeout(requestGeoJson, 5000);
      });
};
requestGeoJson();

var HydrantIcon=L.icon({
iconUrl:'img/hydrate.png',
图标大小:[2,39],//图标的大小
popupAnchor:[0,-14]//相对于iconAnchor打开弹出窗口的点
});
L.mapbox.accessToken='';
变量选项={
minZoom:14,
动物控制:错误,
最大缩放:18
};
var map=L.mapbox.map('map',未定义,选项);
地图设置视图([52.413300,8.869450],16)
var-markerpositions;
map.addLayer(L.mapbox.styleLayer('mapbox://styles/mapbox/satellite-streets-v9'));
//L.Control.geocoder().addTo(map);
L.marker([52.4140117,8.86953413],{icon:HydrantIcon}).addTo(map.bindpoop(“消火栓13”);
L.marker([52.41069629842804,8.868584632873537],{icon:HydrantIcon}).addTo(map.bindpoop(“消火栓2”);
L.marker([52.40941419180167,8.866181373596193],{icon:HydrantIcon}).addTo(map.bindpoop(“消火栓3”);
变量mark1=[
[52.414737, 8.868510],
[52.413151, 8.872171],
[52.407455, 8.865287],
[52.409102, 8.861021]
];
var polygon=L.polygon(mark1,{color:'blue'}).addTo(map);
var数据=;
var geoJsonLayer=L.geoJson(false,{onEachFeature:addMyPopup}).addTo(map);
var 1=[52.4140117,8.86953413];
var 2=[52.41069629842804,8.868584632873537];
var 3=[52.40941419180167,8.866181373596193];
功能addMyPopup(功能、图层){
var-triggerOnce=true;
if((层getLatLng().距离(1)<5)
||(layer.getLatLng().距离(2)<5)
||(layer.getLatLng().距离(3)<5)){
if(triggerOnce==true){
var http=new XMLHttpRequest();
变量url=”https://maker.ifttt.com/trigger/vandingsmaskine/with/key/";
http.open(“POST”,url,true);
http.send(JSON.stringify({“value1”:“maskine1”});
triggerOnce==false;
}
layer.bindPopup(“我的ID是:“+feature.properties.ID”);
}
}
函数requestGeoJson(){
取('https:///admin/RealtimeTest/get-features')
.然后(功能(响应){
返回response.json();
})
.then(函数(json){
geoJsonLayer.clearLayers().addData(json);
setTimeout(requestGeoJson,5000);
});
};
requestGeoJson();
GeoJson层位置是从Mysql数据库的位置获取的 如果层的距离小于5米,它会发出web请求。 我的问题是,这只适用于只要用户在网站上。我 我试图让它始终检查GeoJson层与任一“水合”点之间的距离是否小于5米。因此,可能需要一些始终在node.js脚本