Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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/1/php/297.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 传单从geojson获取id并将其绑定到弹出窗口_Javascript_Php_Html_Mysql_Leaflet - Fatal编程技术网

Javascript 传单从geojson获取id并将其绑定到弹出窗口

Javascript 传单从geojson获取id并将其绑定到弹出窗口,javascript,php,html,mysql,leaflet,Javascript,Php,Html,Mysql,Leaflet,var map=L.mapbox.map('map',未定义,选项); 地图设置视图([56.413300,8.869450],16) var-markerpositions; map.addLayer(L.mapbox.styleLayer('mapbox://styles/mapbox/satellite-streets-v9')); //L.Control.geocoder().addTo(map); var geocoder=L.control.geocoder('search-MKZr

var map=L.mapbox.map('map',未定义,选项);
地图设置视图([56.413300,8.869450],16)
var-markerpositions;
map.addLayer(L.mapbox.styleLayer('mapbox://styles/mapbox/satellite-streets-v9'));
//L.Control.geocoder().addTo(map);
var geocoder=L.control.geocoder('search-MKZrG6M').addTo(map);
L.marker([56.41083875205338.864636421203615],{icon:HydrantIcon}).addTo(map.bindpoop(“消火栓1”);
L.marker([56.41069629842804,8.868584632873537],{icon:HydrantIcon}).addTo(map.bindpoop(“消火栓2”);
L.marker([56.40941419180167,8.866181373596193],{icon:HydrantIcon}).addTo(map.bindpoop(“消火栓3”);
var数据=;
var geoJsonLayer=L.geoJson().addTo(map);
函数requestGeoJson(){
取('https://laerkeholt.dk/admin/get-features')
.then(函数(响应){return response.json()})
.then(函数(json){
geoJsonLayer.clearLayers().addData(json.bindpoop('ID:+IDHERE');
var http=new XMLHttpRequest();
变量url=”https://maker.ifttt.com/trigger/vandingsmaskine/with/key/";
http.open(“POST”,url,true);
send(JSON.stringify({“value1”:“id1”});
var 1=[56.41083875205338.864636421203615];
var 2=[56.41069629842804,8.868584632873537];
var 3=[56.40941419180167,8.866181373596193];
var测试=L.latLng(json).距离(1);
setTimeout(requestGeoJson,5000);
});
};
requestGeoJson();

您可以使用
pointToLayer
onEachFeature
进行此操作

实例化geoJSON层时,请使用以下命令:

var geoJsonLayer=L.geoJson(false,{onEachFeature:addMyPopup}).addTo(map)

//初始化三个参考点
var 1=L.latLng(,);
var 2=L.latLng(,);
var 3=L.latLng(,);
//GeoJSON中的每个点都会调用它
功能addMyPopup(功能、图层){
if((层getLatLng().距离(1)<5)
||(layer.getLatLng().距离(2)<5)
||(layer.getLatLng().距离(3)<5)){
//做点什么
}
layer.bindPopup(“我的ID是:“+feature.properties.ID”);

查看
L.geoJson
对象上的
pointToLayer
函数。在那里,您可以为geoJson文件中的每个点编写自己的
L.marker
,并添加合适的弹出窗口。什么?我真的不想使用某种类型的eachfeature吗?@peeebee抱歉,我不明白您的评论。@peeebee问我会怎么做在POST中使用来自url的geojson id从该geojson获取id参数,并将其绑定到每个标记上的弹出窗口,因此,与其都说id 1,不如说geojson功能中的特定id paremeter@peeebeeunch错误:无效的geojson对象。var geoJsonLayer=L.geoJson({onEachFeature:addMyPopup}).addTo(map);我还需要从adddata右侧删除.bindPopup。啊,输入对象并不像规范建议的那么可选。编辑。是的,bindPopup没有做任何有用的事情。仍然会出现未捕获的错误:无效的GeoJSON对象。在Jt(传单src.js:8773)在e.adddata(传单src.js:8673)使用var geoJsonLayer=L.geoJson({},{onEachFeature:addMyPopup})。addTo(map),在Object.oi(传单src.js:8974)的新e(传单src.js:301)的e.initialize(传单src.js:8648)处初始化(传单src.js:8648);
// Initialise the three reference points
var hydrat1 = L.latLng(<..>, <..>);
var hydrat2 = L.latLng(<..>, <..>);
var hydrat3 = L.latLng(<..>, <..>);

// This gets called for every point in the GeoJSON
function addMyPopup ( feature, layer) {
if ((layer.getLatLng().distanceTo(hydrat1) < 5)
  ||(layer.getLatLng().distanceTo(hydrat2) < 5)
  ||(layer.getLatLng().distanceTo(hydrat3) < 5)) {
    // Do something
  }
  layer.bindPopup("My ID is: " + feature.properties.id);