Google 地方信息服务未显示确切结果
Google Places Service not displaying exact results
>我有 3 个问题,第一个:如果我选择一公里和两公里的银行,在右下角的印度商会黄页列表不断出现。第二个:如果我选择一公里的银行,然后选择两公里的银行,则仅出现1公里的银行和1公里到2公里的银行的第一组银行第三个:如果我选择1公里内的银行,银行出现在1000米的圆直径之外。
<!DOCTYPE html>
<html>
<head>
<style>
html, body, #map-canvas {
height: 100%;
margin: 0px;
padding: 0px
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script src="https://maps.googleapis.com/maps/api/js?v=3&sensor=true&libraries=places"> </script>
<script>
var cityCircle;
var marker;
var clickmarker;
var latilong;
var map;
var infowindow = new google.maps.InfoWindow();
var myCenter;
var markers = [];
var circles = [];
google.maps.visualRefresh = true;
function initialize()
{
var styles = [
{
"stylers": [
{ "visibility": "on" },
{ "saturation": -40 },
{ "hue": "#F0FAFF" },
{ "weight": 1.7 }
]
}
]
myCenter=new google.maps.LatLng(13.0839, 80.2700);
var options = {
mapTypeControlOptions: {
mapTypeIds: ['Styled']
},
center:myCenter,
zoom: 14,
mapTypeId: 'Styled'
};
var div = document.getElementById('map-canvas');
map = new google.maps.Map(div, options);
var styledMapType = new google.maps.StyledMapType(styles, { name: 'Styled' });
map.mapTypes.set('Styled', styledMapType);
}
function setPlaces()
{
var placeType = document.getElementById('cmbMoreFunction').options[document.getElementById('cmbMoreFunction').selectedIndex].value;
var kiloDistance=document.getElementById('kilometers').options[document.getElementById('kilometers').selectedIndex].value ;
var request = {
location:myCenter,
radius: parseInt(kiloDistance),
types: [placeType]
};
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
for (var i = 0; i < circles.length; i++) {
circles[i].setMap(null);
}
for (var i = 0; i < results.length; i++) {
createMarker(results[i] , placeType);
}
}
}
function createMarker(place , placeType)
{
var placeLoc = place.geometry.location;
marker = new google.maps.Marker({
position: place.geometry.location
});
marker.setIcon({
url: placeType + '.png',
size: new google.maps.Size(70, 71),
anchor: new google.maps.Point(17, 14),
scaledSize: new google.maps.Size(35, 35)
});
marker.setMap(map);
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow.setContent(place.name);
infowindow.open(map, this);
});
markers.push(marker);
circles.push(cityCircle);
}
var circleOptions = {
map: map,
center: myCenter,
radius: parseInt(kiloDistance),
};
if (kiloDistance != -1) {
cityCircle = new google.maps.Circle(circleOptions);
};
var service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas" style="width: 90%; float:left"></div>
<div style="width: 10%; float:right">
<select id="cmbMoreFunction" onchange="setPlaces()" >
<option value="-1"><--Select--></option>
<option value="bank">Banks</option>
<option value="park">Parks</option>
<option value="store">Stores</option>
</select>
</div>
<select id="kilometers" onchange="setPlaces()" style="width: 10%; float:right">
<option value="-1"><--Select--></option>
<option value="1000">1 KM</option>
<option value="2000">2 KM</option>
<option value="3000">3 KM</option>
</select>
</body>
</html>
当您选择银行时,请求将始终返回 20 个结果(最大值)。例如,当我选择2公里时,1公里(对我来说)内仍有2个银行。
选择3km时,也不是2km内的所有公园都绘制(因为3km内有20个以上的公园,所以2km范围内的一些公园不包括在3km的结果中)。
就是这样,一个nearbySearch
最多返回 20 个结果,而不是更多。
您可以改用radarSearch()
,它最多返回 200 个结果。
但是,无论您使用哪种方法,都无法获得所有结果(除非结果少于限制定义的结果)。
相关文章:
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- JavaScript循环无法正确计算/显示结果
- 将循环中的两个文本框相乘,并在第三个文本框上显示结果
- BMI计算器以Javascript显示结果
- 在表中显示结果
- onchange选择get value并执行查询,然后在同一页面上显示结果
- 搜索XML文件并使用javascript显示结果
- Moment.js不显示结果
- 使用jQuery延迟表单输入,并在延迟后在同一页面上显示结果
- 防止 PHP 在新页面中显示结果
- jquery jqgrid 不显示结果,具体取决于 JSON 对象中的参数
- Angular-如何显示结果,仅在未选中时显示
- backbone.js视图没有't由于异步获取而显示结果;t渲染
- jqueryajax帖子将我发送到操作页面,并且不会显示结果数据
- 添加两个数字,并使用Javascript在文本框中显示结果
- 接受用户输入,与JSON数据匹配,并以javascript显示结果
- 自动完成 JQuery 不显示结果
- 控制台.log或显示结果的函数
- 提交表单,使用脚本处理信息,并在同一页面上显示结果
- AJAX 实时搜索仅当结果以相同的第一个字母开头时才显示结果