コード例 #1
0
        public PictureDTO(GSPicture picture)
        {
            filterResults = new List <FilterResultDTO>();
//            this.imageID = picture.ID;
            this.panoID      = picture.ID;
            this.heading     = picture.heading;
            this.base64image = picture.imageURI;
        }
コード例 #2
0
        public void getImagesForPoints(ICollection <StreetPointModel> points)
        {
            for (int i = 0; i < points.Count() - 1; i++)
            {
                var point = points.ElementAt(i);
                if (point.GSPanorama == null)
                {
                    continue;
                }
                var nextPoint = points.ElementAt(i + 1);
                var vectorA   = new Vector2D(point.lng, point.lat);
                var vectorB   = new Vector2D(nextPoint.lng, nextPoint.lat);
                //if (point.GSPanorama.GSPicture != null && point.GSPanorama.GSPicture.Count > 0 && Math.Abs(point.GSPanorama.frontAngle - estimatedAngle) < 0.00000001) continue;
                //point.GSPanorama.frontAngle = GSMiner.OldAngleBetweenPoints(vectorA, vectorB);
                point.GSPanorama.frontAngle = GSMiner.AngleBetweenPoints(vectorA, vectorB);
                if (point.GSPanorama.GSPicture == null)
                {
                    point.GSPanorama.GSPicture = new List <GSPicture>();
                }
                var pano = point.GSPanorama.panoID;
                if (pano != null && pano.Length == 22)
                {
                    GSQueryBuilder querybuilder = new GSQueryBuilder(pano, 640, 640, point.GSPanorama.frontAngle, point.GSPanorama.pitch, key);
                    var            picture      = new GSPicture();

                    string finalURL = gsURL + querybuilder.getQueryPanoId();
                    picture.imageURI = DownloadBase64ImageFromURI(finalURL);

                    //picture.imageURI = "Testando";
                    picture.heading = point.GSPanorama.frontAngle;
                    point.GSPanorama.GSPicture.Add(picture);
                }
            }
            var lastPoint = points.ElementAt(points.Count - 1);

            if (lastPoint.GSPanorama == null)
            {
                return;
            }
            var secondToLastPoint = points.LastOrDefault(p => p.GSPanorama != null && p != lastPoint);

            if (secondToLastPoint == null)
            {
                return;
            }
            var lastAngle = secondToLastPoint.GSPanorama.frontAngle;

            if (lastPoint.GSPanorama.GSPicture == null)
            {
                lastPoint.GSPanorama.GSPicture = new List <GSPicture>();
            }
            lastPoint.GSPanorama.frontAngle = lastAngle;
            var lastPano = lastPoint.GSPanorama.panoID;

            if (lastPano != null)
            {
                GSQueryBuilder querybuilder = new GSQueryBuilder(lastPano, 640, 640, lastPoint.GSPanorama.frontAngle, lastPoint.GSPanorama.pitch, key);
                var            picture      = new GSPicture();

                string finalURL = gsURL + querybuilder.getQueryPanoId();
                picture.imageURI = DownloadBase64ImageFromURI(finalURL);

                picture.heading = lastPoint.GSPanorama.frontAngle;
                lastPoint.GSPanorama.GSPicture.Add(picture);
            }
        }
コード例 #3
0
 public static PictureDTO initializer(GSPicture picture)
 {
     return(new PictureDTO(picture));
 }