void Start() { camapi = Api.Instance.CameraApi; cam = transform.GetComponentInChildren <Camera>(); float latitude = PlayerPrefs.GetFloat("latitude"); float longitude = PlayerPrefs.GetFloat("longitude"); GameObject.Find("WrldMap").GetComponentInChildren <WrldMap>().m_latitudeDegrees = latitude; GameObject.Find("WrldMap").GetComponentInChildren <WrldMap>().m_longitudeDegrees = longitude; Api.Instance.SetOriginPoint(LatLongAltitude.FromDegrees(latitude, longitude, 500)); cam.farClipPlane = cam.farClipPlane * 2 / 5; Input.simulateMouseWithTouches = false; spawn(); }
public ApiImplementation(string apiKey, CoordinateSystem coordinateSystem, Transform parentTransformForStreamedObjects, ConfigParams configParams) { m_nativePluginRunner = new NativePluginRunner(apiKey, parentTransformForStreamedObjects, configParams); m_coordinateSystem = coordinateSystem; var defaultStartingLocation = LatLongAltitude.FromDegrees( configParams.LatitudeDegrees, configParams.LongitudeDegrees, coordinateSystem == CoordinateSystem.ECEF ? configParams.DistanceToInterest : 0.0); if (coordinateSystem == CoordinateSystem.ECEF) { m_originECEF = defaultStartingLocation.ToECEF(); } else { m_frame = new UnityWorldSpaceCoordinateFrame(defaultStartingLocation); } m_cameraController = new CameraApi(this); }
void PlayTransitionNum(int num) { var api = Api.Instance; switch (num) { case 0: var transamericaPyramidSanFrancisco = LatLong.FromDegrees(37.7951572, -122.4028915); api.CameraApi.AnimateTo(transamericaPyramidSanFrancisco, distanceFromInterest: 1500, headingDegrees: 90, pitchDegrees: 45); break; case 1: var ferryBuildingSanfrancisco = LatLong.FromDegrees(37.7955683, -122.3935391); api.CameraApi.AnimateTo(ferryBuildingSanfrancisco, headingDegrees: 270, pitchDegrees: 0); break; case 2: var rinconParkSanFrancisco = LatLong.FromDegrees(37.791542, -122.3902725); var cameraPosition = LatLongAltitude.FromDegrees(37.791542 + 0.005, -122.3902725, 500.0); api.CameraApi.AnimateTo(rinconParkSanFrancisco, cameraPosition); break; } }
public ApiImplementation(string apiKey, CoordinateSystem coordinateSystem, Transform parentTransformForStreamedObjects, ConfigParams configParams) { var textureLoadHandler = new TextureLoadHandler(); var materialRepository = new MaterialRepository(configParams.MaterialsDirectory, configParams.OverrideLandmarkMaterial, textureLoadHandler); var terrainCollision = (configParams.Collisions.TerrainCollision) ? CollisionStreamingType.SingleSidedCollision : CollisionStreamingType.NoCollision; var roadCollision = (configParams.Collisions.RoadCollision) ? CollisionStreamingType.DoubleSidedCollision : CollisionStreamingType.NoCollision; var buildingCollision = (configParams.Collisions.BuildingCollision) ? CollisionStreamingType.SingleSidedCollision : CollisionStreamingType.NoCollision; m_terrainStreamer = new GameObjectStreamer("Terrain", materialRepository, parentTransformForStreamedObjects, terrainCollision); m_roadStreamer = new GameObjectStreamer("Roads", materialRepository, parentTransformForStreamedObjects, roadCollision); m_buildingStreamer = new GameObjectStreamer("Buildings", materialRepository, parentTransformForStreamedObjects, buildingCollision); m_highlightStreamer = new GameObjectStreamer("Highlights", materialRepository, parentTransformForStreamedObjects, CollisionStreamingType.NoCollision); m_mapGameObjectScene = new MapGameObjectScene(m_terrainStreamer, m_roadStreamer, m_buildingStreamer, m_highlightStreamer); m_nativePluginRunner = new NativePluginRunner(apiKey, textureLoadHandler, materialRepository, m_mapGameObjectScene, configParams); m_coordinateSystem = coordinateSystem; var defaultStartingLocation = LatLongAltitude.FromDegrees( configParams.LatitudeDegrees, configParams.LongitudeDegrees, coordinateSystem == CoordinateSystem.ECEF ? configParams.DistanceToInterest : 0.0); if (coordinateSystem == CoordinateSystem.ECEF) { m_originECEF = defaultStartingLocation.ToECEF(); } else { m_frame = new UnityWorldSpaceCoordinateFrame(defaultStartingLocation); } m_cameraController = new CameraApi(this); m_buildingsApi = new BuildingsApi(m_highlightStreamer); m_geographicApi = new GeographicApi(); }
public ApiImplementation(string apiKey, CoordinateSystem coordinateSystem, Transform parentTransformForStreamedObjects, ConfigParams configParams) { var textureLoadHandler = new TextureLoadHandler(); var materialRepository = new MaterialRepository(configParams.MaterialsDirectory, configParams.OverrideLandmarkMaterial, textureLoadHandler); var terrainCollision = (configParams.Collisions.TerrainCollision) ? CollisionStreamingType.SingleSidedCollision : CollisionStreamingType.NoCollision; var roadCollision = (configParams.Collisions.RoadCollision) ? CollisionStreamingType.DoubleSidedCollision : CollisionStreamingType.NoCollision; var buildingCollision = (configParams.Collisions.BuildingCollision) ? CollisionStreamingType.SingleSidedCollision : CollisionStreamingType.NoCollision; m_root = CreateRootObject(parentTransformForStreamedObjects); m_interestPointProvider = new InterestPointProvider(m_root.transform); m_terrainStreamer = new GameObjectStreamer("Terrain", materialRepository, m_root.transform, terrainCollision, true); m_roadStreamer = new GameObjectStreamer("Roads", materialRepository, m_root.transform, roadCollision, true); m_buildingStreamer = new GameObjectStreamer("Buildings", materialRepository, m_root.transform, buildingCollision, true); m_highlightStreamer = new GameObjectStreamer("Highlights", materialRepository, m_root.transform, CollisionStreamingType.NoCollision, false); m_indoorMapStreamer = new GameObjectStreamer("IndoorMaps", materialRepository, m_root.transform, CollisionStreamingType.NoCollision, false); var indoorMapMaterialRepository = new IndoorMapMaterialRepository(); var indoorMapStreamedTextureObserver = new IndoorMapStreamedTextureObserver(indoorMapMaterialRepository); var indoorMapTextureStreamingService = new IndoorMapTextureStreamingService(textureLoadHandler, indoorMapStreamedTextureObserver); m_indoorMapsApiInternal = new IndoorMapsApiInternal(indoorMapTextureStreamingService); var indoorMapMaterialService = new IndoorMapMaterialService(indoorMapMaterialRepository, m_indoorMapsApiInternal); m_indoorMapsApi = new IndoorMapsApi(m_indoorMapsApiInternal); var meshUploader = new MeshUploader(); var indoorMapScene = new IndoorMapScene(m_indoorMapStreamer, meshUploader, indoorMapMaterialService, m_indoorMapsApiInternal); m_mapGameObjectScene = new MapGameObjectScene(m_terrainStreamer, m_roadStreamer, m_buildingStreamer, m_highlightStreamer, m_indoorMapStreamer, meshUploader, indoorMapScene); m_labelServiceInternal = new LabelServiceInternal(UnityEngine.GameObject.Find("Canvas"), configParams.EnableLabels); m_positionerApiInternal = new PositionerApiInternal(); m_positionerApi = new PositionerApi(m_positionerApiInternal); m_cameraApiInternal = new CameraApiInternal(); m_buildingsApiInternal = new BuildingsApiInternal(materialRepository); m_buildingsApi = new BuildingsApi(m_buildingsApiInternal); m_precacheApiInternal = new PrecacheApiInternal(); m_precacheApi = new PrecacheApi(m_precacheApiInternal); m_nativePluginRunner = new NativePluginRunner( apiKey, textureLoadHandler, materialRepository, m_mapGameObjectScene, configParams, indoorMapScene, m_indoorMapsApiInternal, indoorMapMaterialService, m_labelServiceInternal, m_positionerApiInternal, m_cameraApiInternal, m_buildingsApiInternal, m_precacheApiInternal ); m_cameraController = new CameraApi(this, m_cameraApiInternal); m_coordinateSystem = coordinateSystem; var defaultStartingLocation = LatLongAltitude.FromDegrees( configParams.LatitudeDegrees, configParams.LongitudeDegrees, coordinateSystem == CoordinateSystem.ECEF ? configParams.DistanceToInterest : 0.0); m_originECEF = defaultStartingLocation.ToECEF(); if (coordinateSystem == CoordinateSystem.UnityWorld) { m_frame = new UnityWorldSpaceCoordinateFrame(defaultStartingLocation); } m_geographicApi = new GeographicApi(m_root.transform); m_environmentFlatteningApiInternal = new EnvironmentFlatteningApiInternal(); m_environmentFlatteningApi = new EnvironmentFlatteningApi(m_environmentFlatteningApiInternal); m_spacesApi = new SpacesApi(this); if (m_coordinateSystem == CoordinateSystem.UnityWorld) { m_transformUpdateStrategy = new UnityWorldSpaceTransformUpdateStrategy(m_frame, m_environmentFlatteningApi.GetCurrentScale()); } else { var cameraPosition = m_originECEF; m_transformUpdateStrategy = new ECEFTransformUpdateStrategy( cameraPosition, cameraPosition.normalized.ToSingleVector(), m_environmentFlatteningApi.GetCurrentScale()); } }
/// <summary> /// Highlights a building at a given location and returns the highlight geometry as a GameObject through the callback. This can only generate highlight geometry for buildings which have streamed in. /// </summary> /// <param name="location">The geographic point which intersects with the building to be highlighted.</param> /// <param name="material">The material to assign the highlight geometry.</param> /// <param name="callback">The callback where the highlight will be received.</param> public void HighlightBuildingAtLocation(LatLong location, Material material, HighlightReceivedCallback callback) { var latLongAlt = LatLongAltitude.FromDegrees(location.GetLatitude(), location.GetLongitude(), -1.0); HighlightBuildingAtLocation(latLongAlt, material, callback); }
/// <summary> /// Gets the building at a given location and returns it through the callback. This will only retrieve a building that has streamed in. /// </summary> /// <param name="location">The geographic point which intersects with the building to be returned.</param> /// <param name="callback">The callback where the building will be received.</param> public void GetBuildingAtLocation(LatLong location, BuildingReceivedCallback callback) { var latLongAlt = LatLongAltitude.FromDegrees(location.GetLatitude(), location.GetLongitude(), -1.0); GetBuildingAtLocation(latLongAlt, callback); }