将纬度和经度分配为全局使用的变量[重复]
Posted
技术标签:
【中文标题】将纬度和经度分配为全局使用的变量[重复]【英文标题】:Assigning latitude and longitude as variables for global use [duplicate] 【发布时间】:2013-09-19 10:13:57 【问题描述】:我如何获取此 javascript 代码的经度和纬度作为全局变量。试了好几次都没用。
navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);
function handle_errors(error)
switch(error.code)
case error.PERMISSION_DENIED: alert("user did not share geolocation data");
break;
case error.POSITION_UNAVAILABLE: alert("could not detect current position");
break;
case error.TIMEOUT: alert("retrieving position timed out");
break;
default: alert("unknown error");
break;
function handle_geolocation_query(position)
我在 Jquery Mobile 和 PhoneGap 应用程序中使用它。任何帮助将不胜感激,谢谢
根据到目前为止给出的答案,这是我所拥有的
$(document).ready(function()
var latitude, longitude;
navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);
function handle_errors(error)
switch(error.code)
case error.PERMISSION_DENIED: alert("user did not share geolocation data");
break;
case error.POSITION_UNAVAILABLE: alert("could not detect current position");
break;
case error.TIMEOUT: alert("retrieving position timed out");
break;
default: alert("unknown error");
break;
function handle_geolocation_query(position)
latitude = (position.coords.latitude);
longitude = (position.coords.longitude);
alert(latitude, longitude);
);
当我提醒它时它返回“未定义”
这是html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/gas-script.js"></script>
</head>
<body>
</body>
</html>
【问题讨论】:
【参考方案1】:navigator.geolocation.getCurrentPosition 之前:
var latitude, longitude;
handle_geolocoation_query(位置)内部:
latitude = position.coords.latitude;
longitude = position.coords.longitude;
制作:
var latitude, longitude;
$(document).ready(function()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);
else
alert('Device probably not ready.');
);
function handle_errors(error)
// error handling here
function handle_geolocation_query(position)
latitude = (position.coords.latitude);
longitude = (position.coords.longitude);
onPositionReady();
function onPositionReady()
alert(latitude, longitude);
// proceed
【讨论】:
@RonaldK,谢谢你,我试过你的答案,但是当警报或 console.log 时变量返回未定义 哪些变量?纬度/经度或位置坐标?你什么时候测试它们? 哦,等等,你问了同样的问题,在这里得到了一个好的答案:***.com/questions/18883252/… $(coords).on('positionReady', function(e, position) 当我把我的代码放在这里 );但是在外面它不起作用 这是否意味着我将必须使用此函数 onPositionReady() 将经纬度传递到服务器的代码将在这里 包装任何将使用纬度和经度的脚本跨度> 【参考方案2】:在下面提到的代码中,lat、lng 应该在当前文件中全局可用,
$(document).ready(function()
var lat, lng;
navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);
function handle_geolocation_query(position)
lat = position.coords.latitude;
lng = position.coords.longitude;
);
【讨论】:
谢谢你我试过你的答案,但是当警报或控制台日志时变量返回未定义以上是关于将纬度和经度分配为全局使用的变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章