Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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
Google maps api 3 为什么我的InfoBubble没有加载FusionTablesLayer?_Google Maps Api 3_Google Fusion Tables_Infobubble - Fatal编程技术网

Google maps api 3 为什么我的InfoBubble没有加载FusionTablesLayer?

Google maps api 3 为什么我的InfoBubble没有加载FusionTablesLayer?,google-maps-api-3,google-fusion-tables,infobubble,Google Maps Api 3,Google Fusion Tables,Infobubble,我正在绘制一个融合表层,它有22个标记。以前,我的地图是从KML图层中提取的;事实证明,融合表对我的组织更有利 在我开始使用InfoBubble创建自定义窗口之前,一切都很正常。我尽了最大努力重新创建用于使自定义infoWindows看到我上一篇文章的代码: 我知道infoBubble不是火箭科学,但我显然做错了什么。我如何让这段代码工作,并让它将信息从我的Fusionables层拉到infoBubble中 谢谢 function initialize() { var styles = [

我正在绘制一个融合表层,它有22个标记。以前,我的地图是从KML图层中提取的;事实证明,融合表对我的组织更有利

在我开始使用InfoBubble创建自定义窗口之前,一切都很正常。我尽了最大努力重新创建用于使自定义infoWindows看到我上一篇文章的代码:

我知道infoBubble不是火箭科学,但我显然做错了什么。我如何让这段代码工作,并让它将信息从我的Fusionables层拉到infoBubble中

谢谢

function initialize() {

var styles = [   ]; // Styles removed to simplify code

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

var mapOptions = { 
    zoom: 7,
    center: new google.maps.LatLng(46.69504, -67.69751),
    panControl: false,
    mapTypeControl: false,
    streetViewControl: false,
    noClear: true,
    zoomControlOptions: {
            position: google.maps.ControlPosition.TOP_RIGHT },
            mapTypeControlOptions: {
            mapTypeIds: ['map_style', google.maps.MapTypeId.ROADMAP]}
    };                

google.maps.visualRefresh = true;  

var map = new google.maps.Map(document.getElementById("map-canvas"),mapOptions);

// Associate the styled map with the MapTypeId and set it to display.
  map.mapTypes.set('map_style', styledMap);
  map.setMapTypeId('map_style');

var opt = { minZoom: 7, maxZoom: 9 }; // Sets minimum & maximum zoom level
map.setOptions(opt);

var layer = new google.maps.FusionTablesLayer({
    query: {
        select: 'Latitude',
        from: '18KH6atJ7EZMZS-xxXpebiRAoVuIa2fXmJCQC5IM',
      },
});

layer.setMap(map);

google.maps.event.addListener(layer, "click", function() {
    showInContentWindow();
});

function showInContentWindow(position, text)
var content= "<div class='networkwindow'>" + text +  "</div>";
var infoBubble = new InfoBubble({
    padding: 20px,
    arrowSize: 10,
    arrowPosition: 10,
    arrowStyle: 2
});
    infoBubble.open(map)

}    
google.maps.event.addDomListener(window, 'load', initialize);
编辑:修改代码,在geocodezip建议查看我的JavaScript错误之后。地图现在可以工作了,但我的标记仍然没有在单击时出现

google.maps.event.addListener(layer, "click", function () {
showInContentWindow();
});

function showInContentWindow(text) {
    var content = "<div class='networkwindow'>" + text +  "</div>";
    var InfoBubble = new InfoBubble({
        content: content,
        padding: '20px',
        arrowSize: 10,
        arrowPosition: 10,
        arrowStyle: 2
    });

InfoBubble.open(map);

}

因为javascript中有语法错误。一旦我修好了,这对我很有用

var map = null;

function initialize() {
  var styles = [   ]; // Styles removed to simplify code

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

  var mapOptions = { 
    zoom: 7,
    center: new google.maps.LatLng(46.69504, -67.69751),
    panControl: false,
    mapTypeControl: false,
    streetViewControl: false,
    noClear: true,
    zoomControlOptions: {
            position: google.maps.ControlPosition.TOP_RIGHT },
            mapTypeControlOptions: {
            mapTypeIds: ['map_style', google.maps.MapTypeId.ROADMAP]}
    };                

  google.maps.visualRefresh = true;  

  map = new google.maps.Map(document.getElementById("map-canvas"),mapOptions);

  // Associate the styled map with the MapTypeId and set it to display.
  map.mapTypes.set('map_style', styledMap);
  map.setMapTypeId('map_style');

  var opt = { minZoom: 7, maxZoom: 9 }; // Sets minimum & maximum zoom level
  map.setOptions(opt);

  var layer = new google.maps.FusionTablesLayer({
    query: {
        select: 'Latitude',
        from: '18KH6atJ7EZMZS-xxXpebiRAoVuIa2fXmJCQC5IM',
      },
  });

  layer.setMap(map);

  google.maps.event.addListener(layer, "click", function() {
    showInContentWindow();
  });
}
function showInContentWindow(position, text) {
  var content= "<div class='networkwindow'>" + text +  "</div>";
  var infoBubble = new InfoBubble({
    padding: "20px",
    arrowSize: 10,
    arrowPosition: 10,
    arrowStyle: 2
  });
  infoBubble.open(map)
}    
google.maps.event.addDomListener(window, 'load', initialize);

如果您修复了javascript错误,它就会工作。非常感谢。在看到您的最后一条消息后,我一直在努力清理JavaScript,这就是为什么上面有一个编辑。非常感谢。我很喜欢在这个网站上学习的机会。嘿@geocodezip,为什么InfoBubble的各种选项(例如填充、箭头大小、箭头位置加载)都没有呢?在我看来,你有两个问题:1。您没有禁止FusionTablesLayer本机信息窗口{suppressInfoWindow:true},2。对showInContentWindow的调用没有任何参数,因此文本为null。有趣的是:我添加了suppressInfoWindows:true,并且窗口仍在打开。您能否帮助我确定如何正确使用ShowInContant窗口,或者我是否应该在那里使用其他呼叫?您是否刷新了页面?有可能你还在从缓存中运行旧版本,这会为我破坏它。您需要自己修复showInContentWindow,或者至少进行合理的尝试。