public PositionAssociation(string associationName, LatLonZoom imagePosition, LatLonZoom sourcePosition, LatLonZoom globalPosition, DirtyEvent dirtyEvent)
		{
			this.dirtyEvent = dirtyEvent;
			this._pinId = -1;
			this._associationName = associationName;
			this._imagePosition = new DisplayablePosition(imagePosition);
			this._sourcePosition = new DisplayablePosition(sourcePosition);
			this._globalPosition = new DisplayablePosition(globalPosition);
		}
 public PositionAssociation(string associationName, LatLonZoom imagePosition, LatLonZoom sourcePosition, LatLonZoom globalPosition, DirtyEvent dirtyEvent)
 {
     this.dirtyEvent       = dirtyEvent;
     this._pinId           = -1;
     this._associationName = associationName;
     this._imagePosition   = new DisplayablePosition(imagePosition);
     this._sourcePosition  = new DisplayablePosition(sourcePosition);
     this._globalPosition  = new DisplayablePosition(globalPosition);
 }
        public PositionAssociation(MashupParseContext context, DirtyEvent dirtyEvent)
        {
            this.dirtyEvent = dirtyEvent;
            XMLTagReader xMLTagReader = context.NewTagReader(PositionAssociationTag);

            _pinId = -1;
            context.GetAttributeInt(pinIdAttr, ref _pinId);
            if ((associationName = context.reader.GetAttribute(associationNameAttr)) == null)
            {
                associationName = "";
            }

            while (xMLTagReader.FindNextStartTag())
            {
                if (xMLTagReader.TagIs(SourcePositionTag))
                {
                    XMLTagReader xMLTagReader2 = context.NewTagReader(SourcePositionTag);
                    while (xMLTagReader2.FindNextStartTag())
                    {
                        if (xMLTagReader2.TagIs(DisplayablePosition.GetXMLTag(context.version)))
                        {
                            _sourcePosition =
                                new DisplayablePosition(context, ContinuousCoordinateSystem.theInstance);
                            _imagePosition = new DisplayablePosition(_sourcePosition.pinPosition);
                        }
                    }
                }
                else
                {
                    if (xMLTagReader.TagIs(GlobalPositionTag))
                    {
                        XMLTagReader xMLTagReader3 = context.NewTagReader(GlobalPositionTag);
                        while (xMLTagReader3.FindNextStartTag())
                        {
                            if (xMLTagReader3.TagIs(DisplayablePosition.GetXMLTag(context.version)))
                            {
                                _globalPosition =
                                    new DisplayablePosition(context, MercatorCoordinateSystem.theInstance);
                            }
                        }
                    }
                }
            }

            if (_sourcePosition == null || _globalPosition == null)
            {
                throw new Exception(string.Format("Pin {0} does not have a source and/or global position defined",
                                                  associationName));
            }
        }
		public void SetErrorPosition(DisplayablePosition.ErrorMarker errorMarker, LatLon errorPosition)
		{
			this._errorPositions[(int)errorMarker] = new ErrorPosition(errorPosition);
		}
		public ErrorPosition GetErrorPosition(DisplayablePosition.ErrorMarker errorMarker)
		{
			return this._errorPositions[(int)errorMarker];
		}
Beispiel #6
0
 private void DrawErrorPosition(PositionAssociationView pav, DisplayablePosition.ErrorMarker errorMarker, Pen pen, Brush brush, PaintSpecification e)
 {
     ErrorPosition errorPosition = pav.position.GetErrorPosition(errorMarker);
     if (errorPosition == null)
     {
         return;
     }
     PointF pointF = this.MapPositionToPoint(pav.position.pinPosition.latlon);
     PointF pointF2 = this.MapPositionToPoint(errorPosition.latlon);
     RectangleF rectangleF = new RectangleF((float)(e.ClipRectangle.X - e.ClipRectangle.Width * 2), (float)(e.ClipRectangle.Y - e.ClipRectangle.Height * 2), (float)(e.ClipRectangle.Width * 5), (float)(e.ClipRectangle.Height * 5));
     if (!rectangleF.Contains(pointF) || !rectangleF.Contains(pointF2))
     {
         return;
     }
     if (!pav.position.invertError)
     {
         e.Graphics.DrawLine(pen, pointF, pointF2);
         e.Graphics.FillEllipse(brush, pointF2.X - 6f, pointF2.Y - 6f, 12f, 12f);
         return;
     }
     e.Graphics.DrawEllipse(pen, pointF.X - 20f, pointF.Y - 20f, 40f, 40f);
 }
 public void UpdateAssociation(LatLonZoom sourceLLZ, LatLonZoom globalLLZ)
 {
     _sourcePosition = new DisplayablePosition(sourceLLZ);
     _globalPosition = new DisplayablePosition(globalLLZ);
     dirtyEvent.SetDirty();
 }
		public void UpdateAssociation(LatLonZoom sourceLLZ, LatLonZoom globalLLZ)
		{
			this._sourcePosition = new DisplayablePosition(sourceLLZ);
			this._globalPosition = new DisplayablePosition(globalLLZ);
			this.dirtyEvent.SetDirty();
		}
		public PositionAssociation(MashupParseContext context, DirtyEvent dirtyEvent)
		{
			this.dirtyEvent = dirtyEvent;
			XMLTagReader xMLTagReader = context.NewTagReader(PositionAssociation.PositionAssociationTag);
			this._pinId = -1;
			context.GetAttributeInt(PositionAssociation.pinIdAttr, ref this._pinId);
			if ((this.associationName = context.reader.GetAttribute(PositionAssociation.associationNameAttr)) == null)
			{
				this.associationName = "";
			}
			while (xMLTagReader.FindNextStartTag())
			{
				if (xMLTagReader.TagIs(PositionAssociation.SourcePositionTag))
				{
					XMLTagReader xMLTagReader2 = context.NewTagReader(PositionAssociation.SourcePositionTag);
					while (xMLTagReader2.FindNextStartTag())
					{
						if (xMLTagReader2.TagIs(DisplayablePosition.GetXMLTag(context.version)))
						{
							this._sourcePosition = new DisplayablePosition(context, ContinuousCoordinateSystem.theInstance);
							this._imagePosition = new DisplayablePosition(this._sourcePosition.pinPosition);
						}
					}
				}
				else
				{
					if (xMLTagReader.TagIs(PositionAssociation.GlobalPositionTag))
					{
						XMLTagReader xMLTagReader3 = context.NewTagReader(PositionAssociation.GlobalPositionTag);
						while (xMLTagReader3.FindNextStartTag())
						{
							if (xMLTagReader3.TagIs(DisplayablePosition.GetXMLTag(context.version)))
							{
								this._globalPosition = new DisplayablePosition(context, MercatorCoordinateSystem.theInstance);
							}
						}
					}
				}
			}
			if (this._sourcePosition == null || this._globalPosition == null)
			{
				throw new Exception(string.Format("Pin {0} does not have a source and/or global position defined", this.associationName));
			}
		}