如何验证bing maps api key?

时间:2014-08-25 07:26:00

标签: javascript leaflet bing-api bing-maps

我正在使用传单bing maps插件。 如何在传单使用之前验证bing maps api密钥?

如果我允许使用无效密钥:

var bing_key = "funTimeWithBingMaps"
baseMapUrl = new L.BingLayer(bing_key)

然后bing地图报告:

" Leaflet Bing插件错误 - 获得元数据:访问被拒绝。您可能输入的凭据不正确,或者您可能无法访问所请求的资源或操作。"

然后map.removeLayer(baseMapUrl);无法移除图层。

2 个答案:

答案 0 :(得分:0)

您需要使用以下网站创建自己的密钥:http://www.bingmapsportal.com/

使用Microsoft帐户(也称为Live ID)登录后,您将能够根据您的使用情况生成多个密钥。有关密钥类型的更多信息,请在此处查看MSDN:http://msdn.microsoft.com/en-us/library/ff428642.aspx

答案 1 :(得分:0)

这真的很丑,但这是一个解决方案'。

var map, osm, bing, count_down = 50;

    function first_part()
    {
    map = new L.Map('map', {center: new L.LatLng(67.6755, 33.936), zoom: 10 });
    osm = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');

    bing = new L.BingLayer("MyBingApiKeyGoesHere");
    setTimeout(function () { second_part(bing); }, 100);
    }

    function second_part(binz)
    {
        if (typeof(binz.meta.statusCode) == 'undefined') {
            count_down--;
            if (count_down == 0) {
                alert("abandon operation");
                return;
            }
            setTimeout(function () { second_part(binz); }, 100);
            return;
            }
        if (binz.meta.statusCode == 200) {
            alert("OK");
            map.addLayer(bing);
            map.addControl(new L.Control.Layers({'OSM':osm, "Bing":bing}, {}));
            }
        else {
            alert("WRONG: count_down: "+count_down+"  statusCode: "+binz.meta.statusCode);
            }
    }

    first_part();