从geojson绘制openlayers多段线

从geojson绘制openlayers多段线,openlayers,geojson,polyline,Openlayers,Geojson,Polyline,我正在尝试自定义此示例: 但一直以来: ol.js?20180608153258:47 Uncaught TypeError: a.addEventListener is not a function at y (ol.js?20180608153258:47) at Hk.k.Oe (ol.js?20180608153258:302) at Hk.b (ol.js?20180608153258:46) at Hk.Sc.b (ol.js?20180608153

我正在尝试自定义此示例:

但一直以来:

ol.js?20180608153258:47 Uncaught TypeError: a.addEventListener is not a function
    at y (ol.js?20180608153258:47)
    at Hk.k.Oe (ol.js?20180608153258:302)
    at Hk.b (ol.js?20180608153258:46)
    at Hk.Sc.b (ol.js?20180608153258:49)
    at Yc (ol.js?20180608153258:51)
    at Hk.k.set (ol.js?20180608153258:51)
    at Hk.k.H (ol.js?20180608153258:52)
    at new Hk (ol.js?20180608153258:301)
    at HTMLDocument.<anonymous> (history-map:1372)
    at i (jquery-2.2.3.min.js:2)
    at Object.fireWith [as resolveWith] (jquery-2.2.3.min.js:2)
    at Function.ready (jquery-2.2.3.min.js:2)
    at HTMLDocument.J (jquery-2.2.3.min.js:2)
ol.js?20180608153258:47未捕获类型错误:a.addEventListener不是函数
在y(ol.js?20180608153258:47)
在Hk.k.Oe(ol.js?20180608153258:302)
在香港国际机场(ol.js?20180608153258:46)
香港科学馆(ol.js?20180608153258:49)
在Yc(ol.js?20180608153258:51)
香港站(ol.js?20180608153258:51)
香港时间(ol.js?20180608153258:52)
在新香港(ol.js?20180608153258:301)
在HTMLDocument。(历史地图:1372)
at i(jquery-2.2.3.min.js:2)
在Object.fireWith[as resolveWith](jquery-2.2.3.min.js:2)
在Function.ready(jquery-2.2.3.min.js:2)
在HTMLDocument.J(jquery-2.2.3.min.js:2)

有人能说出问题出在哪里?如何从geojson中划出一条线。

您的主要问题是使用
ol.format.Polyline
,而您应该使用
ol.format.geojson

提示是关于以下代码的

var route = /** @type {ol.geom.LineString} */ (new ol.format.GeoJSON().readFeature(JSON.parse(strGeoJson).features[0], {
  dataProjection: 'EPSG:4326',
  featureProjection: 'EPSG:3857'
})).getGeometry();
JSON.parse(strGeoJson).features[0]
为您提供GeoJSON功能。然后解析它并从中获得
ol.geom.LineString
(使用
getGeometry()


你可以通过你的代码看到(我已经改变了中心,以适合你的样本和使用OpenStreetMap而不是Bing的背景地图)

你的主要问题是你使用了
ol.format.Polyline
,而你应该使用
ol.format.GeoJSON

提示是关于以下代码的

var route = /** @type {ol.geom.LineString} */ (new ol.format.GeoJSON().readFeature(JSON.parse(strGeoJson).features[0], {
  dataProjection: 'EPSG:4326',
  featureProjection: 'EPSG:3857'
})).getGeometry();
JSON.parse(strGeoJson).features[0]
为您提供GeoJSON功能。然后解析它并从中获得
ol.geom.LineString
(使用
getGeometry()

你可以通过你的代码看到(我已经改变了中心以适应你的样本和背景地图,用OpenStreetMap代替Bing)