2013-01-03 47 views
1

要画两个点之间的直线OSM地图我如何绘制两点之间的直线OSM

map = new OpenLayers.Map(); 

var start_point = new OpenLayers.Geometry.Point(0,10); 
var end_point = new OpenLayers.Geometry.Point(30,0); 

var vector = new OpenLayers.Layer.Vector(); 
vector.addFeatures([new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString([start_point, end_point]))]); 
map.addLayers([vector]); 

我试试这个代码,但它没有工作,所以请帮助我。

回答

1

绘制线串的代码是正确的。由于您没有发布完整的代码和错误的确切描述,所以只有两个猜测。您的地图可能在900913投影中,并且坐标以WGS表示。变换他们:

var start_point = new OpenLayers.Geometry.Point(0,10); 
var end_point = new OpenLayers.Geometry.Point(30,0); 

start_point.transform(
    new OpenLayers.Projection("EPSG:4326"), 
    new OpenLayers.Projection("EPSG:900913") 
); 
end_point.transform(
    new OpenLayers.Projection("EPSG:4326"), 
    new OpenLayers.Projection("EPSG:900913") 
); 

此外,您可能需要适合的观点:

map.zoomToMaxExtent(); 
相关问题