Microsoft.Maps.TileSource回调的凭据

问题描述 投票:0回答:1

我正在尝试将自定义Microsoft.Maps.TileSource()添加到我的地图中。

我将uriConstructor设置为ASP.NET MVC应用程序中的WebAPI端点。我更愿意要求对WebAPI端点进行身份验证,但似乎没有办法使用回调请求发送托管网页的凭据。

有没有办法为TileSource Web服务调用指定凭据?

javascript asp.net-mvc bing-maps azure-maps
1个回答
1
投票

正确,使用Bing Maps无法做到这一点。我建议改为查看Azure地图。通过设置地图的transformRequest选项,然后创建切片图层并将其添加到地图,可以使用Azure地图实现此目的。这是一个快速代码示例:

<!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地图上的一些其他资源:

© www.soinside.com 2019 - 2024. All rights reserved.