Google maps 单航路点工作,多航路点不,有什么想法吗?

Google maps 单航路点工作,多航路点不,有什么想法吗?,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,这段代码是为我编写的,过去可以使用,但现在多个航路点不起作用。 航路点在数据库中存储为|51.105166,-1.695971 | 51.105166,-1.695971 |。 只有一个航路点时,地图可以工作,但有多个航路点时,地图根本不显示 有人有什么建议吗 可以在这里的链接上查看。 var方向显示; var地理编码器; var directionsService=new google.maps.directionsService(); var latlng=新的google.maps.la

这段代码是为我编写的,过去可以使用,但现在多个航路点不起作用。 航路点在数据库中存储为|51.105166,-1.695971 | 51.105166,-1.695971 |。 只有一个航路点时,地图可以工作,但有多个航路点时,地图根本不显示

有人有什么建议吗

可以在这里的链接上查看。

var方向显示;
var地理编码器;
var directionsService=new google.maps.directionsService();
var latlng=新的google.maps.latlng(54.559322587438636,-4.1748046875);
函数加载(){
geocoder=新的google.maps.geocoder();
directionsDisplay=new google.maps.DirectionsRenderer();
变量myOptions={
缩放:6,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:拉特林,
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
位置:google.maps.ControlPosition.TOP\u右
},      
导航控制:对,
导航控制选项:{
样式:google.maps.NavigationControlStyle.ZOOM\u PAN,
位置:google.maps.ControlPosition.TOP_LEFT}
};
var map=new google.maps.map(document.getElementById('map'),myOptions);
方向显示.setMap(地图);
directionsDisplay.setPanel(document.getElementById(“directionsPanel”);
var directionrenderoptions={
对,,
多段线选项:{
strokeColor:#FF0000“,
频闪不透明度:1,
冲程重量:3
}
};
设置选项(方向渲染器选项);
var start='';
var-end='';

数组中似乎缺少一个逗号

var points = [{location: '51.105166,-1.695971'}{location: '51.105166,-1.695971'}];
应该是

var points = [{location: '51.105166,-1.695971'},{location: '51.105166,-1.695971'}];
一种方法是完全用php构建该字符串,而不是逐段输出,然后删除不需要的初始逗号。我根据收到的注释编辑了此代码,因此只构建[]和删除逗号之间的位置:

<?php
            if($via != null){
            $pointstring='';
            foreach($via as $point){
            if($point != ""){
            $pointstring.= ",{location:";
            $pointstring.= " '".$point."'";
            $pointstring.= "}";
            }   
            }
            echo "var points = [".substr($pointstring,1)."];\n";
            }
            ?>

谢谢Andrew,我现在只需要找到一种摆脱最后一个逗号的方法。我的方法不是添加最后一个逗号:它在任何东西之前添加第一个逗号,然后删除它。最后一个逗号在哪里?无论如何,删除最后一个字符是
substr($s,0,strlen($s)-1)
您的代码从var点删除了v,我可以看到您的建议,但我不知道如何操作?已编辑。只需构建数组元素,编辑该字符串,然后用Javascript将其包围。Andrew这很管用,非常感谢您的帮助和耐心。
<?php
            if($via != null){
            $pointstring='';
            foreach($via as $point){
            if($point != ""){
            $pointstring.= ",{location:";
            $pointstring.= " '".$point."'";
            $pointstring.= "}";
            }   
            }
            echo "var points = [".substr($pointstring,1)."];\n";
            }
            ?>