Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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 指南4You-如何添加动态层?_Javascript_Openlayers 3_Guide4you - Fatal编程技术网

Javascript 指南4You-如何添加动态层?

Javascript 指南4You-如何添加动态层?,javascript,openlayers-3,guide4you,Javascript,Openlayers 3,Guide4you,来自guide4you的家伙们把这个lib开源做得很好 我成功地制作了一个有效的演示指南4you示例 lib的可调性如何? 例如,如何使用GeoJSON而不是KML添加层。 可以动态添加层(使用自己的javascript)而不是预定义层吗 以此为例: 更具体地说:该示例如何与指南4you配合使用 亲切问候, Sam要在Guide4中使用GeoJSON层,只需在layerconfig中指定类型“GeoJSON” { “id”:“3”, “类型”:“GeoJSON”, “来源”:{ “url”:“

来自guide4you的家伙们把这个lib开源做得很好

我成功地制作了一个有效的演示指南4you示例

lib的可调性如何? 例如,如何使用GeoJSON而不是KML添加层。 可以动态添加层(使用自己的javascript)而不是预定义层吗

以此为例:

更具体地说:该示例如何与指南4you配合使用

亲切问候,


Sam

要在Guide4中使用GeoJSON层,只需在layerconfig中指定类型“GeoJSON”


{
“id”:“3”,
“类型”:“GeoJSON”,
“来源”:{
“url”:“路径/to/geojson”
}
}

有关一些示例,请参见

如果您想使用javascript动态添加层,可以使用以下api函数:


map.get('api').addFeatureLayer({
“id”:“3”,
“类型”:“GeoJSON”,
“来源”:{
“url”:“路径/to/geojson”
},
“可见”:真实
})

可能的选项与图层配置中的选项相同

如果您只想添加新功能,可以创建一个类型为“Intern”的图层,并添加具有openlayers功能的功能。要素图层的源是的子类。 在下面的示例中,我假设geojsonObject与openlayers的geojson示例中的类型相同。

var layer=map.get('api')。addFeatureLayer({
“id”:“3”,
“类型”:“实习生”,
“来源”:{
“功能”:[]
},
“可见”:真实
});
layer.getSource().addFeatures((新的ol.format.GeoJSON()).readFeatures(geojsonObject));

最后但并非最不重要的一点是,您可以使用简化的api在layerConfig对象内定义如下所示的功能:


{
“id”:“3”,
“类型”:“实习生”,
“来源”:{
“特点”:[{
“id”:6,
“名称”:“某些功能”,
描述:“一些描述”,
“样式”:“默认样式”,
“geometryWKT”:“…此处的任何wkt字符串…”
},{
“geometryWKT”:“…此处的任何wkt字符串…”
}]
}
}


这可以在layerConfig文件中使用,也可以在addFeatureLayer api方法中使用。

Hi Simon。感谢您的快速回答!!当我将代码放在脚本块的index.html中时,我得到了“ReferenceError:map未定义”您可以使用createG4U(“#g4u map”)。然后(函数(map){…这里定义了map…})我自己也试过了,它不起作用,因为此时映射还没有准备好。这应该起作用:createG4U('#g4u-map')。然后(function(map){map.asSoonAs('ready',true,function(){…here…})