コード例 #1
0
 void OnBuildingHighlighted(BuildingHighlight buildingHighlight)
 {
     if (!buildingHighlight.IsDiscarded())
     {
         StartCoroutine(ClearHighlight(buildingHighlight));
     }
 }
コード例 #2
0
 private void OnBuildingInformationReceived(BuildingHighlight highlight)
 {
     if (!highlight.IsDiscarded())
     {
         StartCoroutine(ClearHighlight(highlight));
     }
 }
コード例 #3
0
        private /*async Task*/ void QueryApi(Vector3 Location)
        {
            var ray = Api.Instance.SpacesApi.ScreenPointToRay(Location);


            var didIntersectBuilding = Api.Instance.BuildingsApi.TryFindIntersectionWithBuilding(ray, out LatLongAltitude intersectionPoint);

            if (didIntersectBuilding)
            {
                //  Debug.Log("didIntersectBuilding at: " + intersectionPoint);

                /* await Task.Run(() => BuildingHighlight.Create(
                 * new BuildingHighlightOptions()
                 * .HighlightBuildingAtScreenPoint(Location)
                 * .InformationOnly()
                 * .BuildingInformationReceivedHandler(this.OnBuildingInformationReceived)
                 * ));*/


                var intersectionPointLatLong = intersectionPoint.GetLatLong();


                BuildingHighlight highlight = BuildingHighlight.Create(
                    new BuildingHighlightOptions()
                    .HighlightBuildingAtScreenPoint(Location)
                    .Color(new Color(1, 1, 0, 0.5f))
                    /*.InformationOnly()*/
                    .BuildingInformationReceivedHandler(this.OnBuildingInformationReceived)
                    );
            }
        }
コード例 #4
0
        IEnumerator ClearHighlight(BuildingHighlight highlight)
        {
            yield return(new WaitForSeconds(HighlightOnScreenTime));

            Debug.Log("ClearHighlighs: ");
            highlight.Discard();
        }
コード例 #5
0
    void OnBuildingInformationReceived(BuildingHighlight highlight)
    {
        if (highlight.IsDiscarded())
        {
            return;
        }

        Debug.Log(string.Format("Received information for building with id '{0}'", highlight.GetBuildingInformation().BuildingId));
    }
コード例 #6
0
    IEnumerator Example()
    {
        Api.Instance.CameraApi.MoveTo(buildingLocation, distanceFromInterest: 1000, headingDegrees: 0, tiltDegrees: 45);

        yield return(new WaitForSeconds(4.0f));

        BuildingHighlight.Create(
            new BuildingHighlightOptions()
            .HighlightBuildingAtLocation(buildingLocation)
            .Color(new Color(1, 1, 0, 0.5f))
            .BuildingInformationReceivedHandler(OnBuildingInformationReceived)
            );
    }
コード例 #7
0
    IEnumerator Example()
    {
        Api.Instance.CameraApi.MoveTo(buildingLocation, distanceFromInterest: 500, headingDegrees: 0, tiltDegrees: 45);

        while (true)
        {
            yield return(new WaitForSeconds(4.0f));

            BuildingHighlight.Create(
                new BuildingHighlightOptions()
                .HighlightBuildingAtLocation(buildingLocation)
                .BuildingInformationReceivedHandler(this.OnBuildingInformationReceived)
                .InformationOnly()
                );
        }
    }
コード例 #8
0
    IEnumerator Example()
    {
        Api.Instance.CameraApi.MoveTo(buildingLocation, distanceFromInterest: 1000, headingDegrees: 0, tiltDegrees: 45);

        yield return(new WaitForSeconds(4.0f));

        var highlight = BuildingHighlight.Create(new BuildingHighlightOptions()
                                                 .HighlightBuildingAtLocation(buildingLocation)
                                                 .Color(NextColor()));

        while (true)
        {
            yield return(new WaitForSeconds(2.0f));

            highlight.SetColor(NextColor());
        }
    }
コード例 #9
0
    void Update()
    {
        var didTap = UpdateInputDidTap();

        if (didTap)
        {
            var ray = Api.Instance.SpacesApi.ScreenPointToRay(Input.mousePosition);

            LatLongAltitude intersectionPoint;
            var             didIntersectBuilding = Api.Instance.BuildingsApi.TryFindIntersectionWithBuilding(ray, out intersectionPoint);
            if (didIntersectBuilding)
            {
                BuildingHighlight.Create(
                    new BuildingHighlightOptions()
                    .HighlightBuildingAtScreenPoint(Input.mousePosition)
                    .Color(new Color(1, 1, 0, 0.5f))
                    .BuildingInformationReceivedHandler(this.OnBuildingInformationReceived)
                    );
            }
        }
    }
コード例 #10
0
    void OnBuildingInformationReceived(BuildingHighlight highlight)
    {
        if (highlight.IsDiscarded())
        {
            Debug.Log(string.Format("No building information was received"));
            return;
        }

        var buildingInformation = highlight.GetBuildingInformation();

        var boxAnchor = Instantiate(boxPrefab) as GameObject;

        boxAnchor.GetComponent <GeographicTransform>().SetPosition(buildingInformation.BuildingDimensions.Centroid);

        var box = boxAnchor.transform.GetChild(0);

        box.localPosition = Vector3.up * (float)buildingInformation.BuildingDimensions.TopAltitude;
        Destroy(boxAnchor, 2.0f);

        Debug.Log(string.Format("Building information received: {0}", buildingInformation.ToJson()));

        highlight.Discard();
    }
コード例 #11
0
        void OnBuildingInformationReceived(BuildingHighlight highlight)
        {
            if (highlight.IsDiscarded())
            {
                Debug.Log(string.Format("No building information was received"));
                return;
            }



            var buildingInformation = highlight.GetBuildingInformation();



            StoreBuildingData data = new StoreBuildingData();

            data.BuildingId       = buildingInformation.BuildingId;
            data.BuildingLocation = buildingInformation.BuildingDimensions.Centroid;

            BuildingStats.AddOrUpdate(data.BuildingLocation, 1, (key, oldValue) => oldValue + 1);

            // StartCoroutine(ClearHighlight(highlight));
        }
コード例 #12
0
    IEnumerator ClearHighlight(BuildingHighlight highlight)
    {
        yield return(new WaitForSeconds(4.0f));

        highlight.Discard();
    }