2015-07-03 50 views
1

我在使用HTML5地理位置API和HERE地图时遇到问题。首先,我做了一个测试文档,其正常工作:在此之后我试图把该代码添加到我的位置地图这里使用HTML5的地图地理位置

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; 
} 

http://jsfiddle.net/d8age6ss/

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地理位置。

感谢您的帮助!

回答

2

你的问题是你有你的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

+0

感谢您的帮助! 'setView'在初始化div容器中的地图后调用。它将地图集中到给定的坐标。对不起。这是我的第一个问题,我试图在满足所有要求的同时提出要求。 –