线串不在 openstreetmap 上绘制

Linestring does not draw on openstreetmap

var point1 = new ol.geom.Point(ol.proj.transform([3.8, 51.20], 'EPSG:4326', 'EPSG:3857'));
var point2 = new ol.geom.Point(ol.proj.transform([4, 51], 'EPSG:4326', 'EPSG:3857'));

var points = [point1,point2];
var myLine = new ol.geom.LineString(points);

var myproj = myView.getProjection();
var length =  ol.sphere.getLength(myLine);

var segment = new ol.Feature({
  geometry: myLine,
  style:myStyle
});

myVectorSource.addFeature(segment);

问题:线没有画出来,mylength仍然是0,而myproj returns EPSG:4326.

线串是根据点坐标而非点几何图形创建的

var point1 = ol.proj.transform([3.8, 51.20], 'EPSG:4326', 'EPSG:3857');
var point2 = ol.proj.transform([4, 51], 'EPSG:4326', 'EPSG:3857');

var map = new ol.Map({
  target: 'map',
  layers: [
    new ol.layer.Tile({
      source: new ol.source.OSM()
    })
  ],
  view: new ol.View({
    center: ol.proj.fromLonLat([3.8, 51.1]),
    zoom: 10
  })
});
var myView = map.getView();
var myStyle = new ol.style.Style({
  stroke: new ol.style.Stroke({
    color: 'blue',
    width: 5
  })
});
var myVectorSource = new ol.source.Vector();
var point1 = ol.proj.transform([3.8, 51.20], 'EPSG:4326', 'EPSG:3857');
var point2 = ol.proj.transform([4, 51], 'EPSG:4326', 'EPSG:3857');
var points = [point1, point2];
var myLine = new ol.geom.LineString(points);

var myproj = myView.getProjection();
var length = ol.sphere.getLength(myLine);

var segment = new ol.Feature({
  geometry: myLine,
  style: myStyle
});

myVectorSource.addFeature(segment);
// Create vector layer attached to the vector source.
var vectorLayer = new ol.layer.Vector({
  source: myVectorSource,
  style: myStyle
});

// Add the vector layer to the map.
map.addLayer(vectorLayer);
html,
body,
.map {
  height: 100%;
  width: 100%;
}
<link rel="stylesheet" href="https://openlayers.org/en/v6.3.1/css/ol.css" type="text/css">
<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.3.1/build/ol.js"></script>
<title>OpenLayers example</title>
<div id="map" class="map"></div>