0

我整天都在为此苦苦挣扎。我已经制作了新的按钮,以便在我的地图上实际运行与 Google Maps 按钮匹配的更好地位于地图上。我一直试图让他们使用地图上方的当前按钮,以便我可以删除这些按钮,但我似乎无法让它们工作。我错过了什么。

这是该页面的链接,您可以查看。地图上方的按钮有效,我将删除它们。地图上的按钮不起作用,我正试图开始工作。

演示链接

这是代码。var radarButton 和 var satButton 是新的。下面是当前按钮。

    jQuery(document).ready(function($) {
        var mapTypeId = wundermap.getMapTypeId("hyb");
        var googlemap = new google.maps.Map($("#map")[0], {
            center: new google.maps.LatLng(32.782878, -96.609862),
              panControl: false,
              zoom: 6,
              mapTypeId: mapTypeId,
              mapTypeControl: true,
              mapTypeControlOptions: {
          style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
        },
        zoomControl: true,
        zoomControlOptions: {
          style: google.maps.ZoomControlStyle.SMALL,
          position: google.maps.ControlPosition.RIGHT_TOP
        },
    });

    var radarOptions = {
        gmap: googlemap,
        name: 'Radar',
        position: google.maps.ControlPosition.TOP_RIGHT,
        action: function(){
                if (wundermap.map.overlayMapTypes.length==0) {
                  wundermap.map.overlayMapTypes.push(null); // create empty overlay entry
                  wundermap.map.overlayMapTypes.setAt("1",Radar);
                }
                else {
                    wundermap.map.overlayMapTypes.clear();
                }

            }
}
var radarButton = new buttonControl(radarOptions);

var satOptions = {
        gmap: googlemap,
        name: 'Satellite',
        position: google.maps.ControlPosition.TOP_RIGHT,
        action: function(){
                if (wundermap.map.overlayMapTypes.length==0) {
                  wundermap.map.overlayMapTypes.push(null); // create empty overlay entry
                  wundermap.map.overlayMapTypes.setAt("1",Satellite);
                }
                else {
                    wundermap.map.overlayMapTypes.clear();
                }

            }
}
var satButton = new buttonControl(satOptions);

        wundermap.setOptions({
            map: googlemap,
            refreshPeriod: 60000,
            units: "english",
            debug: 0,
            source: "wxmap",
            StreetsOverlay: true,
            layers: [
            {
            layer: "Radar",
            active: "on",
            opacity: 70,
            type: "N0R",
            type2: "",
            animation: {
            num: 6,
            max: 10,
            delay: 25
            },
            stormtracks: "off",
            smooth: "on",
            subdomain: "radblast-aws"
            },
            {
            layer: "Satellite",
            defaultUI: 0,
            opacity: "85",
            source: "",
            active: "off",
            animation: {
            num: 1,
            max: 8,
            delay: 25
            }
            },
            ],

        });
        wundermap.initialize();
    });

这是实际层代码的链接。代码很长,但覆盖层称为雷达。

雷达代码

4

1 回答 1

1

开始的地方是 JavaScript 控制台。那里的错误消息会告诉您问题所在。

首先,当页面加载时,wxgr3radar.php 的第 286 行出现错误:

<body onload="initialize()">

你的initialize()函数在哪里定义?我在您的代码中没有看到它。

然后,当我单击 Satellite 按钮时,它在 imap.js 的第 41 行停止,因为map.overlayMapTypes未定义:

if (map.overlayMapTypes.length==0) {

在这里,您期望map成为 Maps API 对象,但map并不是您想象的那样。在调试器中查看它。它是一个 DOM 元素,而不是 Maps API 地图。您的 Maps API 地图位于名为 的变量中googlemap,该变量是您在 imap.js 的第 3 行中创建的。

于 2013-06-09T02:13:53.003 回答