首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OpenLayers不显示kml层

OpenLayers不显示kml层
EN

Stack Overflow用户
提问于 2013-05-16 14:02:35
回答 3查看 3K关注 0票数 2

我在使用OpenLayers显示kml图层时遇到问题。

下面是我的kml文件Light.kml:

代码语言:javascript
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Folder>
<open>1</open>
<visibility>1</visibility>
<GroundOverlay>
<name>2013-05-15 12:00:00Z</name>
<visibility>1</visibility>
<Icon><href>http://localhost/graphics/Light_0.jpg</href></Icon>
<LatLonBox>
<north>9.4896821975708</north>
<south>-66.0149154663086</south>
<east>197.33328247070312</east>
<west>90.69839477539062</west>
</LatLonBox>
<TimeStamp><when>2013-05-15T12:00:00Z</when></TimeStamp>
</GroundOverlay>
</Folder>
</kml>
</xml>

下面是OpenLayers javascript代码:

代码语言:javascript
运行
AI代码解释
复制
var map = new OpenLayers.Map({
    div: "map",
    layers: [
        new OpenLayers.Layer.WMS(
            "WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",
            {layers: "basic"},
            {wrapDateLine: true}
        )
    ],
    center: new OpenLayers.LonLat(140,-30),
    zoom: 3
});

var light = new OpenLayers.Layer.Vector("Light", {
strategies: [new OpenLayers.Strategy.Fixed()], protocol: new OpenLayers.Protocol.HTTP({
                url: "graphics/Light.kml",
                format: new OpenLayers.Format.KML({
                    extractStyles: true,
                    extractAttributes: true
                })
            })
        });
map.addLayers([light]);

地图显示,但未显示kml图层。有没有人知道可能出了什么问题?

EN

回答 3

Stack Overflow用户

发布于 2013-05-17 12:18:18

也许添加到您的代码中:

代码语言:javascript
运行
AI代码解释
复制
light.setVisibility(true);
map.addLayer(light);

在我看来,您的代码中有一个拼写错误,请只尝试使用map.addLayer。或者使用下面的结构可以做到这一点

代码语言:javascript
运行
AI代码解释
复制
var map = new OpenLayers.Map({
    div: "map",
    layers: [
        new OpenLayers.Layer.WMS(
            "WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",
            {layers: "basic"}
        ),
        new OpenLayers.Layer.Vector("KML", {
            strategies: [new OpenLayers.Strategy.Fixed()],
            protocol: new OpenLayers.Protocol.HTTP({
                url: "kml/lines.kml",
                format: new OpenLayers.Format.KML({
                    extractStyles: true, 
                    extractAttributes: true,
                    maxDepth: 2
                })
            })
        })
    ],
    center: new OpenLayers.LonLat(-112.169, 36.099),
    zoom: 11
});
票数 0
EN

Stack Overflow用户

发布于 2013-05-17 10:11:44

尝试删除策略: new OpenLayers.Strategy.Fixed()

票数 -1
EN

Stack Overflow用户

发布于 2013-05-19 12:20:12

这个怎么样:

代码语言:javascript
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
    <Folder>
    <open>1</open>
    <visibility>1</visibility>
    <GroundOverlay>
    <name>2013-05-15 12:00:00Z</name>
    <visibility>1</visibility>
    <Icon><href>http://localhost/graphics/Light_0.jpg</href></Icon>
    <LatLonBox>
    <north>9.4896821975708</north>
    <south>-66.0149154663086</south>
    <east>197.33328247070312</east>
    <west>90.69839477539062</west>
    </LatLonBox>
    <TimeStamp><when>2013-05-15T12:00:00Z</when></TimeStamp>
    </GroundOverlay>
    </Folder>
</kml>

我的朋友,这样行吗?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16589573

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文