Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我想在谷歌地图信息窗口的文件夹中加载所有图像_Javascript_Ajax_Google Maps - Fatal编程技术网

Javascript 我想在谷歌地图信息窗口的文件夹中加载所有图像

Javascript 我想在谷歌地图信息窗口的文件夹中加载所有图像,javascript,ajax,google-maps,Javascript,Ajax,Google Maps,我正在从一个xml文件将一堆标记加载到google地图中。每个标记的名称将与服务器上的图像文件夹相对应。填充信息框时,我希望显示相应文件夹中的所有图像 www.frackwatch.co.za 除了图像不显示外,其他一切都正常。取而代之的是[Object][Object] function load() { var map = new google.maps.Map(document.getElementById("map"), { center: new google.maps.L

我正在从一个xml文件将一堆标记加载到google地图中。每个标记的名称将与服务器上的图像文件夹相对应。填充信息框时,我希望显示相应文件夹中的所有图像


www.frackwatch.co.za

除了图像不显示外,其他一切都正常。取而代之的是[Object][Object]

function load() {
  var map = new google.maps.Map(document.getElementById("map"), {
    center: new google.maps.LatLng(-31.5, 24.0),
    zoom: 7,
    mapTypeId: 'satellite'
  });

  var infoWindow = new google.maps.InfoWindow;

  // Change this depending on the name of your PHP file
  downloadUrl("genxml.php", function(data) {
    var xml = data.responseXML;
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {

      var info = markers[i].getAttribute("info");
      var name = markers[i].getAttribute("name");
      var point = new google.maps.LatLng(
          parseFloat(markers[i].getAttribute("lat")),
          parseFloat(markers[i].getAttribute("lng")));
      var folder = "attachments/" + name +"/";

      var html = "<b>" + info + "</b> <br/>" + $.ajax({
        url : folder,
        success: function (data) {
          $(data).find("a").attr("href", function (i, val) {
            if( val.match(/\.(jpeg|png|gif)$/) ) {
              $("body").append( "<img src='"+ folder + val   +"'>" );
            }
          });
        }
      });

      var marker = new google.maps.Marker({
        map: map,
        position: point,
        icon: icn
      });
      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);
  });
}

function downloadUrl(url, callback) {
  var request = window.ActiveXObject ?
      new ActiveXObject('Microsoft.XMLHTTP') :
      new XMLHttpRequest;

  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      request.onreadystatechange = doNothing;
      callback(request, request.status);
    }
  };

  request.open('GET', url, true);
  request.send(null);
}

function doNothing() {}

<div id="map"></div>
函数加载(){
var map=new google.maps.map(document.getElementById(“map”){
中心:新的google.maps.LatLng(-31.5,24.0),
缩放:7,
mapTypeId:'卫星'
});
var infoWindow=new google.maps.infoWindow;
//根据PHP文件的名称更改此选项
下载URL(“genxml.php”,函数(数据){
var xml=data.responseXML;
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i“+$.ajax({
url:文件夹,
成功:功能(数据){
$(数据).find(“a”).attr(“href”),function(i,val){
if(val.match(/\(jpeg | png | gif)$/){
$(“正文”)。追加(“”);
}
});
}
});
var marker=new google.maps.marker({
地图:地图,
位置:点,,
图标:icn
});
bindInfoWindow(标记、地图、infoWindow、html);
}
});
}
函数bindInfoWindow(标记、地图、infoWindow、html){
google.maps.event.addListener(标记'click',函数(){
setContent(html);
信息窗口。打开(地图、标记);
});
}
函数下载url(url,回调){
var请求=window.ActiveXObject?
新的ActiveXObject('Microsoft.XMLHTTP'):
新的XMLHttpRequest;
request.onreadystatechange=函数(){
if(request.readyState==4){
request.onreadystatechange=doNothing;
回调(请求、请求、状态);
}
};
打开('GET',url,true);
请求发送(空);
}
函数doNothing(){}

代码正确,但仅加载第一个标记的图像:

function load() {
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(-29, 25.0),
zoom: 6,
mapTypeId: 'satellite'
});

var infoWindow = new google.maps.InfoWindow;

