Учетные данные для обратного вызова Microsoft.Maps.TileSource - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь добавить пользовательский Microsoft.Maps.TileSource () к моей карте.

Я установил для uriConstructor конечную точку WebAPI в своем приложении ASP.NET MVC.Я бы предпочел требовать аутентификацию конечной точки WebAPI, но, похоже, нет способа отправить учетные данные веб-страницы хостинга с запросом обратного вызова.

Есть лиспособ указать учетные данные для вызова веб-службы TileSource?

1 Ответ

0 голосов
/ 12 декабря 2018

Правильно, это невозможно сделать с помощью Bing Maps.Вместо этого я рекомендую взглянуть на Azure Maps.Этого можно достичь с помощью карт Azure, установив параметр transformRequest на карте, а затем создайте слой листов и добавьте его на карту.Вот быстрый пример кода:

<!DOCTYPE html>
<html>
<head>
    <title>Tile Layer using X, Y, and Z - Azure Maps Web Control Samples</title>

    <meta charset="utf-8" />
    <meta http-equiv="x-ua-compatible" content="IE=Edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

    <!-- Add references to the Azure Maps Map control JavaScript and CSS files. -->
    <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/css/atlas.min.css?api-version=1" type="text/css" />
    <script src="https://atlas.microsoft.com/sdk/js/atlas.min.js?api-version=1"></script>

    <script type='text/javascript'>
        var map;

        function GetMap() {
            //Add your Azure Maps subscription key to the map SDK. Get an Azure Maps key at https://azure.com/maps
            atlas.setSubscriptionKey('<Your Azure Maps Key>');

            //Initialize a map instance.
            map = new atlas.Map('myMap', {
                center: [-99.47, 40.75],
                zoom: 4,
                trasnformRequest: function(url, resourceType){
                    if(url.startsWith('https://mytileserviceurl...') {
                        return {
                            url: url,
                            credentials: 'include',
                            headers: {
                                'my-header': true
                            }
                        };
                    }
                }
            });

            //Wait until the map resources have fully loaded.
            map.events.add('load', function (e) {
                //Create a tile layer and add it to the map below the label layer.
                //Weather radar tiles from Iowa Environmental Mesonet of Iowa State University.
                map.layers.add(new atlas.layer.TileLayer({
                    tileUrl: 'https://mytileserviceurl/{z}/{x}/{y}.png',
                    opacity: 0.8,
                    tileSize: 256
                }), 'labels');
            });
        }
    </script>
</head>
<body onload="GetMap()">
    <div id="myMap" style="position:relative;width:100%;min-width:350px;height:600px;"></div>
</body>
</html>

Вот некоторые связанные ресурсы:

Вот некоторые дополнительные ресурсы на картах Azure:

...