Javascript 打开图层3:如何仅显示KML图层
我正在尝试创建一个OpenLayers贴图,它只显示一个KML层,而不显示基础贴图或底层平铺层 KML层将是一个室内地板图,但它不需要位于现有地图的顶部,在特定的坐标位置。我只需要单独显示floormap,没有其他地图。我还想设置平移限制,以便用户不能从地图上平移 下面是我用来成功地在现有基础地图上显示KML图层的一些代码。我尝试了很多方法,试图让KML层自己显示出来,但都没有用 有人能帮我一下吗?或者告诉我,我需要用下面的代码更改什么,才能单独显示KMLJavascript 打开图层3:如何仅显示KML图层,javascript,kml,openlayers-3,Javascript,Kml,Openlayers 3,我正在尝试创建一个OpenLayers贴图,它只显示一个KML层,而不显示基础贴图或底层平铺层 KML层将是一个室内地板图,但它不需要位于现有地图的顶部,在特定的坐标位置。我只需要单独显示floormap,没有其他地图。我还想设置平移限制,以便用户不能从地图上平移 下面是我用来成功地在现有基础地图上显示KML图层的一些代码。我尝试了很多方法,试图让KML层自己显示出来,但都没有用 有人能帮我一下吗?或者告诉我,我需要用下面的代码更改什么,才能单独显示KML var vector = new ol
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
url: MAPS_URL + 'map1.kml',
format: new ol.format.KML()
})
});
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
}),
vector
],
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 2
})
});
map.addLayer(vector);
谢谢 您是否检查过是否可以读取KML文件?可能有CORS问题 我建议使用AJAX调用加载KML,然后使用ol.format.KML读取特性并将其添加到源代码中
sourceVector = new ol.source.Vector();
layerVector = new ol.layer.Vector({
source: sourceVector
});
formatKML = new ol.format.KML({extractStyles: false});
$.ajax('http://storage.googleapis.com/dbauszus-file-bucket/rtmLmpHg.kml',{
type: 'GET',
contentType: 'application/vnd.google-earth.kml+xml',
success : function(response) {
features = formatKML.readFeatures(response,{
dataProjection: 'EPSG:4326',
featureProjection: 'EPSG:3857'
});
sourceVector.addFeatures(features);
}
});
如果您不能像这样读取文件,请在Firebugz NET选项卡中检查CORS问题。
正如乔纳塔斯和蔡尔文所言,我只需移除瓷砖层 a洛杉矶:
如果你移除瓷砖层会发生什么?我已经叉了一个,移除了底图,一切都很好。是的,很好。我以前试过,但没能成功!可能只是一个愚蠢的语法错误或什么,谢谢你指出这一点给我!
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
url: MAPS_URL + 'map1.kml',
format: new ol.format.KML()
})
});
var map = new ol.Map({
target: 'map',
layers: [vector],
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 2
})
});
map.addLayer(vector);