Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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 Google Maps v3与MarkerClustererer不使用createmarker_Javascript_Google Maps_Google Maps Api 3_Markerclusterer - Fatal编程技术网

Javascript Google Maps v3与MarkerClustererer不使用createmarker

Javascript Google Maps v3与MarkerClustererer不使用createmarker,javascript,google-maps,google-maps-api-3,markerclusterer,Javascript,Google Maps,Google Maps Api 3,Markerclusterer,我正在尝试对标记进行群集,因为网站运行缓慢,但MarkerClusterer无法在我的网站上运行: 地图的代码如下所示: function initialize() { var styles = [ /* styles */ ]; var styledMap = new google.maps.StyledMapType(styles, {name: "Styled Map"}); var mapOptions = { zoom: 14, cen

我正在尝试对标记进行群集,因为网站运行缓慢,但MarkerClusterer无法在我的网站上运行:

地图的代码如下所示:

    function initialize() {

  var styles = [ /* styles */ ];

  var styledMap = new google.maps.StyledMapType(styles,
    {name: "Styled Map"});

  var mapOptions = {
    zoom: 14,
    center: new google.maps.LatLng(-35.4292213, -71.6561387),
    streetViewControl: false,
    mapTypeControlOptions: {
      mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style']
    }
  };
  var map = new google.maps.Map(document.getElementById('map_canvas'),
    mapOptions);

  var infowindow;
  var markerCluster = new MarkerClusterer(map);

  map.mapTypes.set('map_style', styledMap);
  map.setMapTypeId('map_style');

   downloadUrl("http://estoestalca.cl/?page_id=22", function(data) {
      var markers = data.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markers.length; i++) {
        var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
        var marker = createMarker(markers[i].getAttribute("name"), markers[i].getAttribute("permalink"), latlng, markers[i].getAttribute("imagen"), markers[i].getAttribute("category"), markers[i].getAttribute("tag"), markers[i].getAttribute("fecha1"), markers[i].getAttribute("fecha2"));
        markers.push(marker);
       }
       var markerCluster = new MarkerClusterer(map, markers);
     });

  function createMarker(name, permalink, latlng, imagen, category, tag, fecha1, fecha2) {
    var image = 'puntos/palta-trans.png';
    var marker = new MarkerWithLabel({
        position: latlng,
        icon: image,
        title: category,
        label: category,
        labelAnchor: new google.maps.Point(3, 30),
        labelClass: "label " + tag + " " + category, // the CSS class for the label
        labelInBackground: false
    });
    google.maps.event.addListener(marker, "click", function() {
      if (infowindow) infowindow.close();
      var titulo = '<h2>' + name + '</h2>';
      var image = '<a class="open fancybox" data-fancybox-type="iframe" href="' + permalink + '"><img src="' + imagen + '" alt="place" /></a>';
      var fecha = '<p class="fecha"><span class="date1">' + fecha1 + '</span> / <span class="date2">' + fecha2 + '</span></p>';
      var contentString = '<div class="info">' + image + fecha +'</div>';
      var myOptions = {
             content: contentString
            ,disableAutoPan: false
            ,pixelOffset: new google.maps.Size(0, 0)
            ,zIndex: null
            ,boxStyle: { 
              background: "#000"
              ,opacity: 0.75
              ,width: "180px"
             }
            ,closeBoxMargin: "0px -3px 0px 0px"
            ,closeBoxURL: "http://www.jorgerock.com/CRUZ.png"
            ,infoBoxClearance: new google.maps.Size(130, 230)
            ,isHidden: false
            ,pane: "floatPane"
            ,enableEventPropagation: false
            ,maxWidth: 77
            ,maxHeight:75
        };
      infowindow = new google.maps.InfoWindow(myOptions);
      infowindow.open(map, marker);

    });
    return marker;
  }


}
函数初始化(){
变量样式=[/*样式*/];
var styledMap=new google.maps.StyledMapType(样式,
{name:“样式化映射”});
变量映射选项={
缩放:14,
中心:新google.maps.LatLng(-35.4292213,-71.6561387),
街景控制:错误,
mapTypeControlOptions:{
MapTypeId:[google.maps.MapTypeId.ROADMAP,'map_style']
}
};
var map=new google.maps.map(document.getElementById('map_canvas'),
地图选项);
var信息窗口;
var markerCluster=新的MarkerClusterer(map);
map.mapTypes.set('map\u style',styledMap);
setMapTypeId('map_style');
下载网址(“http://estoestalca.cl/?page_id=22,函数(数据){
var markers=data.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i';
var contentString=''+image+fecha+'';
变量myOptions={
内容:contentString
,disableAutoPan:false
,pixelOffset:new google.maps.Size(0,0)
,zIndex:null
,boxStyle:{
背景:“000”
,不透明度:0.75
,宽度:“180像素”
}
,closeBoxMargin:“0px-3px 0px 0px”
,closeBoxURL:“http://www.jorgerock.com/CRUZ.png"
,infoBoxClearance:newgoogle.maps.Size(130230)
,isHidden:错
,窗格:“浮动窗格”
,enableEventPropagation:false
,最大宽度:77
,最大高度:75
};
infowindow=newgoogle.maps.infowindow(myOptions);
信息窗口。打开(地图、标记);
});
返回标记;
}
}
主要的问题是,在控制台中对markerclusterer.js这样说:uncaughttypeerror:undefined不是一个函数

我找不到问题,顺便说一下,在尝试将此添加到我的网站后,所有标记都工作正常


谢谢

标记
是一个XML DOM元素数组

var markers = data.documentElement.getElementsByTagName("marker");
gmarkers
是google.maps.Marker对象的数组

创建gmarkers阵列并更改此设置:

downloadUrl("http://estoestalca.cl/?page_id=22", function(data) {
  var markers = data.documentElement.getElementsByTagName("marker");
  for (var i = 0; i < markers.length; i++) {
    var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                parseFloat(markers[i].getAttribute("lng")));
    var marker = createMarker(markers[i].getAttribute("name"), markers[i].getAttribute("permalink"), latlng, markers[i].getAttribute("imagen"), markers[i].getAttribute("category"), markers[i].getAttribute("tag"), markers[i].getAttribute("fecha1"), markers[i].getAttribute("fecha2"));
    markers.push(marker);
   }
   var markerCluster = new MarkerClusterer(map, markers);
 });
下载URL(“http://estoestalca.cl/?page_id=22,函数(数据){
var markers=data.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i
致:

下载URL(“http://estoestalca.cl/?page_id=22,函数(数据){
var markers=data.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i

我如何为Gmarker创建阵列?使用相同的标记值?谢谢谢谢,但是现在控制台给了我这个错误:
uncaughttypeerror:undefined不是一个函数标记,它的label.js:577
行是
this.label.setMap(theMap)看起来MarkerWithLabel中有一个bug,如果我使用了,非常感谢您的帮助!
downloadUrl("http://estoestalca.cl/?page_id=22", function(data) {
  var markers = data.documentElement.getElementsByTagName("marker");
  for (var i = 0; i < markers.length; i++) {
    var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                parseFloat(markers[i].getAttribute("lng")));
    var marker = createMarker(markers[i].getAttribute("name"), markers[i].getAttribute("permalink"), latlng, markers[i].getAttribute("imagen"), markers[i].getAttribute("category"), markers[i].getAttribute("tag"), markers[i].getAttribute("fecha1"), markers[i].getAttribute("fecha2"));
    gmarkers.push(marker);
   }
   var markerCluster = new MarkerClusterer(map, gmarkers);
 });