c++ - 语法错误 : Parse error in html map file - ogmaps ReferenceError: Can't find variable: GUnload

标签 c++ html qt google-maps google-maps-api-3

完整 html 的链接 ogmap map 代码:http://code.google.com/p/earthhtml/source/browse/trunk/ogmap.html

此 map 文件可从所有浏览器打开(在最小化和最大化浏览器一次后)
但是
当它尝试从我的 C++ 代码执行它时,如下所示:

void MainScreen::on_button1_clicked()
{
    map->clearCoordinates();
    map->load(QUrl("file:///home/anisha/Desktop/fwdgooglemaps/ogmaps/ogmap.html"));
}

显示以下错误:

"SyntaxError: Parse error on line:1148 Source:file:///home/anisha/Desktop/fwdgooglemaps/ogmaps/ogmap.html"

"ReferenceError: Can't find variable: GUnload on line:186 Source:file:///home/anisha/Desktop/fwdgooglemaps/ogmaps/ogmap.html" 

此处显示行号 1148。

function preloadRasterTile (uris,tile,zoom,x,y,transparent,htmlList)
{
    var url = getTileUrl (uris,tile,zoom);
    transparent&&/MSIE 6/i.test (navigator.userAgent)?
    htmlList.push(['<div style="left:', 256*x, "px;top:", 256*y, "px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (sizingMethod = crop, src = '", url, '"', '__src__ = "'+url+'"', "></div>"].join ("")) : htmlList.push (['<img style = "position:absolute; left:',256*x," px="px">'].join(""))
}

编辑:

我刚刚注释了186行,引用错误没有了,但是语法错误还在。 不涉及浏览器。 我正在 qt 小部件上加载这个缓存 map 。

编辑 2:


代码现在在这一行显示另一个错误: else if (0 < minzoom><widthinearthunits><heightinearthunits><actions.length>;i++)

在函数中 repositionInlineZoomControls .

javascript 的 index.html 文件如下:

谷歌地图 JavaScript API 示例

<script type="text/javascript"> 

var map;    
var latlng            = new google.maps.LatLng (28.635308, 77.22496);

var directionsDisplay = new google.maps.DirectionsRenderer ();
var directionsService = new google.maps.DirectionsService ();

var pointsArray       = new Array();
var arrayToBeReturned = new Array();

function initialize ()
{
    var myOptions = 
    {
        zoom:4,
        center:latlng,
        mapTypeId:google.maps.MapTypeId.ROADMAP
    };

    map = new google.maps.Map (document.getElementById ("map"), myOptions);
    directionsDisplay.setMap (map); 
    }

    function addMarker (x, y)
{
    var initialPoint       = new google.maps.LatLng (x, y);
    var initialPointMarker = new google.maps.Marker ({
                                position:initialPoint,
                                map:map,
                                draggable:false,
                                flat:true
                                });
}

 var arrayMarkers = new Array();
var arrayIndex   = 0;

function Open(x, y)
{   var newPosition = new google.maps.LatLng (x, y);
    map.setCenter (newPosition);        

    directionsDisplay.setMap (map);


    google.maps.event.addListener (map, "click", 
                            function (event)
                            {
                                //alert("You clicked the map."+ event.latLng.toString(4));

                                arrayMarkers [arrayIndex] = event.latLng;

                                var s0  = event.latLng.lat();
                                var s1  = event.latLng.lng();
                                var s01 = new google.maps.LatLng (s0, s1);

                                var point1 = new google.maps.Marker ({
                                                                position:arrayMarkers [arrayIndex],
                                                                draggable:false,
                                                                map:map,
                                                                flat:true
                                                                }); 
                                if (arrayIndex == 1)
                                    displayRoute ();

                                arrayIndex++;
                            });

}

function displayRoute ()
 {
    var start = arrayMarkers [0];
    var end   = arrayMarkers [1];

    var request = {
                origin:start,
                destination:end,
                travelMode:google.maps.TravelMode.DRIVING
                };

    directionsService.route (request, 
                        function (result, status) 
                        {
                            if (status == google.maps.DirectionsStatus.OK)
                            {
                                directionsDisplay.setDirections (result);

                                pointsArray = result.routes[0].overview_path;

                                var i = 0;
                                var j = 0;

                                for (j = 0; j < pointsArray.length; j++)
                                {                                       
                                    arrayToBeReturned [i] = pointsArray[j].lat ();
                                    i++;
                                    arrayToBeReturned [i] = pointsArray[j].lng ();
                                    i++;

                                    var point1 = new google.maps.Marker ({
                                        position:pointsArray[j],
                                        draggable:false,
                                        map:map,
                                        flat:true
                                        });
                                }
                            }
                        });


    getCoordinates();
}

function getCoordinates ()
{       
    return arrayToBeReturned;
}

</script> 
</head>
<body onload="initialize()" topmargin="0" leftmargin="0">
<div id="map" style="width: 641px; height: 671px"></div>
<div id="directionsPanel" style="float:right;width:1000%;height 100%"></div>
</body>
</html> 

最佳答案

那 htmlList.push 行至少看起来有点可疑,特别是引号的使用对我来说似乎不正确。似乎某处混合了单引号和双引号。例如传递给 AlphaImageLoader 的 src 参数以单引号开头,但以双引号结尾。

一般来说,即使可以同时使用双引号和单引号,在使用引号时保持一致是个好主意。从长远来看,这将有所帮助。

我可能会选择更冗长但更易读的函数。我试图解决引用问题:

function preloadRasterTile (uris,tile,zoom,x,y,transparent,htmlList) 
{
    var url = getTileUrl (uris,tile,zoom);
    if (transparent && /MSIE 6/i.test(navigator.userAgent)) {
        htmlList.push([
            '<div style="left:', 256*x, 'px;',
            'top:', 256*y, 'px;',
            'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (sizingMethod = crop, src = "', url, '"', '__src__ = "'+url+'"', 
            '></div>'].join (""));
    } else {
        htmlList.push([
            '<img style = "position:absolute;',
            'left:', 256*x, 'px;">'].join(""));
    }
}

关于c++ - 语法错误 : Parse error in html map file - ogmaps ReferenceError: Can't find variable: GUnload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11327183/

相关文章:

c++ - 有没有办法使用核心文件找到泄漏的内存?

c++ - gtest/gmock 是否有办法对类的每个实例进行 stub ?

javascript - AngularJs 中带有嵌套 ui-view 的体面的 Url

html - 部分标签不动

javascript - document.GetElementById 不适用于任何类型的浏览器

c++ - Qt:如何在委托(delegate)绘制事件中渲染时增加 QTablewidget?

c++ - delete[] 字符数组

c++ - 在 PostgreSQL 中使用 C++ 函数

c++ - 从 C++ 访问现有 QML 组件

c++ - QT https SSL 支持静态 QT 静态程序构建 - 获取 'Protocol "https“未知”