为什么这个PHP不能与谷歌地图一起工作?

时间:2011-09-17 02:33:52

标签: php javascript google-maps

我试图弄清楚为什么这个PHP脚本没有创建我在HTML中指定的地图。任何想法?

<!doctype html>

<html>
    <head>

        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

        <style>

            html { height: 100% }
            body { height: 100%; margin: 0; padding: 0 }
            #map { height: 100% }

        </style>

        <script
        src="http://maps.googleapis.com/maps/api/js?sensor=false">

        </script>

        <?php
            $lat = $_POST['lat'];
            $long = $_POST['long'];

            echo "

        <script>

            function callMap() {

                var latlng = new google.maps.LatLng($lat, $long);"; ?>
                var options = {
                    zoom: 5,
                    center: latlng,
                    mapTypeId = google.maps.MapTypeId.TERRAIN

                };
                var map = new google.maps.Map(document.getElementById("map"),
                options);


            }

        </script>
    </head>
    <body onload="callMap()">
    <div id="map"></div>




    </body>

</html>

3 个答案:

答案 0 :(得分:3)

您的options声明语法搞砸了:

var options = {
    zoom: 5,
    center: latlng,
    mapTypeId = google.maps.MapTypeId.TERRAIN // ERROR
};

应该是

var options = {
    zoom: 5,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.TERRAIN
};

答案 1 :(得分:0)

您还错过了google js链接上的一个括号。

答案 2 :(得分:-1)

我不使用PHP,因此无法判断该代码是否有任何问题。如果删除了PHP和硬编码的lat / lon值,地图是否有效?也许一个问题可能就是表格以纬度和经度发布的价值。您没有进行任何类型的验证以确保它们在可接受的范围内,例如纬度为+90至-90,经度为+80至-180。