Giter Site home page Giter Site logo

microsoft / mapssdk-unity Goto Github PK

View Code? Open in Web Editor NEW
642.0 34.0 124.0 161.89 MB

This repository contains samples, documentation, and supporting scripts for Maps SDK, a Microsoft Garage project.

License: MIT License

C# 60.72% ShaderLab 23.27% HLSL 3.51% GLSL 12.50%
maps unity mixed-reality virtual-reality 3d-graphics maps-api unity3d unity3d-plugin unity-3d bing-maps

mapssdk-unity's Introduction

Maps SDK, a Microsoft Garage project, is ending. As of February 22, 2024, the SDK is deprecated. The SDK will be available until June 30, 2024, and the service will shut down March 1, 2025. Our team learned a lot during this experiment, and we appreciate the community's involvement with this Microsoft Garage project.


Getting Started Feature Guides Sample Project API Reference

Overview

Maps SDK, a Microsoft Garage project provides the ability to visualize a 3D map within Unity-based projects. The SDK handles streaming and rendering of 3D terrain data with world-wide coverage.

Select cities and regions are rendered at a very high level of detail.

Maps SDK, a Microsoft Garage project has been optimized for mixed reality applications and devices including the HoloLens, HoloLens 2, Windows Immersive headsets, HTC Vive, and Oculus Rift.

The SDK also provides APIs for services like geocoding and utility classes for working with geospatial data.

See Microsoft® Bing™ Map Platform APIs Terms of Use for information about the terms of use for the SDK.

Feature Guides

Configuring the map Attaching GameObjects Adding labels
Animating the map Raycasting the map Displaying copyrights
Customizing map data Displaying contour lines

What is in this repo?

This repository includes samples, documentation and supporting scripts. The core source code for the SDK is not part of this repository.

The supporting scripts are Unity components and shaders that extend or build on-top of the SDK. Because of their usefulness, the supporting scripts are also included in the SDK package.

The version of the supporting scripts in the repository reflects the latest version of the SDK.

Contributions to the sample project, documentation, or supporting scripts are welcome, and where applicable, approved changes will be included in the next release of the SDK. Refer to the Contribution Process for more details.

mapssdk-unity's People

Contributors

anaphade avatar holomoto avatar jiangshen avatar kircher1 avatar microsoft-github-policy-service[bot] avatar microsoftopensource avatar msftgits avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mapssdk-unity's Issues

Unable to get map tiles

Describe the bug
Sometimes a map is not displayed. I found get warning below when failed.

Warning

