目标:我想要一个自定义搜索(地理编码)功能,并且能够列出并单击每个结果并将其显示在地图上。
需要:相应地调整地图边界/缩放级别,即搜索“MA, USA”应该放大地图以让我看到整个马萨诸塞州,而搜索“Boston, MA, USA”应该放大波士顿地区。列出多个结果时,单击结果时也应如此。
问题:我可以将geometry.bounds 对象与fitBounds 一起使用-但是-您使用地理编码器获得的某些结果没有该geometry.bounds 对象。
一个简单的例子:搜索“波士顿”返回
美国马萨诸塞州
波士顿 美国印第安纳州
波士顿 美国肯塔基州
波士顿 美国乔治亚州波士顿 31626 美国
弗吉尼亚州塞勒姆波士顿 22713 美国
纽约州波士顿 14025
“Boston, KY”和“Boston NY 14025”都没有界限。
问题:是否有可靠的方法以适当的缩放级别在地图上显示任何地理编码器结果?
现在我正在使用类似的东西,但我觉得这很难看,它不能解决缩放问题
if (results[0].geometry.bounds) {
map.fitBounds(results[0].geometry.bounds);
} else {
map.setCenter(results[0].geometry.location);
// eventually set zoom here to some middle-range value (ugly)
}