MapModel.cs CampusAppWP8::Model::Campusmap::MapModel CampusAppWP8::Model::Campusmap System::Windows::Controls System::Windows::Media::Imaging //----------------------------------------------------------------------- //<copyrightfile="MapModel.cs"company="BTU/IIT"> //Companycopyrighttag. //</copyright> //<author>stubbfel</author> //<sience>24.06.2013</sience> //---------------------------------------------------------------------- namespaceCampusAppWP8.Model.Campusmap { usingSystem; usingSystem.Windows; usingSystem.Windows.Controls; usingSystem.Windows.Media.Imaging; usingCampusAppWP8.Model.GeoDb; publicclassMapModel { #regionConstructors publicMapModel() { this.LoadSpatials(); } #endregion #regionProperty publicstringImageSource{get;set;} publicdoubleImageWidth{get;set;} publicdoubleImageHeight{get;set;} publicdoubleMapImageOffsetX{get;set;} publicdoubleMapImageOffsetY{get;set;} publicdoubleGeoOffsetX{get;set;} publicdoubleGeoOffsetY{get;set;} publicdoubleScaleX{get;set;} publicdoubleScaleY{get;set;} publicPointRefPoint{get;set;} publicSpsModelSpatial{get;set;} #endregion #regionMethods #regionpublic publicPointGetScrollPoint(Pointpoint) { returnthis.GetScrollPoint(point.X,point.Y); } publicPointGetScrollPoint(doublex,doubley) { x=this.RefPoint.X+this.MapImageOffsetX+x; y=this.RefPoint.Y+this.MapImageOffsetY-y; returnnewPoint(x,y); } publicImageAddPin(doublex,doubley,MapPinModel.PinTypetype) { Pointposition=newPoint(x,y); returnthis.AddPin(position,type); } publicImageAddPinFromRefPoint(doublex,doubley,MapPinModel.PinTypetype) { Pointposition=newPoint(this.RefPoint.X+x,this.RefPoint.Y-y); returnthis.AddPin(position,type); } publicImageAddPinFromRefPoint(Pointposition,MapPinModel.PinTypetype) { returnthis.AddPinFromRefPoint(position.X,position.Y,type); } publicImageAddPin(Pointposition,MapPinModel.PinTypetype) { MapPinModelpin=this.CreatePin(type); pin.Position=position; ImagepinImg=newImage(); if(pin.ImageSource!=null) { pinImg.Source=newBitmapImage(newUri(pin.ImageSource,UriKind.Relative)); pinImg.Width=pin.ImageWidth; pinImg.Height=pin.ImageHeight; } Canvas.SetTop(pinImg,pin.Position.Y); Canvas.SetLeft(pinImg,pin.Position.X); returnpinImg; } publicPointConverToPixelPoint(doublex,doubley) { Pointp=newPoint{X=this.ScaleX*x,Y=this.ScaleY*y}; returnp; } publicPointConverToPixelPoint(Pointpoint) { returnthis.ConverToPixelPoint(point.X,point.Y); } publicPointConverToMapPoint(doublex,doubley) { returnnewPoint{X=x-this.GeoOffsetX,Y=y-this.GeoOffsetY}; } publicPointConverToMapPoint(Pointpoint) { returnthis.ConverToMapPoint(point.X,point.Y); } #endregion #regionprotected protectedvirtualvoidLoadSpatials() { } #endregion #regionprivate privateMapPinModelCreatePin(MapPinModel.PinTypetype) { MapPinModelpin; switch(type) { caseMapPinModel.PinType.CurrentPosition: pin=newCurrentPositionPinModel(); break; caseMapPinModel.PinType.SearchPlace: pin=newSearchPlacePinModel(); break; default: pin=newHiddenPinPlaceModel(); break; } returnpin; } #endregion #endregion } }