Javascript 表单输入 - GPS - 地理位置
Posted
技术标签:
【中文标题】Javascript 表单输入 - GPS - 地理位置【英文标题】:Javascript Form Input - GPS - GeoLocation 【发布时间】:2012-04-21 23:05:26 【问题描述】:我想从用户的设备中获取当前的 GPS 位置,并且基本上将 Lat 和 Long 放入表单字段中。然后我可以在插入位置后做任何事情。
下面的代码适用于弹出警报位置,这是我开始使用的。我希望能够单击一个按钮并将其填充到表单字段中。
<html>
<head>
<script type="text/javascript">
function getLocationConstant()
if(navigator.geolocation)
navigator.geolocation.getCurrentPosition(onGeoSuccess,onGeoFormLat,on GeoFormLong,onGeoError);
else
alert("Your browser or device doesn't support Geolocation");
// If we have a successful location update
function onGeoSuccess(event)
alert(event.coords.latitude + ', ' + event.coords.longitude);
function onGeoFormLat(event)
var myVal;
myVal = document.getElementById(event.coords.latitude).value;
function onGeoFormLong(event)
var myVal;
myVal = document.getElementById(event.coords.longitude).value;
// If something has gone wrong with the geolocation request
function onGeoError(event)
alert("Error code " + event.code + ". " + event.message);
// Called when we want to stop getting location updates
function stopGetLocation(event)
navigator.geolocation.clearWatch(watchID);
</script>
</head>
<body>
<br><br>
Latitude: <input type="text" id="Latitude" name="onGeoFormLat" value="">
<br><br>
Longitude: <input type="text" id="Longitude" name="onGeoFormLong" value="">
<br>
<br><br><br>
<input type="button" value="Get Location" onclick="getLocationConstant()" />
<br><br>
</body>
</html>
【问题讨论】:
【参考方案1】:我的朋友帮了我... 这适用于 gr8
<script type="text/javascript">
function getLocationConstant()
if(navigator.geolocation)
navigator.geolocation.getCurrentPosition(onGeoSuccess,onGeoError);
else
alert("Your browser or device doesn't support Geolocation");
// If we have a successful location update
function onGeoSuccess(event)
document.getElementById("Latitude").value = event.coords.latitude;
document.getElementById("Longitude").value = event.coords.longitude;
// If something has gone wrong with the geolocation request
function onGeoError(event)
alert("Error code " + event.code + ". " + event.message);
</script>
<br><br>
<cfform action="gps2.cfm" method="post">
Latitude: <input type="text" id="Latitude" name="Latitude" value="">
<br><br>
Longitude: <input type="text" id="Longitude" name="Longitude" value="">
<br><br>
<input type="button" value="Get Location" onclick="getLocationConstant()"/>
<br><br>
<input type="submit" value="Add GPS Location" class=small>
</cfform>
【讨论】:
适用于 android 平板电脑 (Galaxy) - 三星 Galaxy II、iPhone、iPad、iPhone... iPhone/iPad 需要开启定位服务【参考方案2】:@Merle_The_Pearl 提供的代码也适用于 OSX 上的 Safari 和 Firefox,但值得注意的例外是,如果用户决定不提供他们的位置,Firefox 不会调用“onGeoError”。这似乎是 Mozilla 人忽略 W3C 规范 https://bugzilla.mozilla.org/show_bug.cgi?id=675533 的一个不幸的政策决定
【讨论】:
以上是关于Javascript 表单输入 - GPS - 地理位置的主要内容,如果未能解决你的问题,请参考以下文章
访问html表单JavaScript中文本输入字段值的最简单方法?
在 JavaScript 中从 gps 位置指向另一个不指向正确方向的箭头
谷歌地图(javascript API):从地址获取 GPS 坐标