百度地图 JS API 不支持触控、缩放 ( Windows 平板、Qt WebEngine)

参考链接:http://blog.sina.com.cn/s/blog_73a4b2cd0102wpgy.html

  • 下载百度地图 api 的 js

http://api.map.baidu.com/getscript?v=2.0

  • window.BMAP_AUTHENTIC_KEY 里面填写 key
  • (function(){ })内部添加自定义的myNavigator
var myNavigator={};
myNavigator.platform="win32";
myNavigator.userAgent="Mozilla/5.0 (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30";
myNavigator.appVersion="5.0 (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30";

然后用myNavigator替换掉后面的Navigator 目的是让百度认为你是一个可触控设备

  • 替换掉原来的api使用本地的api

<script type="text/javascript" src="http://api.map.baidu.com/api?2.0&ak=xxx"></script>

->

<script type="text/javascript" src="./map.js"></script>


  • 如果需要同时支持鼠标和触控

参考链接https://blog.csdn.net/davis_dxs/article/details/82425211

// TODO: 触摸移动时触发此事件 此时开启可以拖动。虽然刚初始化该地图不可以拖动,但是可以触发拖动事件。
map.addEventListener("touchmove", function (e) {
 map.enableDragging();
});
// TODO: 触摸结束时触发次此事件  此时开启禁止拖动
map.addEventListener("touchend", function (e) {
 map.disableDragging();
});

// 初始化地图 禁止拖动   注:虽禁止拖动,但是可以出发拖动事件
map.disableDragging();

map.enableScrollWheelZoom(true);
Some rights reserved
Except where otherwise noted, content on this page is licensed under a Creative Commons Attribution-ShareAlike 4.0 International license