-1

我正在尝试获取由传递给函数初始化的地理编码生成的坐标,以便可以绘制具有该位置的地图。我已经将变量从 php 转移到函数 initialize() 但它没有读取纬度和经度值。

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>

        <?php


    $dlocation =$_POST['address'];
// Get lat and long by address      
        $address = $dlocation; // Google HQ
        $prepAddr = str_replace(' ','+',$address);
        $geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false');
        $output= json_decode($geocode);
        $latitude = $output->results[0]->geometry->location->lat;
        $longitude = $output->results[0]->geometry->location->lng;


echo 'latitute:'.$latitude . "\n";
echo 'Longitude:'. $longitude. "\n";

?>
        <script type="text/javascript">





    function initialize()
{   var lati = "<?php echo $latitude;?>";
    var longi = "<?php echo $longitude;?>"

var latlng = new google.maps.LatLng(('lati', 'longi'));
var mapOptions = {
          center: new google.maps.LatLng('lati', 'longi'),
          zoom: 8,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map-canvas"),mapOptions);

}    

    </script>
        <title></title>
    </head>
    <body onload="initialize()">
        <div id="map-canvas" style="width: 1000px; height: 900px">


        </div>


    </body>
</html>
4

2 回答 2

1
var longi = "<?php echo $longitude;?>"
                                      ^ semi-colon is missing
                                        and it should be number, not string

var latlng = 
new google.maps.LatLng(('lati', 'longi'));
                         ^ you should pass variable value not string

center: new google.maps.LatLng('lati', 'longi'),
                               ^ same as above, variable, not string
于 2013-09-18T04:12:40.640 回答
0

改变你的功能看起来像这样

API参考,google.maps.LatLng 类构造函数接受Number

function initialize()
   {       
    var lati = parseFloat("<?php echo $latitude;?>");
    var longi= parseFloat("<?php echo $longitude;?>");

    var latlng = new google.maps.LatLng((lati, longi));
    var mapOptions = {
          center: new google.maps.LatLng(lati, longi),
          zoom: 8,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map-canvas"),mapOptions);
   }    

我不知道您的功能 wrt Google Maps 的正确性,这只是 javascript 修复

于 2013-09-18T04:38:11.623 回答