我有一个 api,因为有很多数据,所以分页。现在我正在尝试做谷歌地图,我使用 API 从数据库中获取纬度和液化天然气。我仍然只得到 API 数据的第一页。我的代码有什么问题?我应该改变什么。请帮忙。我会很高兴你的。
你好。我有一个 api 由于大量数据而分页。现在我正在尝试做谷歌地图,我使用 API 从数据库中获取纬度和液化天然气。我仍然只得到 API 数据的第一页。我的代码有什么问题?我应该改变什么。请帮忙。我会很高兴你的。
<script>
function initMap(map) {
var start_point = new google.maps.LatLng(27.772321, 1.803125);
// Creating a new map
var map = new google.maps.Map(document.getElementById("companies-map"), {
center: start_point,
zoom: 2,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
function setMarkerPoints(map) {
var bounds = new google.maps.LatLngBounds();
var mc = [];
var infoWindow = new google.maps.InfoWindow();
url = '/api/companies/map/',
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(data, pagination) {
$.each(data.results, function(marker, data) {
var latLng = new google.maps.LatLng(data.point.latitude, data.point.longitude);
bounds.extend(latLng);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
animation: google.maps.Animation.DROP,
map: map,
});
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent('<a href="' + data.title + '" class="text-primary hover-dark">' + data.name + '</a><br>' + data.name);
infoWindow.open(map, marker);
});
mc.push(marker);
});
if (pagination.hasNextPage) {
pagination.nextPage();
};
new MarkerClusterer(map, mc, {
imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'
});
},
error: function(data) {
console.log('Please refresh the page and try again');
}
});
//END MARKER DATA
// end loop through json
}
setMarkerPoints(map);
}
google.maps.event.addDomListener(window, 'load', renderGoogleMap);
renderGoogleMap();
</script>
非常感谢
您需要创建一个 PlaceSearchPagination 对象才能访问其他页面。对象是通过回调函数创建的。
https://developers.google.com/maps/documentation/javascript/places#place_search_responses
查看"访问其他结果"部分,特别是在注释"//创建地点服务"和"//执行附近搜索"下。