在下面的视觉中,
对象文字geolocation
位于navigator
(即navigator.geolocation
)的上下文中,但根据以下代码,
<script src="http://maps.googleapis.com/maps/api/js" type="text/javascript">
</script>
<script type="text/javascript">
function showLocation(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition);
}else{
alert('geo location is not supported');
}
}
function showPosition(position){
console.log(Object.prototype.toString.call(position));
var mapProp = {
center: new google.maps.LatLng(position.coords.latitude, position.coords.longitude),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
new google.maps.Map(document.getElementById("googleMap"), mapProp);
}
</script>
<p> Click below to get your geo location</p>
<button onclick="showLocation();">Click</button>
<div id="googleMap" style="width:500px;height:380px;border: 1px solid red;"></div>
在调试过程中,position
是Position
类型的实例,如下所示。
我在Position
和谷歌api http://maps.googleapis.com/maps/api/js中都看不到navigator
1)Position
(上限为p)的上下文是什么?它是函数构造函数还是对象文字?
2)coords
中的成员列表(例如Position
)是什么?
答案 0 :(得分:0)
好像你可能会将google api与浏览器中内置的导航器api混淆。传递到showPosition
函数的位置参数不是来自谷歌,因此不会出现在谷歌API规范中。所以回答你的问题:
1)position
而不是Position
是Geoposition Constructor的一个实例,它使它成为一个对象。
2)position
有以下成员:coords
&amp; timestamp
。 timestamp
是一个数字,表示当前时间(以毫秒为单位)。 coords
本身就是一个Object(Coordinates Constructor的实例),它有自己的成员,如下所示:accuracy
,altitude
,altitudeAccuracy
,heading
,{{1 },latitude
和longitude
。
希望有所帮助。