简体   繁体   English

如何在 OpenLayers 中向 LineString 添加文本?

[英]How to add text to LineString in OpenLayers?

We use OpenLayers 4.6.5.我们使用 OpenLayers 4.6.5。

The code looks as following:代码如下所示:

const line = new Feature({
  geometry: new LineString(points)
})
line.setStyle(
  new Style({
    fill: new Fill({ color: 'black' }),
    stroke: new Stroke({ color: 'black', width: 2 }),
    text: new Text({
      text: '1',
      font: '18px "Roboto", Helvetica Neue, Helvetica, Arial, sans-serif',
      fill: new Fill({ color: 'black' }),
      stroke: new Stroke({ color: 'black', width: 2 })
    })
  })
)

this.vectorLayer.getSource().addFeature(line)

But, I'm getting the error:但是,我收到错误:

Uncaught TypeError: textStyle.getFill is not a function
at _ol_render_canvas_TextReplay_.setTextStyle (textreplay.js?3128:470)
at _ol_renderer_vector_.renderLineStringGeometry_ (vector.js?98c2:183)
at Object._ol_renderer_vector_.renderFeature_ (vector.js?98c2:121)
at Object._ol_renderer_vector_.renderFeature (vector.js?98c2:94)
at _ol_renderer_canvas_VectorLayer_.renderFeature (vectorlayer.js?c03d:429)
at _ol_renderer_canvas_VectorLayer_.eval (vectorlayer.js?c03d:378)
at _ol_renderer_canvas_VectorLayer_.prepareFrame (vectorlayer.js?c03d:395)
at _ol_renderer_canvas_Map_.renderFrame (map.js?1103:183)
at _ol_Map_._ol_PluggableMap_.renderFrame_ (pluggablemap.js?0fa0:1180)
at _ol_Map_.eval (pluggablemap.js?0fa0:87)      

Without text settings, there is no error, just a line.没有文字设置,没有错误,只有一行。

To work correctly Text needs to have been imported correctly, for example要正常工作Text需要已正确导入,例如

import {Text} from 'ol/style';

or或者

import Text from 'ol/style/Text';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM