0

我有两个症状让我认为我的诺基亚 appId/令牌有问题。一是当我尝试使用搜索框时,我收到一个 javascript 错误“错误 401 - 缺少 api_id”。第二个是当我访问 developer.here.com 和我的应用程序时,查看我的应用程序的点击历史,我发现点击率为零。我究竟做错了什么?

nokia.Settings.set("appId", "[My ID]");
nokia.Settings.set("authenticationToken", "[MY TOKEN]");

var my_lat = 41.88
var my_lon = -87.63

 map = new nokia.maps.map.Display(document.getElementById('mapcanvas'), {
     'components': [ 
            // Behavior collection
            new nokia.maps.map.component.Behavior(),
            new nokia.maps.map.component.ZoomBar(),
            new nokia.maps.map.component.Overview(),
            new nokia.maps.map.component.TypeSelector(),
            new nokia.maps.map.component.ScaleBar()
        ],
    'zoomLevel': 11, // Zoom level for the map


    'center': [my_lat, my_lon] // Center coordinates
});


// Initialize search box:
var searchBox = new nokia.places.widgets.SearchBox ({
    targetNode: 'searchbox',
    searchCenter: function () {
        return {
            latitude: my_lat,
            longitude: my_lon
        }
    },
    onResults: function (data) {
        renderResults (data);
    }
});

// Handle the results of the search. This callback function
// receives the raw places data as an array. For each element
// in this array, it creates an HTML list element and fills
// it with the name of the place:
function renderResults (data) {
    var previewList = document.getElementById ('results');
    previewList.innerHTML = '';

    var results = data.results.items;

    for (var i = 0, l = results.length; i < l; i++) {
        var result = results[i];
        var resultLi = document.createElement ('li');
        resultLi.innerHTML = result.title;
        previewList.appendChild (resultLi);
    }
}
4

2 回答 2

0

问题是我如何获得 javascript lib。

这是有效的。注意“with=maps,places”。

<script type="text/javascript" src="http://api.maps.nokia.com/2.2.4/jsl.js?with=maps,places"></script>

这是没有用的

<script type="text/javascript" src="http://api.maps.nokia.com/2.2.4/jsl.js"></script>
<script type="text/javascript" src="http://api.maps.nokia.com/2.2.4/jsl.js?with=places"></script>
于 2013-06-06T18:04:58.007 回答
0

您的代码看起来正确 - 我的假设是您使用的appId令牌无效。

首先要证明是这种情况,请从Places Widget 示例后面的代码开始。将代码复制到您的 PC 或本地服务器,看看您是否可以获得适合您的本地副本 - 如果您在搜索框中输入单词Airport,您应该会在前三个字母之后出现建议,并且一旦您在地图上标记点击搜索

现在尝试用空白替换应用程序 ID 和令牌:

nokia.Settings.set("appId", ""); 
nokia.Settings.set("authenticationToken", "");

该应用程序应该不再工作。如果在您输入appIdtoken时也是这种情况,那么您似乎错误地复制了它们,错误地使用了应用程序名称(或者后端出现了问题)。

可以在此处找到创建新appId令牌的最全面指南- 我将从头开始遵循它,并在必要时创建一个新的。登录并单击管理应用程序后,可以在右侧的框中找到appId令牌。双击该框以全选并确保您不会无意中错过可能不太适合该框​​的最终字符。

返回到您的工作演示示例,并将演示appId令牌替换为与您的帐户关联的那些。希望它现在应该对你有用。

于 2013-06-06T18:15:30.607 回答