Google maps 地图没有';使用Google Maps API V3和QWebView,在鼠标点击时不会做出响应

Google maps 地图没有';使用Google Maps API V3和QWebView,在鼠标点击时不会做出响应,google-maps,google-maps-api-3,google-maps-markers,qwebview,Google Maps,Google Maps Api 3,Google Maps Markers,Qwebview,编辑4 我一直在想,这是标记的问题,它们不会被拖走! 现在我意识到,当地图显示在Qt小部件中时,没有鼠标点击在地图上起作用 下面的代码,我粘贴在一个HTML文件中,并通过Firefox打开,这工作完美无瑕!当我点击QtWidget:rolleyes: 谁能帮我确认一下,或者告诉我我做错了什么 GoogleMapsJavaScriptAPI示例 var映射; var latlng=新的google.maps.latlng(34.7607233,-117.0107599); var direc

编辑4

我一直在想,这是标记的问题,它们不会被拖走! 现在我意识到,当地图显示在Qt小部件中时,没有鼠标点击在地图上起作用

下面的代码,我粘贴在一个HTML文件中,并通过Firefox打开,这工作完美无瑕!当我点击QtWidget:rolleyes:

谁能帮我确认一下,或者告诉我我做错了什么

GoogleMapsJavaScriptAPI示例


var映射;
var latlng=新的google.maps.latlng(34.7607233,-117.0107599);
var directionsDisplay=new google.maps.DirectionsRenderer();;
var directionsService=new google.maps.directionsService();
var pointsArray=新数组();
var arrayToBeReturned=新数组();
函数初始化()
{
变量myOptions=
{
缩放:8,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“map”),myOptions);
directionsDisplay.setMap(地图);
google.maps.event.addListener(映射,“单击”,函数()
{
警报(“您单击了地图”);
});
}
单击参数周围的单引号怎么样


单击参数周围的单引号怎么样?

在引用中,每个对象都有自己的事件。您可以在此处看到用于标记的标记:

[http://code.google.com/apis/maps/documentation/javascript/reference.html#Marker][1]

我已经多次使用dragend事件,并且它运行顺利

执行此操作的代码可以是:

    var map = new google.maps.Map(document.getElementById("map"), myOptions);

    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        draggable: true
    });

    google.maps.event.addListener(marker, 'dragend', function () {
        document.getElementById("txtLatitude").value = marker.getPosition().lat();
        document.getElementById("txtLongitude").value = marker.getPosition().lng();
    });

[1] :=new

您正在查看错误的事件位置:)在引用中,每个对象都有自己的事件。您可以在此处看到用于标记的标记:

[http://code.google.com/apis/maps/documentation/javascript/reference.html#Marker][1]

我已经多次使用dragend事件,并且它运行顺利

执行此操作的代码可以是:

    var map = new google.maps.Map(document.getElementById("map"), myOptions);

    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        draggable: true
    });

    google.maps.event.addListener(marker, 'dragend', function () {
        document.getElementById("txtLatitude").value = marker.getPosition().lat();
        document.getElementById("txtLongitude").value = marker.getPosition().lng();
    });
[1] :=新建

找到了解决方案:

将该类添加到源文件中,您将在其中“加载”Qt小部件中的HTML文件(包含Javascript API)

class myWebPage : public QWebPage
{
    virtual QString userAgentForUrl(const QUrl& url) const {
        return "Chrome/1.0";
    }
};
然后在同一源文件中的您自己的类中,添加setPage函数调用,如下所示,并看到神奇的发生

MainScreen::MainScreen(QWidget *parent):QWidget(parent)
{
        ...
    ***map->setPage (new myWebPage());***
    map->load (QUrl("./index.html") ) ;
};
找到解决方案:

将该类添加到源文件中,您将在其中“加载”Qt小部件中的HTML文件(包含Javascript API)

class myWebPage : public QWebPage
{
    virtual QString userAgentForUrl(const QUrl& url) const {
        return "Chrome/1.0";
    }
};
然后在同一源文件中的您自己的类中,添加setPage函数调用,如下所示,并看到神奇的发生

MainScreen::MainScreen(QWidget *parent):QWidget(parent)
{
        ...
    ***map->setPage (new myWebPage());***
    map->load (QUrl("./index.html") ) ;
};

谢谢,我会尝试并报告。请参阅OP中的编辑:(它仍然不起作用。我缺少的要点是什么?如果您使用的是代码,则您不会在您的事件中调用任何代码。我编辑了我的答案以反映您可以做什么:)如果这仍然不起作用,请说明是否有错误。我有一行
map.closeInfoWindow()以前在我的代码中,但由于它没有做任何事情,我删除了它。我没有任何错误。顺便说一句,错误显示在哪里?其次,draggable属性在v2api中运行良好。只有在V3 API中才会产生问题。问:是否有必要使用“addListner”函数来移动标记?谢谢,我将尝试并报告。请参阅OP中的编辑:(它仍然不起作用。我遗漏了什么?如果这是你正在使用的代码,你不会在你的事件中调用任何代码。我编辑了我的答案,以反映你可以做什么:)如果这仍然不起作用,请说明你是否有错误。我有那一行
map.closeInfoWindow()
之前在我的代码中,但由于它没有做任何事情,我删除了它。我没有发现任何错误。顺便说一句,错误显示在哪里?其次,Dragable属性在V2 API中运行良好。它只在V3 API中产生了问题。问:有必要使用“addListner”吗用于移动标记的函数?尽管使用Google API V2的人员不需要此代码,因为API V2不存在此问题。尽管使用Google API V2的人员不需要此代码,因为API V2不存在此问题。