OpenLayers OL-Ext绘制路径,带有测量工具提示

时间:2018-04-04 16:27:13

标签: openlayers openlayers-3

我正在使用OL-Ext并使用GPS在OpenLayers 3地图上绘制多边形和线条。

我试图在"跟随"很活跃。

我在绘制地图时实现了这一点,但无法将其转换为OL-Ext工具。

这是我在地图上绘画时的表现......

webMapValues.drawObj.on('drawstart',
      function (evt) {
             if (webMapValues.activeDrawControl == "Ruler") {
                            // set sketch
                            webMapValues.sketch = evt.feature;

                            /** @type {ol.Coordinate|undefined} */
                            var tooltipCoord = evt.coordinate;

                            listener = webMapValues.sketch.getGeometry().on('change', function (evt) {
                                var geom = evt.target;
                                var output;
                                if (geom instanceof ol.geom.Polygon) {
                                    webMapValues.rulerLength = formatArea(geom);
                                    tooltipCoord = geom.getInteriorPoint().getCoordinates();
                                } else if (geom instanceof ol.geom.LineString) {
                                    webMapValues.rulerLength = rcisMapService.formatLength(geom);
                                    tooltipCoord = geom.getLastCoordinate();
                                }
                                webMapValues.measureTooltipElement.innerHTML = webMapValues.rulerLength;
                                webMapValues.measureTooltip.setPosition(tooltipCoord);
                         });
                     }

}, this);

我想用OL-Ext做同样的事情,这是我到目前为止的地方。

webMapValues.geoTrackActive.on("tracking", function (e) {
                $("#accuraty").width((e.geolocation.getAccuracy()));
                webMapValues.geoGauge.val(e.geolocation.getAccuracy());
                $("#heading").val(e.geolocation.getHeading());
                $("#z").val(e.geolocation.getAltitude());


                    // set sketch
                    webMapValues.sketch = e.feature;

                    /** @type {ol.Coordinate|undefined} */
                    var tooltipCoord = e.feature.getGeometry.getCoordinates();

                    listener = webMapValues.sketch.getGeometry().on('change', function (e) {
                        var geom = e.geolocation.target;
                        var output;
                        if (geom instanceof ol.geom.Polygon) {
                            webMapValues.rulerLength = formatArea(geom);
                            tooltipCoord = geom.getInteriorPoint().getCoordinates();
                        } else if (geom instanceof ol.geom.LineString) {
                            webMapValues.rulerLength = rcisMapService.formatLength(geom);
                            tooltipCoord = geom.getLastCoordinate();
                        }
                        webMapValues.measureTooltipElement.innerHTML = webMapValues.rulerLength;
                        webMapValues.measureTooltip.setPosition(tooltipCoord);
                    });
 },this);

我目前无法从" e"

我已经尝试了几次迭代
 var tooltipCoord = e.feature.getGeometry.getCoordinates();

但似乎无法访问坐标。

感谢任何帮助!

更新

这使用ol.interaction.GeolocationDraw

1 个答案:

答案 0 :(得分:0)

这就是工作的Ol-ext GPS多边形绘制工具提示代码的样子......

g.Dispose