2011-11-29 118 views
0

全部, 我有一些位置存储在我的数据库中的长和坐标。我在为每个地点创建地图或为所有地点添加标记之间进行辩论。任何意见将赞赏这个想法,但我的问题是,我从我的MySQL数据库中获取这些值。它看起来像你真正可以添加这些的唯一方法是通过javascript。我是否需要将坐标传递给javascript函数以创建标记?那看起来怎么样?任何建议表示赞赏!用PHP创建Google地图标记

回答

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!" 
    }); 
    } 

在<脚本类型=“文/ JavaScript的”> - 标记在页面上。 以上是取自http://code.google.com/apis/maps/documentation/javascript/examples/marker-simple.html,所以你必须适应它的需求。

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文档中的文章“太多标记!”: http://code.google.com/apis/maps/articles/toomanymarkers.html