SuperMap.Connector.Map.MeasureArea C# (CSharp) Method

MeasureArea() public method

根据地图名称、二维地理坐标点、量算单位进行面积量算。
public MeasureArea ( string mapName, List point2Ds, Unit unit ) : MeasureAreaResult
mapName string 地图名称。【必设参数】
point2Ds List 二维地理坐标点数组。【必设参数】
unit Unit 返回结果的单位。
return SuperMap.Connector.Utility.MeasureAreaResult
        public MeasureAreaResult MeasureArea(string mapName, List<Point2D> point2Ds, Unit unit)
        {
            return _mapProvider.MeasureArea(mapName, point2Ds, unit);
        }

Usage Example

        public override void OnMapMouseMove(object sender, MouseEventArgs e)
        {
            if (!_start) return;
            PointLatLng currentPoint = this._gMapControl.FromLocalToLatLng(e.X, e.Y);

            if (flag)
            {
                _points.RemoveAt(_points.Count - 1);
            }
            if (!flag) flag = true;
            _points.Add(currentPoint);
            _polygon = new GMapPolygonExtension("", _points, 2.0F,
               System.Drawing.Color.FromArgb(100, 0, 0, 255), System.Drawing.Color.FromArgb(25, 0, 0, 255));

            if (_point2Ds.Count > 1)
            {
                List<Point2D> tempPoints = new List<Point2D>();
                tempPoints.AddRange(_point2Ds);
                double mercatorX, mercatorY;
                Helper.LonLat2Mercator(currentPoint.Lng, currentPoint.Lat, out mercatorX, out mercatorY);
                Point2D point2D = new Point2D(mercatorX, mercatorY);
                tempPoints.Add(point2D);
                Map map = new Map(_mapUrl);
                MeasureAreaResult areaResult = map.MeasureArea(_mapName, tempPoints, Unit.KILOMETER);
                if (_resultMarker == null || _gMapOverlay.Markers.Count < 1)
                {
                    _resultMarker = new GMapMarkerExtension(currentPoint);
                    _resultMarker.ToolTipMode = MarkerTooltipMode.Always;
                    _gMapOverlay.Markers.Add(_resultMarker);
                }
                _resultMarker.Position = currentPoint;
                _resultMarker.ToolTipText = string.Format("{0:f1}平方千米", areaResult.Area);
            }
            if (_gMapOverlay.Polygons.Count > 0)
            {
                _gMapOverlay.Polygons[0] = _polygon;
            }
            else
            {
                _gMapOverlay.Polygons.Add(_polygon);
            }
        }
All Usage Examples Of SuperMap.Connector.Map::MeasureArea