【发布时间】:2015-09-20 16:49:41
【问题描述】:
我正在查看来自 openlayers 本身的 this 示例。您可以通过单击底部的“kml-layer.js”链接查看源代码。我这样做时的源代码如下所示:
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
});
这似乎只有在通过 HTTP 获取 kml 时才有效,但如果我想在自己处理地图时从自己的硬盘驱动器获取它怎么办?我似乎找不到太多关于如何执行此操作的文档,有人可以帮忙吗?
谢谢
【问题讨论】:
-
这不是特定于 OpenLayers,这就是 Web 浏览器的一般工作方式——您只能通过 HTTP 请求数据。您需要在本地运行 HTTP 服务器以公开您保存数据的任意文件夹。
-
谢谢,kryger,有没有一种快速简便的方法可以“欺骗”文件夹,使其表现得像 HTTP 服务器一样用于测试目的,还是比这更深入?
-
为了在 localhost(即 127.0.0.1)上进行快速测试,您可以使用 Python 的内置 httpserver:stackoverflow.com/q/4351601/1240557。请注意,将其暴露给外界会很棘手,如果您最终计划将项目转移到生产环境中,则应该查看 Apache/nginx/lighttpd。
标签: javascript gis openlayers kml