2012-10-10 75 views
0

嘿,我是新来的谷歌地图API,我有一个嵌入式地图,我使用地理定位获取用户经纬度,然后我填写在地图api的差距。地图,但是当我使用生成的纬度和长期不工作,但如果我只需要输入一个在谷歌地图API和地理位置,Javascript和Html

非工作代码确实工作:

 var map; 
    var infowindow; 

    function initialize() { 

    if (navigator.geolocation) 
    { 
    navigator.geolocation.getCurrentPosition(showPosition); 
    } 
    function showPosition(position) 
    { 

    var latlon = new google.maps.LatLng(position.coords.latitude + "," + position.coords.longitude); 

    map = new google.maps.Map(document.getElementById('map'), { 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: latlon, 
     zoom: 15, 
     disableDefaultUI: true 
    }); 

    var request = { 
     location: latlon, 
     radius: 555, 
     types: ['bar'] 
    }; 
    infowindow = new google.maps.InfoWindow(); 
    var service = new google.maps.places.PlacesService(map); 
    service.search(request, callback); 
    } 

    function callback(results, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) { 
     for (var i = 0; i < results.length; i++) { 
     createMarker(results[i]); 
    } 
    } 
    } 
    } 

    function createMarker(place) { 
    var placeLoc = place.geometry.location; 
    var marker = new google.maps.Marker({ 
     map: map, 
     position: place.geometry.location 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     alert(place.name); 
    }); 
    } 

    google.maps.event.addDomListener(window, 'load', initialize); 

工作代码

var map; 
    var infowindow; 

    function initialize() { 
    var latlon = new google.maps.LatLng(-33.8665433, 151.1956316); 

    map = new google.maps.Map(document.getElementById('map'), { 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: latlon, 
     zoom: 15, 
     disableDefaultUI: true 
    }); 

    var request = { 
     location: latlon, 
     radius: 555, 
     types: ['bar'] 
    }; 
    infowindow = new google.maps.InfoWindow(); 
    var service = new google.maps.places.PlacesService(map); 
    service.search(request, callback); 
    } 

    function callback(results, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) { 
     for (var i = 0; i < results.length; i++) { 
     createMarker(results[i]); 
     } 
    } 
    } 

    function createMarker(place) { 
    var placeLoc = place.geometry.location; 
    var marker = new google.maps.Marker({ 
     map: map, 
     position: place.geometry.location 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     alert(place.name); 
    }); 
    } 

    google.maps.event.addDomListener(window, 'load', initialize); 

任何帮助,如果赞赏:)

回答

2

替换您行:

var latlon = new google.maps.LatLng 
     (position.coords.latitude + "," + position.coords.longitude); 

var latlon = new google.maps.LatLng 
     (position.coords.latitude, position.coords.longitude); 

的问题是在连接两个值代入一个其中构造需要两个参数。

+0

非常感谢你,这工作完美:)会标记你,但没有足够的代表和堆栈溢出说我不能在9分钟内选择你作为正确的答案,但这是完美的:) – user1543582