Beispiel #1
0
        public async void Add3DMapModel()
        {
            BasicGeoposition cityPosition = new BasicGeoposition()
            {
                Latitude = 55.6512013566365, Longitude = 37.6681702130651
            };
            Geopoint cityCenter         = new Geopoint(cityPosition);
            var      mugStreamReference = RandomAccessStreamReference.CreateFromUri
                                              (new Uri("ms-appx:///Assets/mug.3mf"));

            var myModel = await MapModel3D.CreateFrom3MFAsync(mugStreamReference,
                                                              MapModel3DShadingOption.Smooth);

            MapControl1.Layers.Add(new MapElementsLayer
            {
                ZIndex      = 1,
                MapElements = new List <MapElement>
                {
                    new MapElement3D
                    {
                        Location = cityCenter,
                        Model    = myModel,
                    },
                },
            });
        }
Beispiel #2
0
        private async void mapElement3DAddButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            // Compensate for 3D Model's local coordinate system and scale
            const float AltitudeOffset = 45.0f;
            const float HeadingOffset  = -90.0f;
            const float ScaleOffset    = 0.1f;

            MapModel3D model = await MapModel3D.CreateFrom3MFAsync(mapModelStreamReference, MapModel3DShadingOption.Smooth);

            if (model != null)
            {
                var center = new BasicGeoposition()
                {
                    Latitude  = myMap.Center.Position.Latitude,
                    Longitude = myMap.Center.Position.Longitude,
                    Altitude  = AltitudeOffset,
                };

                // MapElement3D scales with respect to the perspective projection of the 3D camera
                MapElement3D mapElement3D = new MapElement3D();
                mapElement3D.Location = new Geopoint(center, AltitudeReferenceSystem.Terrain);
                mapElement3D.Model    = model;
                mapElement3D.Heading  = HeadingOffset + 180;
                mapElement3D.Scale    = new Vector3(ScaleOffset, ScaleOffset, ScaleOffset);
                myMap.MapElements.Add(mapElement3D);
            }
        }
Beispiel #3
0
        private async Task <bool> LoadFromUriAsyncIfNeeded(string uri)
        {
            if (!Has(uri))
            {
                var model = await MapModel3D.CreateFrom3MFAsync(
                    RandomAccessStreamReference.CreateFromUri(new Uri(uri)),
                    MapModel3DShadingOption.Smooth);

                if (model == null)
                {
                    throw new ArgumentException("Cannot load " + uri);
                }
                this.cache.Add(uri, model);
            }
            return(true);
        }
Beispiel #4
0
        private async void LoadFromFileAsync()
        {
            var modelOpenPicker = new FileOpenPicker
            {
                SuggestedStartLocation = PickerLocationId.DocumentsLibrary,
                ViewMode = PickerViewMode.Thumbnail,
            };

            modelOpenPicker.FileTypeFilter.Add(".3mf");

            StorageFile file3MF = await modelOpenPicker.PickSingleFileAsync();

            if (file3MF != null)
            {
                // Import the 3D model w/ smooth shading
                var selectedCar = await MapModel3D.CreateFrom3MFAsync(
                    RandomAccessStreamReference.CreateFromFile(file3MF),
                    MapModel3DShadingOption.Smooth);
            }
        }
Beispiel #5
0
        public async void add3D()
        {
            var map3dSphereStreamReference = RandomAccessStreamReference.CreateFromUri
                                                 (new Uri("ms-appx:///Assets/mug.3mf"));

            var myModel = await MapModel3D.CreateFrom3MFAsync(map3dSphereStreamReference,
                                                              MapModel3DShadingOption.Smooth);

            var              my3DElement     = new MapElement3D();
            double           centerLatitude  = MapControl1.Center.Position.Latitude;
            double           centerLongitude = MapControl1.Center.Position.Longitude;
            BasicGeoposition cityPosition    = new BasicGeoposition()
            {
                Latitude = 55.6509863734914, Longitude = 37.6680877307923, Altitude = 10
            };

            Geopoint cityCenter = new Geopoint(cityPosition);

            my3DElement.Location = cityCenter;
            my3DElement.Model    = myModel;

            MapControl1.MapElements.Add(my3DElement);
        }