-1

你好,我试图让谷歌方向与地理位置一起工作,我已经完成了地理位置部分,它与方向链接并且工作正常,问题是当我尝试使其动态以便它为不同页面获取不同对象的方向时但是我只是无法让它工作,尽管我可以在目的地规范中回显一个变量,就是这样,但它不起作用,在源代码中目的地是变量而不是内容。这是我的代码

<?php $rows = mysql_fetch_array($results) or die(mysql_error());
    echo '<script>';
        echo 'if (navigator.geolocation){
            navigator.geolocation.getCurrentPosition(function (position) {
                var latitude = position.coords.latitude;
                var longitude = position.coords.longitude;
                var coords = new google.maps.LatLng(latitude, longitude);
                var directionsService = new google.maps.DirectionsService();
                var directionsDisplay = new google.maps.DirectionsRenderer();
                var mapOptions ={
                    zoom: 15,
                    center: coords,
                    mapTypeControl: true,
                    navigationControlOptions:{
                        style: google.maps.NavigationControlStyle.SMALL
                    },
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };
                map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
                directionsDisplay.setMap(map);
                directionsDisplay.setPanel(document.getElementById(\'panel\'));
                var request = {
                    origin: coords,';
                    $geo = $rows['GEO'];
                echo 'destination: \'$geo\',
                    travelMode: google.maps.DirectionsTravelMode.DRIVING
                };
                directionsService.route(request, function (response, status) {
                    if (status == google.maps.DirectionsStatus.OK) {
                        directionsDisplay.setDirections(response);
                    }
                });
            });
        }
        google.maps.event.addDomListener(window, \'load\', initialize);';
    echo '</script>';
?>

如果有人可以看到我做错了什么,请告诉我,感谢您的帮助。

编辑

我的查询(适用于它显示页面上的所有其他内容)

$id = $_GET["id"] ;
$sql = "SELECT * FROM Posts where id = $id" ;
$results = mysql_query($sql) or die(mysql_error()) ;

在数据库中 GEO 不是地理位置,它只是一个名称,如城镇或商店等。

4

2 回答 2

2

如果您使用 '. 像这样使用“:

            $geo = $rows['GEO'];
            echo 'destination: '."\'$geo\'".',
                travelMode: google.maps.DirectionsTravelMode.DRIVING
            };
于 2013-11-15T00:42:35.763 回答
2

您遇到的这个问题与单引号字符串有关,但您可能应该考虑使用HEREDOC格式。

这将为您提供正确$geo的字符串:

 echo "destination: '$geo',";

使用HEREDOC通常更容易阅读:

$geo = $rows['GEO'];
$html = <<<HTML
<script>
if (navigator.geolocation){
    navigator.geolocation.getCurrentPosition(function (position) {
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
        var coords = new google.maps.LatLng(latitude, longitude);
        var directionsService = new google.maps.DirectionsService();
        var directionsDisplay = new google.maps.DirectionsRenderer();
        var mapOptions = {
            zoom: 15,
            center: coords,
            mapTypeControl: true,
            navigationControlOptions:{
                style: google.maps.NavigationControlStyle.SMALL
            },
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
        directionsDisplay.setMap(map);
        directionsDisplay.setPanel(document.getElementById('panel'));
        var request = {
            origin: coords,
            destination: '$geo',
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
        directionsService.route(request, function (response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                directionsDisplay.setDirections(response);
            }
        });
    });
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
HTML;
echo $html;
于 2013-11-15T00:42:43.543 回答