Openlayers 如何在osm中绘制两点之间的直线
我想在osm地图的两点之间画一条线Openlayers 如何在osm中绘制两点之间的直线,openlayers,openstreetmap,Openlayers,Openstreetmap,我想在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(
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]);
我尝试了这段代码,但它不起作用,请帮助我。绘制linestring的代码是正确的。由于您并没有发布完整的代码和错误的确切描述,所以只有两个猜测。您的地图可能是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();
绘制线条字符串的代码正确。由于您并没有发布完整的代码和错误的确切描述,所以只有两个猜测。您的地图可能是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();