Unable to get map tiles : System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
  at System.IO.__Error.EndOfFile () [0x0000a] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.IO.BinaryReader.ReadByte () [0x00018] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zKVJIKHd6R9GF$zbi6A==.#=zh$SDn_M= (System.IO.BinaryReader #=zn4RLI9U=) [0x00007] in <28806a7992b14408cda0b6981896ab77>:0 
  at #=zKVJIKHd6R9GF$zbi6A==.#=zqFQEapmz0XPz (System.IO.BinaryReader #=zn4RLI9U=, System.Collections.Generic.Queue`1[T] #=zKOUEyBE=) [0x0000b] in <28806a7992b14408cda0b6981896ab77>:0 
  at #=zKVJIKHd6R9GF$zbi6A==.#=zN6HhEMk= (System.IO.Stream #=zU4ADeHE=, System.Reflection.Assembly #=zyfebFAiNUCkd) [0x0010e] in <28806a7992b14408cda0b6981896ab77>:0 
  at #=zfAJMWRSloMXI7S8H7gilWYR6S3zITjslJwf1KKA=.#=zTC8HwJU= (System.IO.Stream #=zU4ADeHE=) [0x0002e] in <28806a7992b14408cda0b6981896ab77>:0 
  at #=zfAJMWRSloMXI7S8H7gilWYR6S3zITjslJwf1KKA=+#=zDnSIV0l7LWUuzSdfdA==.MoveNext () [0x00231] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zilP7uhJLAmDlzh9NrZVgVPZie2KWXUF0vQlYr9U=+#=z_Yt$L5x9xPIJybnU5A==.MoveNext () [0x001ac] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=z6scY0$r9xWBvtHtAeRXavc2x6Iz2vEsveofV3RA=`2+#=zFwu1$d3x8JoDAb7AxA==[#=zDHtK93Q=,#=z_CEkzl0=].MoveNext () [0x00191] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zilP7uhJLAmDlzh9NrZVgVPZie2KWXUF0vQlYr9U=+#=zIKfgGJcKsCh2B1UVRA9Na00=.MoveNext () [0x00073] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zilP7uhJLAmDlzh9NrZVgVPZie2KWXUF0vQlYr9U=+#=zAeMv8ODHrwpQJGEOHRcXv2P0oL5f.MoveNext () [0x00104] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zilP7uhJLAmDlzh9NrZVgVPZie2KWXUF0vQlYr9U=+#=zWTPAOyzRYgwyV5OtYA==.MoveNext () [0x00078] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zN$bklFScqoOiaPL$IoTOmU9V7aFEQ9nf$g==+#=zNrc4LDK1t8m5zQn5ntLaQSA=+#=z8aPA4Yd0CsrPiMwtTKm1Z31NmKXq.MoveNext () [0x00139] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zN$bklFScqoOiaPL$IoTOmU9V7aFEQ9nf$g==+#=zi2Ni5uMqF5OMN4p9bvjrOmP2sylJ.MoveNext () [0x000d3] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zN$bklFScqoOiaPL$IoTOmU9V7aFEQ9nf$g==+#=zYiAJuT_t7xb_I7dK1XFELWI=.MoveNext () [0x00114] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=z$sncr998GqmTh$AwmfUa7Vp8qGUT+#=zuygQ6ZCNI3wxeHOvoMTHdMA=.MoveNext () [0x00084] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zZ0Bwr9YHFVfHSQqJEm4NtE4=+#=zl83nlriGcuUygQl0sbaMBgs=+#=ziGMjqygdIviX0R8cLg8c4BpB0mh3.MoveNext () [0x00135] in <28806a7992b14408cda0b6981896ab77>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at #=zZ0Bwr9YHFVfHSQqJEm4NtE4=+#=z4dHjiq$$HiIx1wsCXSrerjA=.MoveNext () [0x00297] in <28806a7992b14408cda0b6981896ab77>:0 
