【发布时间】:2014-04-26 04:32:06
【问题描述】:
我想知道是否可以将我的地图搜索限制为仅返回位于我的图层范围内的位置?
我知道您可以创建一个 bounds 对象,然后使用它来检查您搜索的内容是否在其中,但我不知道如何正确实现它并阻止地图在全球范围内移动到错误的位置。
如果我搜索一个邮政编码扇区(即在我的融合表/图层中),就会出现问题,有时它会将我带到中国的一条名称与邮政编码扇区相同的高速公路(例如“G1”)。 我可以理解谷歌是否设置了优先查找具有该名称的位置而不是我的融合表,但是如果我搜索“G84”,它将显示我的表/图层中的正确区域,所以它让我认为它正在寻找先上桌却把优先权分配到了错误的地方?
这是我的代码的 JSFiddle,我已经从我的代码中添加了所有内容,但我无法在此处显示地图:http://jsfiddle.net/3U4Vd/10/
function initialize() {
var tableId = '1S0FCMn-wGr2zy6SrAnre6HNF_KghfZmObb4sNLc';
var geocoder = new google.maps.Geocoder();
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(55.864237, -4.2518059999999880),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
layer = new google.maps.FusionTablesLayer({
query: {
select: "col40>>0",
from: '1S0FCMn-wGr2zy6SrAnre6HNF_KghfZmObb4sNLc'
},
map: map,
styleId: 2,
templateId: 2
});
}
这是我最初加载的地图和图层。
【问题讨论】:
-
感谢您解决这个问题!你能告诉我我的版本有什么问题吗?
-
基本的变化是在用户界面左上角的第二个下拉菜单中,我将选择从
onload更改为no wrap - in <body/> -
太棒了,非常感谢!!
标签: javascript google-maps google-maps-api-3 google-fusion-tables