概要
本文只要涉及的内容有,web中动态引入百度地图,基于百度地图的本地搜索(公交,地铁,停车场),自定义marker,layer,接入微信内置地图(微信中使用第三方导航)。
效果预览
地图懒加载
本示例应用于小程序内嵌的webview,web开发使用react。由于示例作为项目中的一个不必要模块,不是每次进入都会加载,因此选择在项目确定使用百度地图时,在进行加载。即动态加载百度地图的地图服务资源(代码直接从网上copy了一个):
MP(ak) {
return new Promise(resolve=> {
const script = document.createElement("script");
script.type = "text/javascript";
script.src = `https://api.map.baidu.com/api?v=2.0&ak=${ak}&callback=init`;
document.head.appendChild(script);
window.init = () => {
resolve(window.BMap);
};
});
}
openBMap() {
this.MP("你的ak").then(BMap => {
this.bmap = new BMap.Map("allmap"); // 创建Map实例
const mPoint = new BMap.Point(103.96120956167579, 30.67880629052847);
this.bmap.enableScrollWheelZoom();
this.bmap.centerAndZoom(mPoint, 15);
const options = {
onSearch