void OnBuildingHighlighted(BuildingHighlight buildingHighlight) { if (!buildingHighlight.IsDiscarded()) { StartCoroutine(ClearHighlight(buildingHighlight)); } }
private void OnBuildingInformationReceived(BuildingHighlight highlight) { if (!highlight.IsDiscarded()) { StartCoroutine(ClearHighlight(highlight)); } }
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) ); } }
IEnumerator ClearHighlight(BuildingHighlight highlight) { yield return(new WaitForSeconds(HighlightOnScreenTime)); Debug.Log("ClearHighlighs: "); highlight.Discard(); }
void OnBuildingInformationReceived(BuildingHighlight highlight) { if (highlight.IsDiscarded()) { return; } Debug.Log(string.Format("Received information for building with id '{0}'", highlight.GetBuildingInformation().BuildingId)); }
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) ); }
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() ); } }
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()); } }
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) ); } } }
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(); }
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)); }
IEnumerator ClearHighlight(BuildingHighlight highlight) { yield return(new WaitForSeconds(4.0f)); highlight.Discard(); }