经过三天的徒劳寻找(学习书籍OpenLayers3,Javascript和互联网),我在这里提出了我的问题。
问题是我无法得到相对的url在OpenLayers3中工作。这里我举一个例子:
在一个名为sandbox的地图/目录中有一个OpenLayersscript。这个脚本的HTML部分中的相对url正在工作,包括javascript到ol.js中的相对url。
问题是脚本的Javascript部分中的相对url不能工作。只有当目标文件(nutsv9_lea.geojson)位于包含OpenLayersscript本身的映射/目录下的映射/目录中时,它才能工作,但只在火狐中工作,而不是在Google和InternetExplorer中。
映射沙箱(包含此OpenLayersfile)位于映射/目录结构中: C:/ol3_samples/sandbox,目标文件(nutsv9_lea.geojson)位于映射/目录结构中:C:/OL3_samples/assets/data/nusv9_lea.Geojson
我使用的相对url是: url:‘../assets/data/nutsv9 9_lea.Geojson’
唯一的工作解决方案(上面只在Firefox中提到)是一个相对的url,目标指向地图/目录结构中的一个名为'data‘的底层地图/目录,其中包含目标文件: url:’data/nutsv9 9_lea.Geojson‘。
我做错什么了还是忽略了?
<script>
var vectorSource = new ol.source.GeoJSON({
projection: 'EPSG:3857',
//not working relative url:
// url: '../assets/data/nutsv9_lea.geojson'
//working url (with the targetfile in a directory below the directory containing this script) but only working in Firefox and not working in Chrome and InternetExplorer
url: 'data/nutsv9_lea.geojson'
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
var center = ol.proj.transform([5.231819, 52.091852], 'EPSG:4326', 'EPSG:3857');
var view = new ol.View({
center: center,
zoom: 5
});
var map = new ol.Map({
target: 'map',
layers: [vectorLayer],
view: view
});
</script>发布于 2016-10-05 15:54:01
我是这本书的作者之一,这本书是摘录的来源。您需要运行本地服务器(通过http://而不是file://).提供文件)
你只需要看第117页。
它告诉您可以运行(只要您有Python)
python -m SimpleHTTPServer或如果您从Packt网站获得示例,请运行(如果有节点)
node index.js
对于NodeJS和Python,都有安装说明(第417和418页),
对于Python和不拥有这本书的人,请访问http://docs.python-guide.org/en/latest/starting/installation/
https://stackoverflow.com/questions/35540927
复制相似问题