Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图显示新请求后的旧方向_Javascript_Google Maps - Fatal编程技术网

Javascript 谷歌地图显示新请求后的旧方向

Javascript 谷歌地图显示新请求后的旧方向,javascript,google-maps,Javascript,Google Maps,在有人发出新的方向请求后,我很难从谷歌地图API中清除数据 让我来解释一下情况:一个用户来到该站点,决定获取到我们所在位置的路线。用户填写他或她现在所在的位置。用户可以很好地获取数据,但问题是,当他/她进入一个新位置时,旧的方向仍保留在面板中。我发现要清除它,可以使用这行代码 directionsDisplay.setPanel(null); 我遇到的问题是,我无法在代码中找到它的位置(是的,我是js新手) 以下是我到目前为止的情况: function calculateDirections(

在有人发出新的方向请求后,我很难从谷歌地图API中清除数据

让我来解释一下情况:一个用户来到该站点,决定获取到我们所在位置的路线。用户填写他或她现在所在的位置。用户可以很好地获取数据,但问题是,当他/她进入一个新位置时,旧的方向仍保留在面板中。我发现要清除它,可以使用这行代码

directionsDisplay.setPanel(null);
我遇到的问题是,我无法在代码中找到它的位置(是的,我是js新手)

以下是我到目前为止的情况:

function calculateDirections(locFrom, locTo) {
    var directionsDisplay = new google.maps.DirectionsRenderer();
    var directionsService = new google.maps.DirectionsService();
    var mapContainer = $('#contactInfo');
    var mapPanel = $('#mapPanel');
    var request = {
        origin: locFrom,
        destination: 'Address 01, City',
        travelMode: google.maps.TravelMode.DRIVING
    };
    var myOptions = {
        zoom: 15,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        center: locFrom
    };

    directionsService.route(request, function(result, status) {
        if(status == google.maps.DirectionsStatus.OK) {
            // Build frame
            var map = new google.maps.Map(document.getElementById('maps'), myOptions);  
            directionsDisplay.setPanel(document.getElementById("mapPanel"));
            directionsDisplay.setDirections(result);
            directionsDisplay.setMap(map);
            $('#contactInfo').css('top', '30px');
            $('#contactInfo').css('padding-bottom', '15px');
        }
        else {
            alert('Could not calculate route');
        }
    });
}
我想,我应该从directionsDisplay.setPanel(null)开始;然后加载数据,这样在每次迭代中,您就可以开始清除数据。然而,我在我的头与这项任务。非常感谢您的帮助

编辑:

作为记录,应用程序有1个固定点(我们业务的位置),locFrom是来自用户的位置(可以是任何位置)

编辑:

以下是标记:

<div id="maps"></div>
   <div id="menu">
    <div class="contentWrapperLeft"></div>
    <div id="contactInfoRoute">
        <h2>Route</h2>          
                <input type="text" name="street" id="street" rel="Straat">
        <input type="text" name="place" id="place" rel="Plaats">
        <input type="button" name="submit" id="submit" value="Route">
    </div>

        <div id="contactInfo"> 
            <div id="mapPanel"></div>
            <p>Address 01 <br /> City, Country</p> 
        </div>
    </div>

路线
地址01
城市、国家


我认为locFrom是问题所在,您单击按钮时似乎没有发送新值?尝试捕获locfrom以查看它是否在操作后更新?因为通常情况下,无需进行任何重大修改就可以使用API地图。

我认为locFrom是问题所在。当您单击按钮时,似乎没有发送新值?尝试捕获locfrom以查看它是否在操作后更新?因为通常情况下,无需进行任何重大修改即可使用API地图。

我提出的解决方案如下:

我所做的是在请求发出之前编写一个空的mapPanel div 这样做的:

mapPanel.html('');
我把这一行放在变量“map”的上面,这使它工作起来没有任何问题


我提出的解决方案如下:

我所做的是在请求发出之前编写一个空的mapPanel div 这样做的:

mapPanel.html('');
我把这一行放在变量“map”的上面,这使它工作起来没有任何问题