81 lines
2.8 KiB
C#
81 lines
2.8 KiB
C#
using CampusAppWP8.Model.GeoDb;
|
|
using CampusAppWP8.Resources;
|
|
using CampusAppWPortalLib8.Utility;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
|
|
namespace CampusAppWP8.Model.Campusmap
|
|
{
|
|
public class BuildingMapModel : MapModel
|
|
{
|
|
public BuildingMapModel(string id)
|
|
{
|
|
SpsModel buildings = XmlManager.DeserializationFileToModel<SpsModel>(Constants.FileMap_BuildingsMap);
|
|
PlaceModel building = buildings.GetPlaceById(id);
|
|
if (buildings == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
this.ImageSource = building.GetInformationsValue("ImageSource");
|
|
double tmpVal;
|
|
if (double.TryParse(building.GetInformationsValue("ImageWidth"), NumberStyles.Number, CultureInfo.InvariantCulture, out tmpVal))
|
|
{
|
|
this.ImageWidth = tmpVal;
|
|
}
|
|
|
|
if (double.TryParse(building.GetInformationsValue("ImageHeight"), NumberStyles.Number, CultureInfo.InvariantCulture, out tmpVal))
|
|
{
|
|
this.ImageHeight = tmpVal;
|
|
}
|
|
|
|
if (double.TryParse(building.GetInformationsValue("MapImageOffsetX"), NumberStyles.Number, CultureInfo.InvariantCulture, out tmpVal))
|
|
{
|
|
this.MapImageOffsetX = tmpVal;
|
|
}
|
|
|
|
if (double.TryParse(building.GetInformationsValue("MapImageOffsetY"), NumberStyles.Number, CultureInfo.InvariantCulture, out tmpVal))
|
|
{
|
|
this.MapImageOffsetY = tmpVal;
|
|
}
|
|
|
|
string pointString = building.GetInformationsValue("MapRefPoint");
|
|
pointString = pointString.TrimStart("Point(".ToArray());
|
|
pointString = pointString.TrimEnd(')');
|
|
string[] coord = pointString.Split(' ');
|
|
if (coord == null || coord.Length != 2)
|
|
{
|
|
return;
|
|
}
|
|
double x;
|
|
double y;
|
|
|
|
if (!double.TryParse(coord[0], NumberStyles.Number, CultureInfo.InvariantCulture, out x) || !double.TryParse(coord[1], NumberStyles.Number, CultureInfo.InvariantCulture, out y))
|
|
{
|
|
return;
|
|
}
|
|
|
|
this.RefPoint = new Point(x,y);
|
|
|
|
if (double.TryParse(building.GetInformationsValue("ScaleX"), NumberStyles.Number, CultureInfo.InvariantCulture, out tmpVal))
|
|
{
|
|
this.ScaleX = tmpVal;
|
|
}
|
|
|
|
if (double.TryParse(building.GetInformationsValue("ScaleY"), NumberStyles.Number, CultureInfo.InvariantCulture, out tmpVal))
|
|
{
|
|
this.ScaleY = tmpVal;
|
|
}
|
|
|
|
this.GeoOffsetX = building.GeoRefPoint.Longitude;
|
|
this.GeoOffsetY = building.GeoRefPoint.Latitude;
|
|
|
|
}
|
|
}
|
|
}
|