Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 地理位置未显示的谷歌地图_Javascript_Html_Google Maps Api 3_Geolocation - Fatal编程技术网

Javascript 地理位置未显示的谷歌地图

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键来调用它)


地理定位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>