使用PHP创建Google地图标记

时间:2011-11-29 16:46:25

标签: php javascript mysql google-maps google-maps-markers

全部, 我有一些位置存储在我的数据库中,具有长坐标和纬度坐标。我在为每个位置创建地图或为所有位置添加标记之间进行辩论。任何建议都会受到赞赏,但我的问题是我从mySQL数据库中获取这些值。看起来你可以实际添加这些的唯一方法是通过javascript。我是否需要将坐标传递给javascript函数来创建标记?那怎么样?任何建议都表示赞赏!

2 个答案:

答案 0 :(得分:3)

你是对的。您必须从数据库中获取数据并使用以下内容:

  function initialize() {
    var myLatlng = new google.maps.LatLng(<?php echo $lat; ?>,<?php echo $long; ?>);
    var myOptions = {
      zoom: 4,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var marker = new google.maps.Marker({
        position: myLatlng, 
        map: map,
        title:"Hello World!"
    });   
  }

在&lt;页面上的脚本类型=“text / javascript”&gt; -tag。 以上内容取自http://code.google.com/apis/maps/documentation/javascript/examples/marker-simple.html,因此您必须根据自己的需要进行调整。

答案 1 :(得分:0)

是的,您需要将数据库中的长坐标和纬度坐标传递到网页上的Javascript代码,以便在地图上为它们创建标记。如果您使用PHP代码生成页面,这意味着编写PHP代码来查询数据库,然后使用包含的Javascript代码echo()HTML页面。

zrvan上面的回复使用new google.maps.LatLng()来创建单个坐标对象并绘制单个标记。如果您决定在单个地图上放置多个标记,我建议将标记的数据放入Javascript数组数据结构中。然后编写一个Javascript循环来为数组中的每个条目调用new google.maps.Marker()

Google Maps文档建议使用XML文档和AJAX调用将标记数据从数据库传送到网页。见http://code.google.com/apis/maps/articles/phpsqlajax.html

如果您在一张地图上获得了超过几百个标记,您可能需要阅读Google Maps API文档中的论文&#34; Too Many Markers!&#34;, http://code.google.com/apis/maps/articles/toomanymarkers.html