Javascript 地理位置未显示的谷歌地图
所以我尝试了谷歌地图的地理定位功能。我真的只是复制粘贴了代码,但我没有设法使地图出现。浏览器甚至要求我获取我的位置,但地图却没有显示出来。(哦,我甚至用谷歌api键来调用它)Javascript 地理位置未显示的谷歌地图,javascript,html,google-maps-api-3,geolocation,Javascript,Html,Google Maps Api 3,Geolocation,所以我尝试了谷歌地图的地理定位功能。我真的只是复制粘贴了代码,但我没有设法使地图出现。浏览器甚至要求我获取我的位置,但地图却没有显示出来。(哦,我甚至用谷歌api键来调用它) 地理定位API getCurrentPosition示例 单击标记以获取位置信息 if(导航器.地理位置){ var timeoutVal=10*1000*1000; navigator.geolocation.getCurrentPosition( 显示位置, 显示错误, {enableHighAccurance:tr
地理定位API getCurrentPosition示例
单击标记以获取位置信息
if(导航器.地理位置){
var timeoutVal=10*1000*1000;
navigator.geolocation.getCurrentPosition(
显示位置,
显示错误,
{enableHighAccurance:true,timeout:timeoutVal,maximumAge:0}
);
}
否则{
警报(“此浏览器不支持地理位置”);
}
功能显示位置(位置){
var pos=新的google.maps.LatLng(position.coords.lation,position.coords.longitude);
变量选项={
缩放:10,
中心:pos,,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map”),选项);
var marker=new google.maps.marker({
职位:pos,,
地图:地图,
标题:“用户位置”
});
var contentString=“Timestamp:”+parseTimestamp(position.Timestamp)+“
用户位置:lat“+position.coords.latitude+”,long“+position.coords.longitude+”,accurity“+position.coords.accurity;
var infowindow=new google.maps.infowindow({
内容:contentString
});
google.maps.event.addListener(标记'click',函数(){
信息窗口。打开(地图、标记);
});
}
函数显示错误(错误){
变量错误={
1:'权限被拒绝',
2:‘职位不可用’,
3:'请求超时'
};
警报(“错误:+错误[错误代码]);
}
函数解析时间戳(时间戳){
var d=新日期(时间戳);
var day=d.getDate();
变量月份=d.getMonth()+1;
var year=d.getFullYear();
var hour=d.getHours();
var mins=d.getMinutes();
var secs=d.getSeconds();
var msec=d.getmillizes();
返回日+“+”月+“+”年+“+小时+”:“+分钟+”:“+秒+”,“+毫秒;
}
E5458842-7EDA-B28E-B9F2-4CFB1EAD44D
Y2:E5458842-7EDA-B28E-B9F2-4CFB1EAD44D
E5458842-7EDA-B28E-B9F2-4CFB1EAD44D
Y2:E5458842-7EDA-B28E-B9F2-4CFB1EAD44D
您必须关闭所有标记(脚本、div、样式)。例如:
与
从作品中复制而来,效果完美
您的代码在开头至少有20行额外代码,在结尾大约有9行额外代码
根据GoogleMapsJavaScriptAPI,v3不需要API密钥才能正常工作。但是,我们强烈建议您使用API控制台密钥加载Maps API,该密钥允许您监视应用程序的Maps API使用情况
<!DOCTYPE html>
<html dir="ltr" lang="en-gb">
<head>
<meta charset="utf-8" />
<title>Geolocation API getCurrentPosition example</title>
<style>
#map { width:100%; height:800px; }
</style>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<body>
<p>Click on the marker for position information.</p>
<div id="map"></div>
<script>
if (navigator.geolocation) {
var timeoutVal = 10 * 1000 * 1000;
navigator.geolocation.getCurrentPosition(
displayPosition,
displayError,
{ enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
);
}
else {
alert("Geolocation is not supported by this browser");
}
function displayPosition(position) {
var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
var options = {
zoom: 10,
center: pos,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"), options);
var marker = new google.maps.Marker({
position: pos,
map: map,
title: "User location"
});
var contentString = "<b>Timestamp:</b> " + parseTimestamp(position.timestamp) + "<br/><b>User location:</b> lat " + position.coords.latitude + ", long " + position.coords.longitude + ", accuracy " + position.coords.accuracy;
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
function displayError(error) {
var errors = {
1: 'Permission denied',
2: 'Position unavailable',
3: 'Request timeout'
};
alert("Error: " + errors[error.code]);
}
function parseTimestamp(timestamp) {
var d = new Date(timestamp);
var day = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
var hour = d.getHours();
var mins = d.getMinutes();
var secs = d.getSeconds();
var msec = d.getMilliseconds();
return day + "." + month + "." + year + " " + hour + ":" + mins + ":" + secs + "," + msec;
}
</script>
</body>
</html>
地理定位API getCurrentPosition示例
#地图{宽度:100%;高度:800px;}
单击标记以获取位置信息
if(导航器.地理位置){
var timeoutVal=10*1000*1000;
navigator.geolocation.getCurrentPosition(
显示位置,
显示错误,
{enableHighAccurance:true,timeout:timeoutVal,maximumAge:0}
);
}
否则{
警报(“此浏览器不支持地理位置”);
}
功能显示位置(位置){
var pos=新的google.maps.LatLng(position.coords.lation,position.coords.longitude);
变量选项={
缩放:10,
中心:pos,,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map”),选项);
var marker=new google.maps.marker({
职位:pos,,
地图:地图,
标题:“用户位置”
});
var contentString=“Timestamp:”+parseTimestamp(position.Timestamp)+“
用户位置:lat“+position.coords.latitude+”,long“+position.coords.longitude+”,accurity“+position.coords.accurity;
var infowindow=new google.maps.infowindow({
内容:contentString
});
google.maps.event.addListener(标记'click',函数(){
信息窗口。打开(地图、标记);
});
}
函数显示错误(错误){
变量错误={
1:'权限被拒绝',
2:‘职位不可用’,
3:'请求超时'
};
警报(“错误:+错误[错误代码]);
}
函数解析时间戳(时间戳){
var d=新日期(时间戳);
var day=d.getDate();
变量月份=d.getMonth()+1;
var year=d.getFullYear();
var hour=d.getHours();
var mins=d.getMinutes();
var secs=d.getSeconds();
var msec=d.getmillizes();
返回日+“+”月+“+”年+“+小时+”:“+分钟+”:“+秒+”,“+毫秒;
}
在样式
标记中不应该有元
标题
和脚本
标记。如果你解决了这个问题,它可能会起作用。把标签取下来,但还是什么都没有。事实上情况变得更糟了p问题是(如果你真的尝试复制、粘贴代码并在浏览器上尝试),如果我采用包装第一个元标题和脚本的初始样式,页面将完全停止工作。我也试着照你刚才说的做,但对我来说不起作用。(我从中复制代码的页面:)
<script> with </script>
<!DOCTYPE html>
<html dir="ltr" lang="en-gb">
<head>
<meta charset="utf-8" />
<title>Geolocation API getCurrentPosition example</title>
<style>
#map { width:100%; height:800px; }
</style>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<body>
<p>Click on the marker for position information.</p>
<div id="map"></div>
<script>
if (navigator.geolocation) {
var timeoutVal = 10 * 1000 * 1000;
navigator.geolocation.getCurrentPosition(
displayPosition,
displayError,
{ enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
);
}
else {
alert("Geolocation is not supported by this browser");
}
function displayPosition(position) {
var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
var options = {
zoom: 10,
center: pos,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"), options);
var marker = new google.maps.Marker({
position: pos,
map: map,
title: "User location"
});
var contentString = "<b>Timestamp:</b> " + parseTimestamp(position.timestamp) + "<br/><b>User location:</b> lat " + position.coords.latitude + ", long " + position.coords.longitude + ", accuracy " + position.coords.accuracy;
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
function displayError(error) {
var errors = {
1: 'Permission denied',
2: 'Position unavailable',
3: 'Request timeout'
};
alert("Error: " + errors[error.code]);
}
function parseTimestamp(timestamp) {
var d = new Date(timestamp);
var day = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
var hour = d.getHours();
var mins = d.getMinutes();
var secs = d.getSeconds();
var msec = d.getMilliseconds();
return day + "." + month + "." + year + " " + hour + ":" + mins + ":" + secs + "," + msec;
}
</script>
</body>
</html>