Events 将谷歌地图信息窗口中的信息放入HTML文本框

Events 将谷歌地图信息窗口中的信息放入HTML文本框,events,google-maps,marker,Events,Google Maps,Marker,我有一张地图,上面有很多从数据库中提取的标记。每一个都会显示一个信息窗口,其中包含一个地名以及位置的lat和lng。我需要有一个标记的地名附属添加到HTML文本框点击。我似乎找不到这方面的任何教程。也许有人能给我指出正确的方向。我正试图自己学习这一点,因此,如果它是草率设计的道歉。提前谢谢你的帮助 function load() { var map = new google.maps.Map(document.getElementById("map_canvas"), { cente

我有一张地图,上面有很多从数据库中提取的标记。每一个都会显示一个信息窗口,其中包含一个地名以及位置的lat和lng。我需要有一个标记的地名附属添加到HTML文本框点击。我似乎找不到这方面的任何教程。也许有人能给我指出正确的方向。我正试图自己学习这一点,因此,如果它是草率设计的道歉。提前谢谢你的帮助

function load() {
  var map = new google.maps.Map(document.getElementById("map_canvas"), {
    center: new google.maps.LatLng(41.640078, -102.669433),
    zoom: 3,
    mapTypeId: 'roadmap'
  });
  var infoWindow = new google.maps.InfoWindow;

  downloadUrl("mymap.php", function(data) {
    var xml = data.responseXML;
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
      var name = markers[i].getAttribute("name");
      var address = markers[i].getAttribute("address");
      var type = markers[i].getAttribute("type");
      var point = new google.maps.LatLng(
          parseFloat(markers[i].getAttribute("lat")),
          parseFloat(markers[i].getAttribute("lng")));
      var html = "<b>" + name + "</b> <br/>" + point;

      var icon = customIcons[type] || {};
      var marker = new google.maps.Marker({
        map: map,
        position: point,
        icon: icon.icon,
        shadow: icon.shadow
      });
      bindInfoWindow(marker, map, infoWindow, html);
    }
  });
}







function bindInfoWindow(marker, map, infoWindow, html) {
  google.maps.event.addListener(marker, 'click', function() {


    infoWindow.setContent(html);
    infoWindow.open(map, marker);
  });
}
函数加载(){
var map=new google.maps.map(document.getElementById(“map_canvas”){
中心:新google.maps.LatLng(41.640078,-102.669433),
缩放:3,
mapTypeId:“路线图”
});
var infoWindow=new google.maps.infoWindow;
下载URL(“mymap.php”,函数(数据){
var xml=data.responseXML;
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i“+点;
var icon=customIcons[type]| |{};
var marker=new google.maps.marker({
地图:地图,
位置:点,,
icon:icon.icon,
阴影:icon.shadow
});
bindInfoWindow(标记、地图、infoWindow、html);
}
});
}
函数bindInfoWindow(标记、地图、infoWindow、html){
google.maps.event.addListener(标记'click',函数(){
setContent(html);
信息窗口。打开(地图、标记);
});
}
它需要进入一个简单的文本框,如下所示:

<input type = "text" id = "address_box" value = ""/>

您的意思是,当信息窗口打开时,您想在文本框中显示一些信息吗? 如果是这样,这段代码可能会对您有所帮助(我希望如此)


要在HTML文本框中显示该数据,请更改bindInfoWindow函数,在其中添加代码以将数据放入文本框:

function bindInfoWindow(marker, map, infoWindow, html, name) {
  google.maps.event.addListener(marker, 'click', function() {
    infoWindow.setContent(html);
    infoWindow.open(map, marker);
    document.getElementById("address_box").value = name;
  });
}
并将名称添加到对其的调用中:

      bindInfoWindow(marker, map, infoWindow, html, name);

好的,很好,这是工作。如何避免用代码';如果它存在于document.getElementById(“地址框”).value=name?我必须以某种方式逃避这个问题。这听起来像是另一个问题,它确实需要比您提供的更多的上下文。请注意,我忘了我在php中使用str_replace将其放在那里。删除了它,它现在正在工作。
      bindInfoWindow(marker, map, infoWindow, html, name);