Google Map V3:使用AJAX + ASP / PHP加载标记并在Ruquest或事件上重新加载

时间:2011-10-07 22:59:22

标签: ajax google-maps-api-3

您好我搜索了很多东西并找到了很多内容但却没找到我实际需要的内容。

我可以加载所有标记但无法刷新或重新加载它请帮我解决这里的代码:

    $(document).ready(function() {

    var myLatLng = new google.maps.LatLng(24.86802, 67.06416);
  MYMAP.init('#map', myLatLng, 11);

  $(document).ready(function(e){
        MYMAP.placeMarkers('testasp.asp');

  });
});


var curr_infw;
var MYMAP = {
    map: null,
    bounds: null,
    infowindow:null
}

MYMAP.init = function(selector, latLng, zoom) {
  var myOptions = {
    zoom:zoom,
    center: latLng,
    mapTypeId: google.maps.MapTypeId.HYBRID
  }
  this.map = new google.maps.Map($(selector)[0], myOptions);
    this.bounds = new google.maps.LatLngBounds();
}

MYMAP.placeMarkers = function(filename) {
    $.get(filename, function(xml){
        $(xml).find("marker").each(function(){
            var name = $(this).find('name').text();
            var address = $(this).find('address').text();

            // create a new LatLng point for the marker
            var lat = $(this).find('lat').text();
            var lng = $(this).find('lng').text();
            var point = new google.maps.LatLng(parseFloat(lat),parseFloat(lng));
            var infowindow = null;

            // extend the bounds to include the new point
            MYMAP.bounds.extend(point);

            var marker = new google.maps.Marker({
                position: point,
                map: MYMAP.map,
                clickable: true,
                icon: 'truck_green.png'

            });

            //var infowindow = null;
            infoWindow = new google.maps.InfoWindow();
            var html='<strong>'+name+'</strong.><br />'+address;
            google.maps.event.addListener(marker, 'mouseover', function() {
                infoWindow.setContent(html);
                infoWindow.open(MYMAP.map, marker);





            });
            MYMAP.map.fitBounds(MYMAP.bounds);
        });
    });
}

如果有人帮助我,我想使用click事件或settimeout函数刷新它。

关心并期待尽快在这里听到。感谢

2 个答案:

答案 0 :(得分:0)

不是答案,但这意味着什么?

    $(document).ready(function() {

    var myLatLng = new google.maps.LatLng(24.86802, 67.06416);
  MYMAP.init('#map', myLatLng, 11);

  $(document).ready(function(e){
        MYMAP.placeMarkers('testasp.asp');

  });
});

你为什么要嵌套document.ready?只是做

$(document).ready(function() {
    var myLatLng = new google.maps.LatLng(24.86802, 67.06416);
    MYMAP.init('#map', myLatLng, 11);
    MYMAP.placeMarkers('testasp.asp');
});

答案 1 :(得分:0)

用于活动

google.maps.event.addListener([ mapObject ], 'bounds_changed', function() {
    // [ update code here ]
});