我正在尝试使用Google Maps API。我在其中使用Google DirectionsService在地图上绘制路线。
我已经存储了很少的DirectionResults对象。我想加载到地图上。
以下是我写的代码;
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
加载存储的json(DirectionsResult对象格式)
$.getJSON('GoogleJson.json', function (json) {
debugger;
data = json;
});
调用DirectionsService.Route()方法;
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(data);
console.log(data);
console.log(response);
}
});
这是一个错误。如果我们在setDirections()
中使用响应对象,则会使用路径呈现地图。但是,如果我使用getJSON()
方法从文件加载它,则会出现上述错误。
在上面的代码中,如果我们查看数据和响应对象,两者都是相同的。
编辑:
我添加了支票
if (data != response) {
console.log(typeof data);
console.log(typeof response);
}
if (data == response)
alert('both objects are same');
对象似乎不一样。 typeof
语句表示两者都是对象类型。
答案 0 :(得分:0)
假设您的数据包含routes
所期望的directionsDisplay.setDirections
(我不这么认为):在directionsResult中还有另一个未记录的属性是必需的(返回原始要求)。此函数的名称是动态的,因此可能:
结论:存储的directionsResult可能无法创建方向(至少在会话中不安全)
我能想到的唯一解决方法是存储原始请求,发送虚拟请求以检索函数所需的名称,然后使用此名称恢复该函数。