UnityEngine.Debug:LogWarning(Object)
#=z4dHjiq$$HiIx1wsCXSrerjA=:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=ziGMjqygdIviX0R8cLg8c4BpB0mh3:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=zuygQ6ZCNI3wxeHOvoMTHdMA=:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=zYiAJuT_t7xb_I7dK1XFELWI=:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=zi2Ni5uMqF5OMN4p9bvjrOmP2sylJ:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(Exception)
#=z8aPA4Yd0CsrPiMwtTKm1Z31NmKXq:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=zWTPAOyzRYgwyV5OtYA==:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=zAeMv8ODHrwpQJGEOHRcXv2P0oL5f:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=zIKfgGJcKsCh2B1UVRA9Na00=:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=zFwu1$d3x8JoDAb7AxA==:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=z_Yt$L5x9xPIJybnU5A==:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
#=zDnSIV0l7LWUuzSdfdA==:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetResult(#=zeuVqM6C$V0IBPdDo9A5Dgrj_h5DmaxkFyg==)
#=z7dbZp1WMf_zKnZXaog==:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetResult(Tuple`2)
#=zzOJutBALqYDVbWek8sPQIQE=:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetResult(Tuple`2)
#=zBnuyDa9SzlmtkLDbmJrY4Xbrfjkz:MoveNext()
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetResult(Tuple`2)
#=zqReOYOktuzPJ8Nq5jkG4U9cXMiVE:MoveNext()
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()

In 0.5.0, receive additional an error

Grid missing from cache: 000123221002110:141463700
UnityEngine.Debug:LogError(Object)
#=z5JnLfnmj6LAPhRpsxA==:#=zisEnFHrj_V6J0EWDRA==(#=zTtvz_sjHrFYAxtcYJFNm54FiujtG)
System.Collections.Generic.HashSet`1:RemoveWhere(Predicate`1)
#=zNkSQtren6lgAgs5iA$aWBmw=:#=zjrA5Teg=(#=zh6s7U5fGczzjBh7WVAu7PyDyudncLz03UQ==`2, GameObject, MapLabel)
Microsoft.Maps.Unity.MapLabelLayer:UpdateLabels(#=zh6s7U5fGczzjBh7WVAu7PyDyudncLz03UQ==`2, GameObject)
Microsoft.Maps.Unity.MapRenderer:#=z_EriDqA=()
Microsoft.Maps.Unity.MapRenderer:Update()

To Reproduce
Steps to reproduce the behavior:

  1. Create a project
  2. Import Microsoft.Maps.Unity-Core+Examples-0.4.2.unitypackage
  3. Open MapServiceExample scene (I think it cause also any other scene)
  4. Select Map object on hierarchy, write your BingMaps key on MapRenderer
  5. Play scene (Please repeat Play/Stop until reproduced)

Expected behavior
Success a map loading

Screenshots
Maps SDK 0.4.2
WTF

Maps SDK0.5.0
0-5-2

Environment (please complete the following information):

  • Unity version: 2019.2.13
  • Maps SDK NuGet Package version: 0.4.2 (0.5.0)

Additional context
Can I get the warning callback for reloading?

Feature: Elevation Exaggeration / Scale

We're after the ability to exaggerate terrain, to make flat areas a little more interesting, and small hills more obvious.

I'd like to have an option on the map renderer to set the "elevation scale" - a number greater than 0 which describes how much to exaggerate elevation by.

This would affect terrain and also pin altitudes, and any calls to TransformLatLonAltToWorldPoint

I've done a lot of this manually myself, but the change to 0.6.1's collider volume broke it, and without access to the depth-writing logic for the collider volume, I can't get much further (well, yet).

My in-shader fix for the terrain was essentially multiplying _ElevationTexScaleAndOffset.w by my own _ElevationScale in calls to CalculateElevationOffset and FilterNormal, which I'm happy to share back (though I have a lot of other changes in my shader too)

UE4 support

Is there a future support for the unreal engine? If not, is it possible to convert theUnity c# code to unreal? Cheers

Open source the Microsoft.Maps.Unity package

Is your feature request related to a problem? Please describe.
The rest of MixedReality Unity implementations are open source - this a request to do the same with Microsoft.Maps.Unity, which is currently a NuGet containing an obfuscated DLL.

I'm having to reverse engineer a lot of things to add features I want - like hill/relief shading, exaggerated elevation. Even the shader variable names are obfuscated!

Additionally, I can't contribute this stuff back, as it's all such a hack.

Describe the solution you'd like
Please consider open sourcing the base Microsoft.Maps.Unity assembly. This will keep it in line with the rest of the Microsoft MR Unity ecosystem (e.g. the MRTK)

Describe alternatives you've considered
I've decompiled, even writing a fiddle to extract the strings from byte arrays so I can understand the shaders better.

Additional context
Just want to say this map control is really nice - smoother, better blending, good architecture and documentation. Blows alternatives I've tried out of the water. There are a lot of clients that want to see this rich 3D map on a HoloLens, and it's being held back unnecessarily by this closed source approach. Please follow the lead of MRTK (not to mention .NET) and ❤️ open source.

SampleProject Error Upon Opening in Unity

Describe the bug
A clean clone of the SampleProject repo, and opening unity 2019.3.11f1 generates numerous errors similar to:

"Multiple plugins with the same name 'microsoftgeospatialcompressionnative'"
The full error is:

Multiple plugins with the same name 'microsoftgeospatialcompressionnative' (found at 'Assets/Packages/Microsoft.Maps.Unity.0.7.0/lib/unity/Map/CompressionNative/WSA/arm64/MicrosoftGeospatialCompressionNative.dll' and 'Assets/Packages/Microsoft.Maps.Unity.0.7.0/lib/unity/Map/CompressionNative/Standalone/Windows/x86/MicrosoftGeospatialCompressionNative.dll'). That means one or more plugins are set to be compatible with Editor. Only one plugin at the time can be used by Editor.

To Reproduce
Steps to reproduce the behavior:

  1. Clone the SampleProject
  2. Open SampleProject in Unity 2019.3.11f1

note errors in console

Expected behavior
No errors

Screenshots
N/A

Environment (please complete the following information):

  • Unity version: [e.g. 2019.3.11f1]
  • Maps SDK NuGet Package version: [e.g. 0.7.0]

Additional context
I also noted this problem when adding the NuGet 0.7.0 package to an existing project in an earlier version of Unity.

Custom terrain insets

Is your feature request related to a problem? Please describe.
Overlaying custom terrain or building data conflicts with the terrain and building data on the MapRenderer.

Describe the solution you'd like
A terrain inset feature would allow for flattening regions of the map defined by GeoBoundingBoxes/Rectangles to either the ellipsoid or terrain surface. This would open up scenarios where one can replace the default terrain and/or buildings with a MapPin based model of their own.

Altitude Issues

I've been trying to place markers in a scene with a certain offset from sea level, but the sea level that I get seems to vary a lot depending on the location. I'm using something like:

var currentPosition = new LatLonAlt(currentLat, currentLon, altitudeOffset);
transform.position = mapRenderer.TransformLatLonAltToWorld(currentPosition);

I'm finding that the offset needs to be -16 to match the apparent sea level when zoomed out, and anything from -35 to -20 to match the apparent sea level when zoomed in. I wouldn't expect it to be perfect, but is there a way to get a more accurate alignment?

I'm using Unity 2018.4.15f1 for this project and version 0.2.2 of the Maps SDK

Loading Callbacks

Hi,
first of all: Thanks for this amazing API!

Is it possible to get Information about the loading status of the map? Is there maybe a callback or onload that i can use to trigger events when a location has been loaded?

Edit: As a workaround I am currently testing with raycasts wether the terrain has been loaded.

Displaying vector data

First off I want to say thanks for making such a polished product. This is miles better than every other mapping solution I've tried. The editor controls are great and the API is very clean. Great work 👍

I'm using an Http Texture Tile Layer to display custom tiles styled in Mapbox and am curious if there'd be a way to make a custom Tile Layer for displaying vector data.

I'm assuming a custom tile layer is the best approach, but am open to anything.

[edit] To clarify - while having a vector data layer built into the sdk would be great I understand that's a big ask, so that's not really what I'm requesting. If I were to develop a system for parsing and drawing vector tiles, where would be the best place in the sdk to hook in?

Routine

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

  • Unity version: [e.g. 2018.3.1f1]
  • Maps SDK NuGet Package version: [e.g. 0.1.1]

Additional context
Add any other context about the problem here.

Status about Android support

Hi, I know that this SDK is provided mainly for Windows Mixed Reality usage, but I think it would be cool if this could be running on mobile devices. I saw the 0.2.0 changelog and there it mentions 'Fallback to terrain-only rendering' for Android, but the 0.1.5 runs fine on my Pixel 3 with meshes correctly displayed. As the library is provided as binary I cannot modify the source, but to hope Android support can be officially added back even if only a subset of Android devices would support this SDK, thanks!

Flat map

Describe the solution you'd like
Ability to disable terrain and meshes to show a flat map surface.

Adjustable Map Texture Resolution

Is there a way to adjust the texture resolution? Upon close view the map textures look quite grainy. It would be nice to have the option even if it slows down map loading.

Also can I disable 3D geometry and only display 2D maps?

Thanks!

Map Pins are put on 'Default' layer when enabled

Describe the bug
I'm using pins for POIs and need to put them on a separate layer to register input, but the layer is set to 'Default' constantly when the pin is enabled. It also appears that the children of the pin have their layer changed as well, but only when initially added to the layer.

Expected behavior
The layer of the pin game object and its children should not be changed by Map Renderer or Map Pin Layer.

Environment (please complete the following information):

  • Unity version: 2019.2.14f1
  • Maps SDK NuGet Package version: 0.4.2

Installation questions

Almost every other Unity repo on Github is installed in one of a handful of ways:

  1. Clone it and open it as a project.
  2. Install it as a Unity UPM package (currently rare but will soon become the standard way as it's the only sane way to handle dependencies in Unity)
  3. Clone it and drag it into an existing project
  4. Download a .unitypackage from the releases page and import it into Unity.

I've skim read the getting started and readme for this and I'm rather confused. I understand the need for an API key but I'm not clear if I need to use NuGet or not (preferably not..).

I'm going to soldier on but this part of the set up could be a lot clearer. Ideally go for install method 1 or 2 above.

Geospatial services

Expand the Maps SDK to support headless APIs, i.e. APIs that don't depend directly on the MapRenderer, to do things like geo-coding, reverse geo-coding, or route finding. This would basically provide a Unity-compatible interface over some of the existing Bing Maps APIs, but would use the managed Geospatial types to inter-op easily with the existing classes in the Maps SDK.

Missing Script on Small Map Pin's Cube prefab

ISSUE

Cube object on Small Map Pin prefab is missing the script based on these images below:
image

I do not know what the script for.

REPRODUCED THE ISSUE

  1. Create new project
  2. Import Nuget For Unity
  3. Install MRTK v2.3.0 and MapsSDK nuget package
  4. Import examples package from release packages (Only tick the examples)
  5. Open SmallMapPin prefab
  6. Look at child object name cube

Expected Behavior

No missing script

Environment

Unity 2019.2.21f1
MRTK v2.3.0
MapsSDK 0.5.1

iOS / Android support

This Maps SDK is by far the best one in its category. The only downer is the lack of support for iOS and Android. This would perfectly complement the Mixed Reality story. Is there a plan to support both platforms? What could we do?

Change Map Rendering Layer

I need to use multiple cameras that have different culling masks. One camera renders the map, and the other culls it.

An option to choose which layer the map is rendered on would solve this problem.

Cannot install 'Microsoft.Maps.Unity' using NuGetForUnity.

Describe the bug
Cannot install 'Microsoft.Maps.Unity' using NuGetForUnity.

To Reproduce
Steps to reproduce the behavior:
1.Unity 2019.3.13 and NugetForUnity.install unitypackage
2. Switch platform to UWP (Same without switch platform)
3. Search Microsoft.Maps.Unity and click the Install button
4. Check the console tap for errors

Expected behavior
[ BadReadException: Could not read block - no data! (position 0x0009CBF6) ] error occurred

Screenshots
error

Environment (please complete the following information):

  • Unity version: 2019.3.13f1
  • Maps SDK NuGet Package version: NuGetForUnity 2.0.0 / Microsoft.Maps.Unity version 0.7.1

Additional context
In addition, I would like to know if I can set the map to 2D(street and road? view).
(Like a typical map.)

Default Texture Tile Layer styling issue

Describe the bug
Following the wiki documentation for Default Texture Tile Layer, changing the Imagery Type from Aerial to Symbolic doesn't change the texture of the map, as shown in the doc images. See image below.

To Reproduce
Steps to reproduce the behavior:

  1. Go to docs and follow the DefaultTextureTile instructions to change the look: https://github.com/microsoft/MapsSDK-Unity/wiki/Configuring-the-MapRenderer#defaulttexturetilelayer
  2. Change imagery type from aerial to symbolic.
  3. See error on Unity scene window as shown in the image below.

Expected behavior
Texture Tile layer change to be reflected on the Unity Editor view and be similar to the Symbolic Light image in the docs.

Screenshots
Screenshot (149)

Environment (please complete the following information):

  • Unity version: 2018.4.14f1
  • Maps SDK NuGet Package version: 0.4.2

Offline maps

I want to use maps sdk and build an app that would work completely offline. Please explain how to get offline map terrain feature to execute this effectively?

Map Location is Flat and not 3D

Hey, I have a question regarding some of the locations found in the map. This is perfect for what I need but I need to be able to zoom into Dallas, Texas. but for some reason when I zoom in there is no height to the city, its just flat and I am under 'Default' map type.

One of the 'seams' of where the map stops being 3D is in (32.74, -97.181)
The city of Dallas is around (32.778, -96.8036)
I am using Unity 2018.3.14 and also tried several other higher up versions. I downloaded the 'Microsoft.Maps.Unity-Core-0.3.0.unitypackage' from the Releases page as I don't need to incorporate Hololens into my project.

I am just wondering if this is normal or is there is something im not doing right to get the Dallas City to show in 3D - or if there is anything I can do to get this working, Please and thanks!

Unity Exception" Destroy?

"Hello"
First off, Microsoft Maps is nothing less than spectacular! Thanks for your efforts.
In working with "Maps" for the HoloLens I have run into a very persistent Exception.
The project I am creating has numerous Scenes using Maps where The first Scene has an interactive button that launches a second Scene. Upon launching the second Maps Scene from the First Maps Scene, or for that matter, switching from any Maps Scene to another Scene, I get a nasty Development Console message saying:

Unity Exception" Destroy can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers instead move initialization code to the Awake or Start function.
So that's it ! Is it me? Maybe Unity? Or could it be your system?

To Reproduce
Steps to reproduce the behavior:

  1. I don't believe I have any answer to why I get this exception warning.
    I believe it pertains to something in the Maps code but I don't have a clue.
    I am using Unity Version 2019.1.14f1 so I imagine to recreate all that would need to be done is
    link two scenes together with a button and in HoloLens launch and see what happens...

Environment (please complete the following information):

  • Unity version: 2019.1.14f1
  • Maps SDK NuGet Package version: 1.2.4

Any advice as to a way to terminate this bug will be greatly appreciated...
I look forward to being enlightened and if anything else is requested of me I will be most eager to respond.
Thanks
[email protected]
906-235-2187
www.terrasame.com

Converting from Unity space to Map space

Hi, is there a way to convert from Unity's transform.position to a lat/lon/alt so I can pin an object to the map? I looked through the API docs and couldn't find a way to do so.

I work at AfterNow, our found Philippe Lewicki said he may have spoken to you at MR Dev Days in Seattle. It'd be great to have your contact info for follow up questions, thank you!

Example use case for WaitForMapSceneAnimation?

Could you provide an example of how to use WaitForMapSceneAnimation?

I am trying to have a separate script turn a bool false after calling SetMapScene then true once WaitForMapSceneAnimation returns false.

Thanks.

Filename too long error

Describe the bug
File names are too long for git. Ex error message:

error: unable to create file SampleProject/Assets/MixedRealityToolkit.Providers/WindowsMixedReality/Shared/DotNetAdapter/.bin/net46/Microsoft.Windows.MixedReality.DotNetWinRT/Editor/Microsoft.Windows.MixedReality.DotNetWinRT.Editor.asmdef: Filename too long
fatal: unable to checkout working tree warning: Clone succeeded, but checkout failed. You can inspect what was checked out with 'git status' and retry with 'git restore --source=HEAD :/'

To Reproduce
Steps to reproduce the behavior:

  1. Clone the repo in your local environment terminal.
    git
  2. The above git error message is printed.
  3. git status result seen in image below.

Expected behavior
Clone files and checkout master.

Screenshots
gitfail

Environment (please complete the following information):
Windows 10
Current repo clone.

Huge maps?

Is there some way to make a huge map for whole city-scale renders? It seems as though this is limited to 3x3 for the local map dimensions. If i change the zoom level, the texture quality is substantially decreased.

Maps Examples Won't Load in HoloLens 1 (Maps ver 0.1.5)

I have deployed the weather map example scene from Maps ver 0.1.3, and map data loads successfully in Hololens.

I tried doing the same thing using Maps ver 0.1.5 and map data does not load in Hololens. I just see the empty grid on top of the purple maps base cube.

I have both apps on the Hololens and 0.1.3 loads but 0.1.5 does not, which rules out any issues with the Hololens.

I have compared project settings on both projects and they mirror exactly, so I cannot figure out what's the issue.

For both:
Unity 2018.3.4
VS 2019, Windows 10 Insider Preview
Hololens 1
Target SDK 18362
Min Platform version 10240

Thanks!

Pointer Raycast Bug?

Hello...
Firstly, if this bug does not pertain to your Maps SDK but possibly the MRTK please "Point" me in the proper direction to find an answer to cure this issue. Thanks for your guidance...

I have been experimenting to great lengths to get your SDK working in the latest 2019.2.17f1 version. Yes it does work, and it works very well with one exception. But, I must admit that upgrading does not work although, starting a new project from scratch does. So, I have attempted starting from scratch on many 2019.2.... versions, all with the same glitch.

What I am doing is creating multiple scenes where I add interactable buttons in each scene to launch a different scene. The system I created does work perfectly in the 2019.1.4f1 (Approved in your Matrix") I do realize 2019.2..... is not yet approved but the quality of Unity visualization surpasses 2019.1.4f1 so I though I could possibly help you.

In any case, the problem is that upon clicking my scene switch button, the Control Pointer Ray changes and goes inactive until I bring up the UWP menu and then close it where the Pointed Ray is then fine until I click another Scene switch button upon the same pointer problem arises again.

Attached you will find a picture showing what happens to the Control Pointer Ray. The dotted line is the original raycast line and the curved raycast line gets added and I suppose it is a parabola ray cast, somehow added.

I am using the Samsung HMD for design and layout and I have not yet pushed my 2019.2.17f1 project to my HoloLens but I have done so with my 2019.1.4f1 version to the HoloLens where it works pretty good but not the quality of 2019.2.17f1. I have been experiencing crashes with all versions on the HMD and HoloLens where there are NO crashes in the Unity editor.
Strange...….. I wonder why this is???

I have been fighting these Crashes and Control Pointed issues for about two weeks now, I don't know what is causing either issue. The Pointer Raycast issue does not occur in the 2019.14f1 version of unity but the crashes do after about 6 or seven scene launches.

If I need to get you any data or files I will do my best.

Any advice will be greatly appreciated...
Thanks
Paul

Pointer_Bug

HoloLens(1st) Cannot Load Map

This project can run well in Unity(2018.3.7f),but it cannot load map in HoloLens(1st).
Target Sdk Version: 18362 ,Min Sdk Version: 10240. Scripting Backend:IL2CPP

Request a feature for lookup location (lat,lon) info which returns the city/town name from the map label layer

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Current map label layer is passing a MapLabel object which only include the Text and Style but not the lat lon of this.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Option one, create a lookup function in the maplabel layer which take lat lon as input and return the city and town name for it.Those info should be read only.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Option two, pass the lat lon info to the MapLabel and organize the maplabels as State/City/Town which allow people to get all the information. Those should be readonly.
Additional context
Add any other context or screenshots about the feature request here.

development for Hololens

I would like to know how unity project with map can be deployed on hololens using visual studio. How to view the project in hololens through unity?Is it compulaory to install windows insider ?

Accurate Terrain Colliders

Some of the tools that we use require accurate collider components attached to the 3D scenes (i.e. mesh colliders).

The ability to have accurate colliders on the terrain and buildings would allow the tools that we've developed to be able to interact correctly with the terrain. It would also allow for us to do first person walkthroughs on the terrain.

Immersive mode

Is your feature request related to a problem? Please describe.
The current map is limited to a table-top sized view. Some scenarios require a view where one can see much more map area, possibly to the horizon.

Describe the solution you'd like
This solution would involve providing a mode that can be toggled on the MapRenderer, for either immersive mode or table-top mode. Table-top mode would continue to allow for configuring the dimension and color of the clipping sides. Immersive mode would essentially disable these restrictions and allow rendering the map to the horizon. Map data would fall off in quality, as is typical for most LOD based systems, to maintain a pixel-to-texel ratio.

Sample project runs 30 frames/second and scene is on the same level as the camera.

Describe the bug
Currently, scenes run 30 frames/sec on HoloLens 2. How can I improve performance?
Also, the scene is on the same level as the camera, so the map is above eye level. See link for the captured video from HoloLens 2: https://msit.microsoftstream.com/video/200886bd-29b8-4800-9a1b-69094c3ded94

To Reproduce
Steps to reproduce the behavior:

  1. Open and build the City Tour example.
  2. Deploy it to HoloLens 2
  3. See the performance monitor for the framerate.

Expected behavior
Scene to render below the eye level and animation to run 60 fps.

Screenshots
https://msit.microsoftstream.com/video/200886bd-29b8-4800-9a1b-69094c3ded94

Environment (please complete the following information):

  • Unity version: [e.g. 2018.4.15f1]
  • Maps SDK NuGet Package version: [e.g. 0.5.0]

Thanks!

Add reference modes to MapRenderer.Raycast API?

Is your feature request related to a problem? Please describe.
Currently MapRenderer.Raycast api will raycast to everything on the map. It would be helpful to add a method that has reference modes similar to MapPin.AltitudeReference. For example being able to sketch only on the terrain while ignoring buildings. Or when dragging 3D models onto the map, ability to cast only onto the terrain...

Describe the solution you'd like
Add a Raycast method to the existing API that does this:
public bool Raycast(Ray ray, out MapRendererRaycastHit hitInfo, RaycastReference raycastReference);

Options could include RaycastReference.Surface and RaycastReference.Terrain.

Describe alternatives you've considered
Not a must have but more granular filters would be also useful if there are ways to identify vegetation, terrain, water, buildings, roads etc.

Mesh Export

I would like to export the generated portion of a map as a mesh, to be used in another application.

Do you plan on having that supported/allowed?

Map time-out

Describe the bug
Testing on the Oculus Quest, everything works mostly fine for the first 20-30 seconds of usage, after which the map stops updating and resolving as new locations are visited. This behavior only happens when viewing 3D map, if 2D map is started from beginning, there are no issues.

To Reproduce
Steps to reproduce the behavior:

  1. open sample project and setup for quest development
  2. Follow advice in #18 to get 3D maps rendering on the quest.
  3. Build and deploy app to Quest
  4. See map update timeout ~30 seconds into usage

Expected behavior
3D map to continue rendering properly indefinitely for the life-cycle of app usage.

Environment (please complete the following information):

  • Unity version: 2019.2 & 2019.3
  • Maps SDK NuGet Package version: 0.5.1

Additional context
The log at runtime spews out this warning every frame only while 3D maps are displayed in headset and are being rendered properly. But when the map stops updating and resolving, the warning messages each frame also stop.

WARNING: RGB Compressed DXT1 UNorm format is not supported, decompressing texture 'DXT1' is not supported on this platform. Decompressing texture. Use 'SystemInfo.SupportsTextureFormat' C# API to check format support.

Could the log be overloaded by the warnings and trigger a halt somewhere?

Building from rooftop data

Hello,
I would need to use the map of Paris in 3D, but apparently its not available . Will you plan to integrate it ?

Also, because you probably have the data of building, will it be possible to generate it from the rooftop data ?

Thanks you

Textures are never deallocated

Describe the bug
When panning and zooming tiles are created, but old tiles are never deallocated. I've had multiple crashes due to this as my system has completely run out of memory 😬 This happens at runtime, but is even worse in the editor as it seems impossible to destroy the all the textures without restarting.

Destroying the map renderer or switching scenes doesn't even seem to free all the tile memory. It frees a bit, but in my simple project where texture memory is (practically) only allocated by the map renderer currently about 7GB of memory is allocated by textures. Creating a new scene drops the amount by a bit, but the only way to free the memory is to restart Unity. If I restart Unity only a few hundred MB in texture memory is allocated.

To Reproduce

  1. Open the Unity profiler and add open the memory profiler.
  2. Create a new scene with a map renderer.
  3. Press play.
  4. Pan and zoom.
  5. Watch as the texture memory goes up over time and never plateaus or decreases.

Expected behavior
The map renderer should have a maximum amount of memory allowed to be used and tiles should be deallocated when the limit is surpassed.

Environment (please complete the following information):

  • Unity version: 2019.2.14f1
  • Maps SDK NuGet Package version: 0.4.1

Additional context

  • Scripting Backend - Mono
    Api Compatibility Level - .NET 4.x

WebGL Build for Map Renderer

I tried to create a webgl build for the citytour example. But unfortunately it seems BingMaps information is not loading in webgl. I am seeing completely blank picture.

Can anyone help in this case? Is this SDK supports webgl build??

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.