【问题标题】:my google maps didn't show up我的谷歌地图没有显示
【发布时间】:2018-04-11 14:35:25
【问题描述】:

这是我的代码

if($_POST){

// get latitude, longitude and formatted address
$data_arr = geocode($_POST['address']);

// if able to geocode the address
if($data_arr){

    $latitude = $data_arr[0];
    $longitude = $data_arr[1];
    $formatted_address = $data_arr[2];

    ?>

    <!-- google map will be shown here -->
    <div id="gmap_canvas">Loading map...</div>
    <div id='map-label'>Map shows approximate location.</div>

    <!-- JavaScript to show google map -->
    <script type="text/javascript" src="https://maps.google.com/maps/api/js?key=AIzaSyAzAHc75U_oTsrxTjA6oNmpZFMqTXIQgCk"></script>
    <script type="text/javascript">
        function init_map() {
            var myOptions = {
                zoom: 14,
                center: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>),
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById("gmap_canvas"), myOptions);
            marker = new google.maps.Marker({
                map: map,
                position: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>)
            });
            infowindow = new google.maps.InfoWindow({
                content: "<?php echo $formatted_address; ?>"
            });
            google.maps.event.addListener(marker, "click", function () {
                infowindow.open(map, marker);
            });
            infowindow.open(map, marker);
        }
        google.maps.event.addDomListener(window, 'load', init_map);
    </script>

    <?php

    // if unable to geocode the address
}else{
    echo "No map found.";
}
}
?>
<body>
<form action="" method="post">
<input type='text' name='address' placeholder='Enter any address here' />
<input type='submit' value='Geocode!' />
</form>

<?php
// function to geocode address, it will return false if unable to geocode     address
function geocode($address){

// url encode the address
$address = urlencode($address);

// google map geocode api url
$url = "https://maps.googleapis.com/maps/api/geocode/json?address={$address}&key=AIzaSyAzAHc75U_oTsrxTjA6oNmpZFMqTXIQgCk";

// get the json response
$resp_json = file_get_contents($url);

// decode the json
$resp = json_decode($resp_json, true);

// response status will be 'OK', if able to geocode given address
if($resp['status']=='OK'){

    // get the important data
    $lati = isset($resp['results'][0]['geometry']['location']['lat']) ? $resp['results'][0]['geometry']['location']['lat'] : "";
    $longi = isset($resp['results'][0]['geometry']['location']['lng']) ? $resp['results'][0]['geometry']['location']['lng'] : "";
    $formatted_address = isset($resp['results'][0]['formatted_address']) ? $resp['results'][0]['formatted_address'] : "";

    // verify if data is complete
    if($lati && $longi && $formatted_address){

        // put the data in the array
        $data_arr = array();

        array_push(
            $data_arr,
            $lati,
            $longi,
            $formatted_address
        );

        return $data_arr;

    }else{
        return false;
    }

}

else{
    echo "<strong>ERROR: {$resp['status']}</strong>";
    return false;
}
}

现场演示在http://econmarket.000webhostapp.com/tracking.php 它只显示加载地图,地图显示大致位置。我读了一些文章,它说我需要把传感器放在哪里,但我不知道放在哪里,也许如果我把 sensor=true 它会工作。我需要添加或删除一些东西吗?

【问题讨论】:

  • 我检查了你的页面,那里没有 javascript 并且函数 init_map() 不存在。我认为您应该检查所有代码
  • @WernerWaage 在地理编码中找到内容后会显示
  • 您应该将地图的初始化与显示数据分开。如果您找到大概位置或其他什么,您可以使用 javascript 函数动态更改/更新地图。

标签: javascript php google-maps geocoding google-geocoding-api


【解决方案1】:

您的地图没有高度。

CSS:

#gmap_canvas {
   height: 400px;
}

【讨论】:

  • 天哪,你救了我,非常感谢!我忘记了一些愚蠢的事情
  • 没问题,我们都去过那里;-)
猜你喜欢
  • 1970-01-01
  • 2014-12-27
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 2018-02-11
  • 1970-01-01
  • 2020-04-03
  • 1970-01-01
相关资源
最近更新 更多