Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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 - Fatal编程技术网

Javascript 要在放置标记后获取地址吗

Javascript 要在放置标记后获取地址吗,javascript,html,google-maps,Javascript,Html,Google Maps,贴图正在渲染,我可以拖动标记,但我不确定事件侦听器为什么不给我标记的位置。错误如下 未捕获引用错误:未定义google 请问你能帮忙吗?我的代码如下,任何帮助都将不胜感激 var map; function getLocation(){ if(navigator.geolocation){ navigator.geolocation.getCurrentPosition(showPosition, error);

贴图正在渲染,我可以拖动标记,但我不确定事件侦听器为什么不给我标记的位置。错误如下

未捕获引用错误:未定义google

请问你能帮忙吗?我的代码如下,任何帮助都将不胜感激

 var map;
      function getLocation(){
            if(navigator.geolocation){
                navigator.geolocation.getCurrentPosition(showPosition, error);
            }else{
                myLocation.innerHTML = "Geolocation API not supported in this browser, try another"
            }
        }
        function showPosition(position){
          var  myLocation = document.getElementById('livePos');
          myLocation.innerHTML = "Latitude:"+position.coords.latitude +
            "<br> Longitude" + position.coords.longitude;

            var lati = position.coords.latitude;
        var long = position.coords.longitude;
            
        }
    
      function initMap() {
        map = new google.maps.Map(document.getElementById('map'), {
          center: {lat: 51, lng: 0.19},
          zoom:8
        
        
        });

        getLocation()
             
        var lati = 51.516228;
        var long = 0.19003019999999998;
        var point = new google.maps.LatLng(lati,long);
        map.panTo(point);
        var marker = new google.maps.Marker({
        position: point,
        map: map,
        draggable:true,
        title: 'Here!'
        })

        var search = document.getElementById('search');

        search.addEventListener("click", function(){
        var lati = document.getElementById('lat').value;
        var long = document.getElementById('long').value; 
        var point = new google.maps.LatLng(lati,long);
        map.panTo(point);
        var marker = new google.maps.Marker({
        position: point,
        map: map,
        draggable:true,
        title: 'Here!'
        });
    
    
         
        

        });
    
    }
    
    google.maps.event.addListener(Marker, 'dragend', function(evt){
    document.getElementById('current').innerHTML = '<p>Marker dropped: Current Lat: ' + evt.latiLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>';
});

google.maps.event.addListener(marker, 'dragstart', function(evt){
    document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>';
});
var映射;
函数getLocation(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(showPosition,错误);
}否则{
myLocation.innerHTML=“此浏览器不支持地理位置API,请尝试其他”
}
}
功能显示位置(位置){
var myLocation=document.getElementById('livePos');
myLocation.innerHTML=“纬度:”+position.coords.Latitude+
“
经度”+position.coords.Longitude; var lati=位置坐标纬度; var long=位置坐标经度; } 函数initMap(){ map=new google.maps.map(document.getElementById('map'){ 中心:{lat:51,lng:0.19}, 缩放:8 }); getLocation() var lati=51.516228; var long=0.190030199999998; var point=new google.maps.LatLng(lati,long); 潘图(点); var marker=new google.maps.marker({ 位置:点,, 地图:地图, 真的, 标题:“这里!” }) var search=document.getElementById('search'); search.addEventListener(“单击”,函数(){ var lati=document.getElementById('lat').value; var long=document.getElementById('long').value; var point=new google.maps.LatLng(lati,long); 潘图(点); var marker=new google.maps.marker({ 位置:点,, 地图:地图, 真的, 标题:“这里!” }); }); } google.maps.event.addListener(标记'dragend',函数(evt){ document.getElementById('current').innerHTML='删除的标记:当前Lat:'+evt.latLng.Lat().toFixed(3)+'current Lng:'+evt.latLng.Lng().toFixed(3)+'

'; }); google.maps.event.addListener(标记'dragstart',函数(evt){ document.getElementById('current').innerHTML='当前正在拖动标记…

; });
发布的代码中有4个错误/打字错误(可在javascript控制台中找到)

  • uncaughtreferenceerror:google未在这一行定义:
    google.maps.event.addListener(标记'dragend',function(evt){
    ,因为它在
    initMap
    回调函数之外,并且在加载API之前运行

  • ReferenceError:未定义错误
    (因为未在发布的代码中定义)

  • 引用错误:未定义标记
    ,javascript区分大小写,应该是
    标记
    (非
    标记

  • 拖动时:
    Uncaught TypeError:无法读取未定义的属性“lat”
    ,在此:
    evt.latLng.lat().toFixed(3)
    。这是一个输入错误,应该是
    evt.latLng

  • 修复这些问题后,发布的代码可以正常工作(在
    中显示初始标记的正确坐标)(假设您有一个,您没有发布任何CSS或HTML)

    如果要根据返回的坐标获取地址,请参见,如果拖动标记并单击它,它将显示标记新位置的反向地理编码地址

    代码片段:

    var映射;
    函数getLocation(){
    if(导航器.地理位置){
    navigator.geolocation.getCurrentPosition(showPosition,错误);
    }否则{
    myLocation.innerHTML=“此浏览器不支持地理位置API,请尝试其他”
    }
    }
    功能显示位置(位置){
    var myLocation=document.getElementById('livePos');
    myLocation.innerHTML=“纬度:”+position.coords.Latitude+
    “
    经度”+position.coords.Longitude; var lati=位置坐标纬度; var long=位置坐标经度; } 函数错误(error){ 警报(“地理位置错误(“+error.code+”)”+错误消息); } 函数initMap(){ map=new google.maps.map(document.getElementById('map'){ 中心:{ 拉脱维亚:51, 液化天然气:0.19 }, 缩放:8 }); getLocation() var lati=51.516228; var long=0.190030199999998; var point=new google.maps.LatLng(lati,long); 潘图(点); var marker=new google.maps.marker({ 位置:点,, 地图:地图, 真的, 标题:“这里!” }) var search=document.getElementById('search'); search.addEventListener(“单击”,函数(){ var lati=document.getElementById('lat').value; var long=document.getElementById('long').value; var point=new google.maps.LatLng(lati,long); 潘图(点); var marker=new google.maps.marker({ 位置:点,, 地图:地图, 真的, 标题:“这里!” }); }); google.maps.event.addListener(标记'dragend',函数(evt){ document.getElementById('current').innerHTML='删除的标记:当前Lat:'+evt.latLng.Lat().toFixed(3)+'current Lng:'+evt.latLng.Lng().toFixed(3)+'

    '; }); google.maps.event.addListener(标记'dragstart',函数(evt){ document.getElementById('current').innerHTML='当前正在拖动标记…

    ; }); }
    /*始终明确设置贴图高度以定义div的大小
    *包含映射的元素*/
    #地图{
    身高:80%;
    }
    /*可选:使示例页面填充窗口*/
    html,
    身体{
    身高:100%;
    保证金:0;
    填充:0;
    }
    
    简单地图