public double PoligonDistance(Coordinate coordinate) { double res = 0; for (var i = 0; i < Count; i++) { var distance = this[i].LineDistance(coordinate); if (i == 0 || distance < res) res = distance; } return res; }
public GraphicLayer(int pWidth, int pHeight, Coordinate centerCoordinate, int pLevel) { Width = pWidth; Height = pHeight; _centerCoordinate = centerCoordinate; _level = pLevel; PiFormat = ObtainCompatiblePixelFormat(); Resize(false); _drawLayerEvent += OnIvalidateLayer; }
public bool Add(Coordinate coordinate) { if (Count > 2) { var line1 = new CoordinateRectangle(First, coordinate); var line2 = new CoordinateRectangle(Last, coordinate); for (var i = 0; i < Count - 1; i++) { if (GoogleMapUtilities.CheckLinesInterseption(this[i], line1) || GoogleMapUtilities.CheckLinesInterseption(this[i], line2)) return false; } } Coordinates.Add(coordinate); return true; }
protected virtual bool SetCenterCoordinate(Coordinate center, int level) { if (_level != level || new GoogleCoordinate(_centerCoordinate, level).CompareTo( new GoogleCoordinate(center, level)) != 0) { _centerCoordinate = center; _level = level; TranslateCoords(); Update(new Rectangle(0, 0, Width, Height)); return true; } return false; }
public InterseptResult PointContains(Coordinate coordinate) { //to do return InterseptResult.None; }