目前正在寻找我所在地区的当地餐馆,我正在使用附近的搜索功能,它没有生效,因为结果只是将我当前的位置带回模拟器,这里是我对附近搜索功能的看法(我使用当前位置作为我的纬度和经度)
function initialize() {
navigator.geolocation.getCurrentPosition(function(position) {
latlng = new google.maps.LatLng(currentLatitude, currentLongitude);
_map = new google.maps.Map(document.getElementById('map'), {
center: latlng,
zoom: 15
});
});
var request = {
location: latlng,
radius: '500',
query: ['restaurant']
};
}
var infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(_map);
//service.nearbysearch(request, callback);
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);
});
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
createMarker(results[i]);
}
}
}
对不起所有问题并感谢您的帮助,但搜索仍未显示,只显示我所在的位置。我有两行包含在我的html文件中
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA8QR7tvuRAV6SkXwLlBsQbAxBAnhuzxMA&libraries=places"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA8QR7tvuRAV6SkXwLlBsQbAxBAnhuzxMA&sensor=true"></script>
,我正在使用地理位置模板在英特尔XDK上开发此功能
答案 0 :(得分:0)
地理定位服务是异步的,您必须在其回调的时间/时间内使用其内部的数据。
var infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(_map);
function initialize() {
navigator.geolocation.getCurrentPosition(function(position) {
var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
_map = new google.maps.Map(document.getElementById('map'), {
center: latlng,
zoom: 15
});
// call the places service where/when the latlng variable exists.
var request = {
location: latlng,
radius: '500',
query: ['restaurant']
};
service.nearbysearch(request, callback);
});
}
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);
});
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
createMarker(results[i]);
}
}
}