使用 HTML5 地理定位的 HERE 地图
HERE Maps using HTML5 Geolocation
我在使用 HERE 地图的 HTML5 地理定位 API 时遇到问题。首先我制作了一个可以正常工作的测试文档:
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 地图中:
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
打电话?
我在使用 HERE 地图的 HTML5 地理定位 API 时遇到问题。首先我制作了一个可以正常工作的测试文档:
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 地图中:
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
打电话?