2010-06-28 46 views
-1

我想在页面上设置一个地图,下面有一些链接,点击时会动态地查询我的数据库和结果集输出地图。我花了很多时间用google搜索,但找不到我期待的内容。我尽可能使用AJAX返回经纬度坐标,但我在尝试在地图上创建标记时出错了,虽然我没有生成任何错误,但没有出现任何内容。谷歌地图API V3 - 从查询结果中动态添加多个标记

+1

你能告诉我们你到目前为止 - 也许通过pastebin? – 2010-06-28 13:08:44

+0

当然,这是链接。谢谢您的帮助。 http://pastebin.com/u7FUz7v0 – 2010-06-28 14:05:00

+2

好的,首先要检查的是 - Firebug展示给你的是什么?它允许您为自己的AJAX调用反思从服务器返回的数据。 – 2010-06-28 15:22:59

回答

1

你有这样的创造新的标志物:

var marker = new google.maps.Marker({ 
    position: results.DATA[i][2], 
    map: map, 
    title:"New marker" 
}); 
marker.setMap(map); 

results.DATA[i][2]值是像 “54.016893,-0.970721”。但位置必须是一个经纬度对象:

// turn "54.016893,-0.970721" into [54.016893,-0.970721"] 
var latLng = results.DATA[i][2].split(","); 

var marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(latLng[0], latLng[1]), 
    map: map, 
    title:"New marker" 
}); 

PS:另外,如果您指定的的MarkerOptions地图,你不需要也然后请呼叫setMap()函数。

1

代码没有测试过,但你可以做这样的事情

申报地图上,标记

var map; 
var markersArray = []; 
var myOptions = { 
    zoom: 10, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

以下功能将增加一个点映射

function plotPoint(srcLat,srcLon,title,popUpContent,markerIcon) 
{ 
    var myLatlng = new google.maps.LatLng(srcLat, srcLon);    
    var marker = new google.maps.Marker({ 
      position: myLatlng, 
      map: map, 
      title:title, 
      icon: markerIcon 
     }); 
    markersArray.push(marker); 
    var infowindow = new google.maps.InfoWindow({ 
     content: popUpContent 
    }); 
     google.maps.event.addListener(marker, 'click', function() { 
     infowindow.open(map,marker); 
    });           
} 

获取您的积分,并添加他们就像

var lat = 44.856051; 
var lng = -93.242539; 
plotPoint(lat,lng,'Mall of America','<span class="gBubble"><b>Mall of America</b><br>60 East Brodway<br>Bloomington, MN 55425</span>');