我正在使用osm处理一个pathcreator。添加线条可以很好地工作,但是当一条线条很长并且放大它时,线条会以高缩放级别消失。如果视口远离线的起点和/或终点,似乎会出现这种情况。也许拆分线可能会有所帮助,但这是最大尺寸?
这是一个缩小的代码示例,如果放大到第7级,则该行消失:
$(document).ready(function() {
var map = new OpenLayers.Map('map');
var mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
map.addLayer(mapnik);
var path = new OpenLayers.Layer.Vector("path");
map.addLayer(path);
var pathStyle = {
strokeColor: "#0033ff",
strokeOpacity: 0.7,
strokeWidth: 5
};
var points = new Array(
new OpenLayers.Geometry.Point(-7856503.5146562, 880554.5664875),
new OpenLayers.Geometry.Point(8502243.5278938, 724011.5325875)
);
var line = new OpenLayers.Geometry.LineString(points);
var lineFeature = new OpenLayers.Feature.Vector(line, null, pathStyle);
path.addFeatures([lineFeature]);
map.zoomToExtent(path.getDataExtent());
});
我对osm很新,所以也许我只是弄乱了什么......有什么想法吗?提前致谢
答案 0 :(得分:0)
我正在玩萤火虫并穿过svg元素。事实证明,osm使用svg折线来制作线条。该行的值超出空间,值超过15000,这对于渲染器来说是很多。
我查看了有关此问题的错误报告: https://github.com/openlayers/openlayers/issues/617
我目前的解决方法是将线路分成100公里的和平线。这可行,但需要更多的计算。
如果某人有人在这里是一个有用的数学网站: http://www.movable-type.co.uk/scripts/latlong.html