// Change this depending on the name of your PHP file
downloadUrl("genxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {

  var info = markers[i].getAttribute("info");
  var id = markers[i].getAttribute("id");
  var point = new google.maps.LatLng(
      parseFloat(markers[i].getAttribute("lat")),
      parseFloat(markers[i].getAttribute("lng")));
  var folder = "/attachments/" + id +"/";

var marker = new google.maps.Marker({
    map: map,
    position: point,
    icon: icn
  });
$.ajax({
url : folder,
success: function (data) {
    var html = "<b>" + info + "</b><br/>";
    $(data).find("a").each(function () {
    $this = $(this)
    if($this.attr('href').match(/\.(jpg|png|gif|jpeg)$/)) {
    html +=  "<img src="+ folder + $this.attr('href') + ">";
  }
});
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);
});
}

function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
  new ActiveXObject('Microsoft.XMLHTTP') :
  new XMLHttpRequest;

request.onreadystatechange = function() {
if (request.readyState == 4) {
  request.onreadystatechange = doNothing;
  callback(request, request.status);
}
};

request.open('GET', url, true);
request.send(null);
}

function doNothing() {}
函数加载(){
var map=new google.maps.map(document.getElementById(“map”){
中心:新的google.maps.LatLng(-29,25.0),
缩放:6,
mapTypeId:'卫星'
});
var infoWindow=new google.maps.infoWindow;
//根据PHP文件的名称更改此选项
下载URL(“genxml.php”,函数(数据){
var xml=data.responseXML;
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i”;
$(数据)。查找(“a”)。每个(函数(){
$this=$(this)
if($this.attr('href').match(/\(jpg | png | gif | jpeg)$/){
html+=“”;
}
});
bindInfoWindow(标记、地图、infoWindow、html);
}
});  
}
});
}
函数bindInfoWindow(标记、地图、infoWindow、html){
google.maps.event.addListener(标记'click',函数(){
setContent(html);
信息窗口。打开(地图、标记);
});
}
函数下载url(url,回调){
var请求=window.ActiveXObject?
新的ActiveXObject('Microsoft.XMLHTTP'):
新的XMLHttpRequest;
request.onreadystatechange=函数(){
if(request.readyState==4){
request.onreadystatechange=doNothing;
回调(请求、请求、状态);
}
};
打开('GET',url,true);
请求发送(空);
}
函数doNothing(){}
bindInfoWindow
应该在ajax回调中,否则结果可能还在那里

一种更简洁的方法是
genxml.php
列出所有图像,这样以后就不必请求文件夹中的文件

bindInfoWindow
应该在ajax回调中,否则结果可能还在那里


一种更简洁的方法是
genxml.php
列出所有图像,这样以后就不必请求文件夹中的文件

请在源代码中使用适当的缩进!请在源代码中使用适当的缩进!是的,我知道这就是问题所在。谢谢。不要试图为每个图像创建标记。。我所要做的就是显示上述文件夹中的所有图像。代码运行良好,它基于xml文件创建标记,并使用正确的数据创建信息框。它只是不显示信息框中的图像。www.frackwatch.co.zathankyou,但仍然不起作用。bindInfoWindow应该放在哪里,因为我已经把它放得更远了。是的,我知道这就是问题所在。谢谢。不要试图为每个图像创建标记。。我所要做的就是显示上述文件夹中的所有图像。代码运行良好,它基于xml文件创建标记,并使用正确的数据创建信息框。它只是不显示信息框中的图像。www.frackwatch.co.zathankyou,但仍然不起作用。bindInfoWindow应该放在哪里,因为我已经把它放在下面了。
var html = "<b>" + info + "</b> <br/>" + $.ajax({url : folder,success:     function (data) {$(data).find("a").attr("href", function (i, val) {if( val.match(/\.(jpeg|png|gif)$/) ) { $("body").append( "<img src='"+ folder + val   +"'>" );} });}});;
var folder = "attachments/" + name +"/";
var marker = new google.maps.Marker({
    map: map,
    position: point,
    icon: icn
});

$.ajax({
  url : folder,
  success: function (data) {
    var html = "<b>" + info + "</b> <br/>";
    $(data).find("a").each(function () {
      $this = $(this)
      if($this.attr('href').match(/\.(jpeg|png|gif)$/)) {
        html +=  "<img src=" +  $this.attr('href') + ">";
      }
    });
    bindInfoWindow(marker, map, infoWindow, html);
   }
 });