Javascript 如何在OpenLayers中沿道路绘制直线
在OSM基础层上,我在3个点之后画了一条线,点和对象/方法OpenLayers.Geometry.LineString都有一个数组 现在,我想让这条线沿着这条路走。有些人花了几个小时上网,根本找不到解决办法。这有什么目的吗?我必须先从瓷砖上获取一些信息吗 我可以请你帮忙吗 下面是我画直线的方法Javascript 如何在OpenLayers中沿道路绘制直线,javascript,openlayers,openstreetmap,Javascript,Openlayers,Openstreetmap,在OSM基础层上,我在3个点之后画了一条线,点和对象/方法OpenLayers.Geometry.LineString都有一个数组 现在,我想让这条线沿着这条路走。有些人花了几个小时上网,根本找不到解决办法。这有什么目的吗?我必须先从瓷砖上获取一些信息吗 我可以请你帮忙吗 下面是我画直线的方法 function init() { var epsg4326 = new OpenLayers.Projection("EPSG:4326"); var map = new OpenLa
function init() {
var epsg4326 = new OpenLayers.Projection("EPSG:4326");
var map = new OpenLayers.Map('map');
var osmLayer = new OpenLayers.Layer.OSM("OSM");
map.addLayer(osmLayer);
var center = new OpenLayers.LonLat(-71.6, -33.7).transform(epsg4326,map.getProjectionObject());
map.setCenter(center,4);
var points = new Array(
new OpenLayers.Geometry.Point(-71.26,-32.47),
new OpenLayers.Geometry.Point(-71.30,-32.97),
new OpenLayers.Geometry.Point(-70.81,-32.89)
);
var myLine = new OpenLayers.Geometry.LineString(points).transform(epsg4326, map.getProjectionObject());
var myLineStyle = {strokeColor:"#0500bd", strokeWidth:3};
var myFeature = new OpenLayers.Feature.Vector(myLine, {}, myLineStyle);
var myVector = new OpenLayers.Layer.Vector("line test");
myVector.addFeatures([myFeature]);
map.addLayers([myVector]);
}
通常OpenLayers只显示光栅平铺,但无法从中提取道路几何体信息。为此,您需要原始数据或其他预处理数据。OpenLayers和传单都可以显示GPX文件。所以一旦你有了一个GPX文件,其他一切都会变得简单 不幸的是,您没有告诉我们您是否要沿着它走一条特定的道路(基于名称/地址?还是基于坐标?) 要从OpenStreetMap中检索原始地理信息,有一个官方的,还有一个通常要快得多的,并且允许指定更详细的信息。但是显示这些原始数据首先需要大量的预处理 例如,如果要显示路线,则可以选择OSM可用的路线之一。它们中的许多都提供了计算出的路由的GPX导出,然后可以与OpenLayers一起使用
还有一些选项,但在不知道您实际要做什么的情况下在此处展示这些选项将是浪费时间。您可以请求将此问题迁移到,因为这不是编程问题。但是,我认为不可能使矢量与基础光栅分幅对齐。也许是一些基于画布的魔术,但我怀疑这是一个非常实用的解决方案。我在这里找到了一些信息: