【问题标题】:displaying markers on google map from mysql从 mysql 在谷歌地图上显示标记
【发布时间】:2015-10-29 20:25:01
【问题描述】:

我将 lng/lat 值存储在 mysql 中并尝试在谷歌地图上显示它们...

 <?php  
    require ('db_info.php');
    $connection = mysql_connect($server, $username, $password);
    $db_selected = mysql_select_db($database, $connection);

    ?>

    <html lang="en">
    {% include 'components/head.html' %}

    <body>
    <div id = "wrapper">
    {% include 'components/nav-account.html' %}
    <div id = "page-wrapper">
    {% include 'components/alerts.html' %}

    <div class = "container">
    <style type = "text/css">
    html, body, #map-canvas{ height:100%;
    margin:0;
    padding:0;
    }
    </style>
    <script type = "text/javascript"
    src = "https://maps.googleapis.com/maps/api/js?
                            key=AIzaSyB76xBqfQdgOLV77VK3JZ09vWwk8brkMFs">
    </script>
    <script type="text/javascript">

    function addMarker(lat, lng){
        var pt = new google.maps.LatLng(lat, lng);
        var marker = new google.maps.Marker({
            position: pt,
            map: map
        });
    }

    function initialize() {
        var mapOptions = {
            center: {lat: 54.872128, lng: -6.284874},
            zoom: 15
        };
        var map = new google.maps.Map(document.getElementById('map-canvas'),
                mapOptions);         
  } 

     google.maps.event.addDomListener(window, 'load', initialize);

    <?php 
        $query = mysql_query("select * from tester") or die(mysql_error());
        while($row = mysql_fetch_array($query)){

            $lat = $row['lat'];
            $lng = $row['lng'];           
            echo ("addMarker($lat, $lng)");       
        }
    ?>


    </script>

    <div id="map-canvas" style="height:600px; width:600px;
         margin-top:100px; margin-bottom: 100px;
         ">

    </div>
    </div>
    {% include 'components/footer.html' %}    
    </div>
    </div>
    </body>
    </html>

目前地图根本没有显示,但这是在我尝试从数据库中检索信息之前。 任何帮助将不胜感激!

【问题讨论】:

  • 也许尝试在此处添加另一个分号? echo ("addMarker($lat, $lng);");
  • @Don'tPanic - 不错的地方,但不幸的是仍然没有:(

标签: javascript php mysql google-maps-markers


【解决方案1】:

您需要将 addMarker 调用移至初始化函数内部。 在进行初始化调用之前,没有地图因此无法添加标记。

我没有检查您的代码的语法。 您还需要一个名为 map 的全局 javascript 变量... 变种地图=空; 这需要在初始化调用之外,然后将 var map 丢弃在里面,而只使用 map =

 <?php  
    require ('db_info.php');
    $connection = mysql_connect($server, $username, $password);
    $db_selected = mysql_select_db($database, $connection);

    ?>

    <html lang="en">
    {% include 'components/head.html' %}

    <body>
    <div id = "wrapper">
    {% include 'components/nav-account.html' %}
    <div id = "page-wrapper">
    {% include 'components/alerts.html' %}

    <div class = "container">
    <style type = "text/css">
    html, body, #map-canvas{ height:100%;
    margin:0;
    padding:0;
    }
    </style>
    <script type = "text/javascript"
    src = "https://maps.googleapis.com/maps/api/js?
                            key=AIzaSyB76xBqfQdgOLV77VK3JZ09vWwk8brkMFs">
    </script>
    <script type="text/javascript">
    var map = null;

    function addMarker(lat, lng){
        var pt = new google.maps.LatLng(lat, lng);
        var marker = new google.maps.Marker({
            position: pt,
            map: map
        });
    }

    function initialize() {
        var mapOptions = {
            center: {lat: 54.872128, lng: -6.284874},
            zoom: 15
        };
        map = new google.maps.Map(document.getElementById('map-canvas'),
                mapOptions);         

    <?php 
        $query = mysql_query("select * from tester") or die(mysql_error());
        while($row = mysql_fetch_array($query)){

            $lat = $row['lat'];
            $lng = $row['lng'];           
            echo "addMarker($lat, $lng);";       
        }
    ?>
  } 

     google.maps.event.addDomListener(window, 'load', initialize);

    </script>

    <div id="map-canvas" style="height:600px; width:600px;
         margin-top:100px; margin-bottom: 100px;
         ">

    </div>
    </div>
    {% include 'components/footer.html' %}    
    </div>
    </div>
    </body>

【讨论】:

  • 干杯 - 但是仍然无法正常工作,所以可能是语法问题?!我将检查它以及我的数据库信息。
  • 我的问题可能是我在 javascript 函数中使用 php 吗?
  • 不...请记住 PHP 将文本推送到浏览器...因此您可以在任何地方编写 javascript。浏览器一旦收到所有页面(由 php 生成)就会执行 javascript...我没有看到任何明显的语法问题....但是如果您能准确描述您所看到的内容将会很有帮助。
  • 啊,好的。谢谢。我是我的页眉、导航栏和页脚,但没有别的。从初始化中删除 php 部分后,我可以看到我的地图,但显然没有标记!
  • 所以你的 php 代码可能有问题...你应该检查你的网络服务器日志看看问题是什么。
猜你喜欢
  • 1970-01-01
  • 2013-07-22
  • 2021-07-07
  • 2015-01-25
  • 2019-05-17
  • 1970-01-01
  • 2014-01-07
相关资源
最近更新 更多