Javascript 谷歌地图:通过地理编码器将地址转换成坐标后获取方向

Javascript 谷歌地图:通过地理编码器将地址转换成坐标后获取方向,javascript,google-maps,google-maps-api-3,google-geocoder,Javascript,Google Maps,Google Maps Api 3,Google Geocoder,我从谷歌地图上找到了本地环境,但是在弹出的附近位置上,我很难找到方向 这是我正在使用的代码。看起来“directionsOptions:{origin:center}”运行得太晚了,但我无法将其上移,因为“center”直到稍后才定义。有没有办法早点去setCenter?至少我认为这是问题所在 let映射; 函数initMap(){ const localContextMapView=new google.maps.localContext.localContextMapView({ 元素:d

我从谷歌地图上找到了本地环境,但是在弹出的附近位置上,我很难找到方向

这是我正在使用的代码。看起来“directionsOptions:{origin:center}”运行得太晚了,但我无法将其上移,因为“center”直到稍后才定义。有没有办法早点去setCenter?至少我认为这是问题所在

let映射;
函数initMap(){
const localContextMapView=new google.maps.localContext.localContextMapView({
元素:document.getElementById(“map”),
地点类型偏好:[“餐厅”、“旅游景点”,
“酒吧”、“咖啡馆”、“书店”、“便利店”、“医院”],
maxPlaceCount:24,
});
map=localContextMapView.map;
让geocoder=new google.maps.geocoder();
geocoder.geocode({地址:美国加利福尼亚州纽霍尔市缅因大街25325号“},(结果,状态)=>{
如果(状态==“正常”){
const center=results[0]。geometry.location;
地图设置中心(中心);
新的google.maps.Marker({position:center,map:map});
map.setOptions({
方向选项:{原点:中心},
中心:中心,,
缩放:14,
});
}否则{
警报(“地理编码因以下原因未成功:“+状态”);
}
});
}
#地图{
身高:100%;
}
/*可选:使示例页面填充窗口*/
html,
身体{
身高:100%;
保证金:0;
填充:0;
}

本地上下文基本

google.maps.Map
没有
方向选项
属性。请参阅。您需要将其设置为
localContextMapView

localContextMapView.directionsOptions = {
  origin: center
};
也就是说,使用您提供的代码,如果地理编码器失败,您将无法显示任何地图。这就是我们想要的行为吗

let映射;
函数initMap(){
const localContextMapView=new google.maps.localContext.localContextMapView({
元素:document.getElementById(“map”),
地点类型偏好:[“餐厅”、“旅游景点”,
“酒吧”、“咖啡馆”、“书店”、“便利店”、“医院”
],
maxPlaceCount:24,
});
map=localContextMapView.map;
让geocoder=new google.maps.geocoder();
地理编码({
地址:“美国加利福尼亚州纽霍尔大街25325号”
},(结果、状态)=>{
如果(状态==“正常”){
const center=results[0]。geometry.location;
map.setOptions({
中心:中心,,
缩放:14
});
新的google.maps.Marker({
位置:中,
地图:地图
});
localContextMapView.directionsOptions={
产地:中
};
}否则{
警报(“地理编码因以下原因未成功:“+状态”);
}
});
}
#地图{
高度:400px;
}
/*可选:使示例页面填充窗口*/
html,
身体{
高度:400px;
保证金:0;
填充:0;
}

本地上下文基本

超级光滑。谢谢你帮助我更好地了解发生了什么。拖动或缩放贴图时,渲染的本地上下文贴图不显示其他POI结果是否正常?是的。您需要使用
localContextMapView.locationRestriction=map.getBounds()就像我在第二个代码片段中为geocoder成功所做的那样,但是在map事件侦听器中这样做。请参阅我在
bounds\u changed
事件(即平移或缩放地图时)中实现的第二个编辑片段。谢谢。这相当大程度上打开了功能。你知道有没有办法改变方向的上下文?(走路还是开车)最近的一次迭代中发生了一件有趣的事情,每次我点击一个导致边界改变的POI,它就会关闭placeDetails窗口,事情可能会闪现一会儿。你可以在这里看到:不,步行只是表面上。是的,我没有看到这种行为。
bounds\u changed
表示地图边界发生变化时。。。不仅通过用户交互。因此,我认为您唯一的选择是使用
dragend
事件,该事件将在用户平移地图时调整位置。但这不会对缩放更改做出反应。。。如果您实施了
zoom\u changed
事件,那么同样的问题也会发生。记住,本地上下文映射仍处于测试阶段。您应该在此处报告问题并打开功能请求:代码已更新。