Javascript 如何自动关闭信息窗口?

Javascript 如何自动关闭信息窗口?,javascript,google-maps,Javascript,Google Maps,大师,问候: 我有一个关于javascript的问题。我编写了一个javascript补丁,在谷歌地图上显示多个标记。这些标记的地理编码和相关信息是从数据库中检索的,我在APEX中使用JSON传递数据。问题是:如果用户单击另一个标记,我想关闭标记的信息窗口。我尝试只使用infowindow的一个全局变量进行设置,它确实达到了我的目的,当我单击另一个标记时,infowindow会自动关闭,但每个标记在infowindow中都得到了相同的内容。有人能帮我解决这个问题吗?非常感谢你的帮助 这是我的密码

大师,问候:

我有一个关于javascript的问题。我编写了一个javascript补丁,在谷歌地图上显示多个标记。这些标记的地理编码和相关信息是从数据库中检索的,我在APEX中使用JSON传递数据。问题是:如果用户单击另一个标记,我想关闭标记的信息窗口。我尝试只使用infowindow的一个全局变量进行设置,它确实达到了我的目的,当我单击另一个标记时,infowindow会自动关闭,但每个标记在infowindow中都得到了相同的内容。有人能帮我解决这个问题吗?非常感谢你的帮助

这是我的密码

<img src="#WORKSPACE_IMAGES#1938.JPG"\><script type="text/javascript"           src="http://maps.googleapis.com/maps/api/js?sensor=false">     </script>
<script type="text/javascript">

var infoWindow;

function initialize() {

    //var test_geo=$v('P3016_H_RESIDENT_GEOCODING');
    //alert(test_geo);

    var myOptions = { zoom: 18, mapTypeId: google.maps.MapTypeId.ROADMAP};
    var map = new google.maps.Map(document.getElementById("map"), myOptions);

    var markerBounds = new google.maps.LatLngBounds();
    var point=new google.maps.LatLng(&P3016_H_RESIDENT_GEOCODING.);

    markerBounds.extend(point);
    map.fitBounds(markerBounds);

    var listener = google.maps.event.addListener(map, "idle", function() {
        map.setZoom(map.getZoom()-8);
        google.maps.event.removeListener(listener);
    });

    var json_obj = $v('P3016_H_JSON');
    var obj = jQuery.parseJSON(json_obj);
    var markers= new Array();
    var current_parameter;
    var my_URL;
    var test_prefix = $v('P3016_H_APEX_PREFIX');


    for (var u = 0; u < obj.Offenders.length; u++){
        var user = obj.Offenders[u];

        markers[u] = new google.maps.Marker({ position: new google.maps.LatLng(obj.Offenders[u].LA,obj.Offenders[u].LO), map: map });
        current_parameter ="&APP_ID.:216:&SESSION.::NO::O:"+user.cs;
        my_URL=my_URL=test_prefix+encodeURIComponent(current_parameter);


        my_URL='<a href='+my_URL+'>'+user.Name+'</a>'+'\n'+user.Addr;

        addInfoWindow(markers[u], my_URL);
    }



    function addInfoWindow(marker, message) {
        var info = message;

        infoWindow = new google.maps.InfoWindow({
            content: message
        });

        google.maps.event.addListener(marker, 'click', function () {
            //if (infoWindow.getMap()){
             //   infowWindow.close();
            //}

            infoWindow.open(map, marker);
        });
    }


    var radius_in_miles=$v('P3016_H_RADIUS_M');
    var circle = {
        strokeColor: "#ff0000",
        strokeOpacity: 0.8,
        strokeWeight: 1,
        fillColor: "#ff0000",
        fillOpacity: 0.20,
        map: map,
        center: point,
        radius: 1609.3*radius_in_miles   };

    var drawCirle = new google.maps.Circle(circle);


}

var信息窗口;
函数初始化(){
//var测试_geo=$v('P3016_Hu居民_GEOCODING');
//警报(测试地球同步轨道);
var myOptions={zoom:18,mapTypeId:google.maps.mapTypeId.ROADMAP};
var map=new google.maps.map(document.getElementById(“map”),myOptions);
var markerBounds=new google.maps.LatLngBounds();
var point=new google.maps.LatLng(&P3016_H_居民_地理编码);
扩展标记边界(点);
地图边界(markerBounds);
var listener=google.maps.event.addListener(映射,“空闲”,函数(){
map.setZoom(map.getZoom()-8);
google.maps.event.RemovelListener(监听器);
});
var json_obj=$v('P3016_H_json');
var obj=jQuery.parseJSON(json_obj);
var markers=新数组();
无功电流参数;
var my_URL;
var测试前缀=$v('P3016_H_顶点前缀');
对于(var u=0;u

只需在全局信息窗口()上调用setContent()。要获得正确的消息,可以将用户id存储在标记中,并在需要时构造消息,即标记[u]。用户\u id=u; 在单击处理程序中,您可以使用this.user\u id从数组中获取用户