我在将HTML5地理位置API与HERE Maps结合使用时遇到问题。首先,我制作了一个可以正常工作的测试文档:
var test = document.getElementById('test');
var coords = navigator.geolocation.getCurrentPosition(success);
function success(position) {
test.innerHTML = 'Latitude: ' + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
之后,我尝试将代码添加到我的HERE Map中:
var coords = navigator.geolocation.getCurrentPosition(success);
function success(position) {
var location = '{ lat: ' + position.coords.latitude + ', lng: ' + position.coords.longitude; + ' }'
}
function setView(map) {
map.setCenter(location);
map.setZoom(12);
}
我看不到的是哪里出了问题。在https://developer.here.com/javascript-apis/documentation/maps上,据说支持HTML5地理位置。
谢谢你的帮助!
您的问题是您的success
函数中有一个局部变量:
function success(position) {
var location = ...
}
只有该函数才能使用该变量。因此,当您尝试在setView
函数中再次使用它时,它将不知道它是什么。
function setView(map) {
map.setCenter(location);
相反,您需要做的是要么创建location
一个全局变量,要么将其作为参数传递给setView
函数。例如
var location;
function success(position) {
location = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
}
function setView(map) {
map.setCenter(location);
map.setZoom(12);
}
(location
也不需要创建为字符串,因此我对此进行了少许修改)。
我看不到您打来的电话setView
吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句