0

我希望我的脚本从 GPS(手机)获取纬度和经度坐标,然后将它们插入谷歌地图并显示手机的位置。好吧,我能够从 GPS 中检索经纬度坐标,但它不会将它们作为显示的地图的中心插入。我的代码:

<script>
    $(document).ready(function(){
        navigator.geolocation.getCurrentPosition(useposition); 
    });
                function useposition(position){  
            lat = position.coords.latitude;
            lon = position.coords.longitude;   
            $("#location").html('Lat: ' + lat + '<br />Lon: ' + lon);

        }
</script><meta name="viewport" content="initial-scale=1.0, user-scalable=no"<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script><script type="text/javascript">
function initialize() {
    var latlng = new google.maps.LatLng(54,-1);
    var settings = {
        zoom: 15,
        center: latlng,
        mapTypeControl: true,
        mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
        navigationControl: true,
        navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
        mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map"), settings);
var marker = new google.maps.Marker({      position: latlng,      map: map,      title:"Yeah buddy!"  })};

                </script>

如您所见,我获取了 GPs 坐标,我想将它们插入到我加载的地图中:<body onload="initialize ()" > </body> 我只是不知道如何从 lat、lon 生成变量以及如何在 gogle 地图中正确插入它。请帮帮我。

4

1 回答 1

0

我假设“将坐标插入地图”是指在该位置添加标记?

您将遇到的第一个问题是您的map变量是初始化函数的局部变量。所以你可以把它变成一个全局变量。然后在您的 useposition 函数中,您可以简单地创建一个新标记。

<script>
    var map;

    $(document).ready(function(){
        navigator.geolocation.getCurrentPosition(useposition); 
    });

    function useposition(position){  
            lat = position.coords.latitude;
            lon = position.coords.longitude;   
            $("#location").html('Lat: ' + lat + '<br />Lon: ' + lon);
            var marker = new google.maps.Marker({      
                position: new google.maps.LatLng(lat,lon),      
                map: map,      
                title:"Your Mobile"  });
        }

function initialize() {
    var latlng = new google.maps.LatLng(54,-1);
    var settings = {
        zoom: 15,
        center: latlng,
        mapTypeControl: true,
        mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
        navigationControl: true,
        navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
        mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    map = new google.maps.Map(document.getElementById("map"), settings);
    var marker = new google.maps.Marker({      position: latlng,      map: map,      title:"Yeah buddy!"  })
};
</script>
于 2013-04-17T13:56:19.843 回答