使用谷歌地图搜索当前位置的附近学校?

时间:2017-07-25 09:38:08

标签: javascript css google-maps currentlocation

我试图在当前位置显示附近的学校,但是,我不知道如何合并它们,我为获取当前位置制作了一个单独的程序,但现在我想显示当前位置附近的附近位置。我做了fiddle。在这里,我们给出静态lat和longs,我希望它们是我当前的位置lat和longs。所以在我目前的位置,我可以看到附近的学校

var pyrmont = {lat: -33.867, lng: 151.195};

2 个答案:

答案 0 :(得分:1)

请尝试此代码。

在这里你需要从脚本标签 callback = initMap 中删除回调,所以它将如下所示。

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&libraries=places" async defer></script> 

因为首先我们调用getLocation()并且在从地理位置获取值之后,我们手动调用initMap();

var temp_lat = '';
    var temp_lng = '';
    var map;
    var infowindow;
    getLocation();
    function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else { 
            temp_lat = 0.0; //set default lat value
            temp_lng = 0.0; //set default lng value
    }
}

function showPosition(position) {
    temp_lat = position.coords.latitude;
    temp_lng = position.coords.longitude;
    initMap();
}


 function initMap() 
 {
 var pyrmont = {lat: temp_lat, lng: temp_lng};
 map = new google.maps.Map(document.getElementById('map'),
 { center: pyrmont, zoom: 15 }); 
 infowindow = new google.maps.InfoWindow(); 
 var service = new google.maps.places.PlacesService(map);  service.nearbySearch(
 { location: pyrmont, radius: 500, type: ['school'] },
 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() { infowindow.setContent(place.name); infowindow.open(map, this); }); }

希望这有帮助。

答案 1 :(得分:0)

https://www.w3schools.com/html/html5_geolocation.asp 使用html5地理位置获取当前位置,它将返回lat long,然后将其传递给pyrmont变量lat和long