网页内嵌百度地图位置定位

本文详细介绍了百度地图API的1.1和2.0两个版本的区别,推荐使用显示效果更好的2.0版本,并提供了注册、申请密匙的步骤。针对2.0版本,展示了代码示例,包括地图初始化、标注图标、地图加载问题的解决方案,以及如何处理地图标注乱码问题。此外,还提供了完整示例代码供参考。
摘要由CSDN通过智能技术生成

百度地图目前我用过的有2个版本,分别为1.1和2.0版本。
1.1版本不需要密匙也能运行,但是显示模糊且需要修改API
2.0版本显示效果好,但是需要申请密匙,为了效果我这里还是推荐2.0的版本。

百度地图生成器1.1版本

http://api.map.baidu.com/lbsapi/creatmap/index.html

效果图

在这里插入图片描述

百度地图生成器2.0版本

效果图

在这里插入图片描述

  • 如果要使用2.0的API,需要注册成为百度开发者,然后再申请密匙,下面是密匙地址:

http://lbsyun.baidu.com/apiconsole/key/create

  • 百度地图生成器2.0版本地址

http://api.map.baidu.com/lbsapi/createmap/

地图标注图标无法显示的解决方法

查找代码中的icon地址并改为

http://api.map.baidu.com/lbsapi/creatmap/images/us_mk_icon.png

浏览器地图加载不出来解决办法

需要修改JS链接,将

<script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script>

改为

<script type="text/javascript" src="http://api.map.baidu.com/getscript?key=&v=1.1&services=true"></script>

地图标注显示乱码

在1.1版本中会出现这样的情况,需要将编码从gb2312改为utf-8,搜索charset修改即可。

生成好的2.0版本代码示例

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="http://api.map.baidu.com/getscript?v=2.0&ak=这里填你的密匙"></script>
  </head>
  
  <body>
    <div style="width:1080px;height:550px;border:#ccc solid 1px;font-size:12px" id="map"></div>
  </body>
  <script type="text/javascript">
    //创建和初始化地图函数:
    function initMap(){
      createMap();//创建地图
      setMapEvent();//设置地图事件
      addMapControl();//向地图添加控件
      addMapOverlay();//向地图添加覆盖物
    }
    function createMap(){ 
      map = new BMap.Map("map"); 
      map.centerAndZoom(new BMap.Point(116.315273,40.042901),19);
    }
    function setMapEvent(){
      map.enableScrollWheelZoom();
      map.enableKeyboard();
      map.enableDragging();
      map.enableDoubleClickZoom()
    }
    function addClickHandler(target,window){
      target.addEventListener("click",function(){
        target.openInfoWindow(window);
      });
    }
    function addMapOverlay(){
      var markers = [
        {content:"北京市海淀区上地三街金隅嘉华大厦",title:"北京XX科技有限公司",imageOffset: {width:0,height:3},position:{lat:40.042797,lng:116.314878}},
      ];
      for(var index = 0; index < markers.length; index++ ){
        var point = new BMap.Point(markers[index].position.lng,markers[index].position.lat);
        var marker = new BMap.Marker(point,{icon:new BMap.Icon("http://api.map.baidu.com/lbsapi/createmap/images/icon.png",new BMap.Size(20,25),{
          imageOffset: new BMap.Size(markers[index].imageOffset.width,markers[index].imageOffset.height)
        })});
        var label = new BMap.Label(markers[index].title,{offset: new BMap.Size(25,5)});
        var opts = {
          width: 200,
          title: markers[index].title,
          enableMessage: false
        };
        var infoWindow = new BMap.InfoWindow(markers[index].content,opts);
        marker.setLabel(label);
        addClickHandler(marker,infoWindow);
        map.addOverlay(marker);
      };
    }
    //向地图添加控件
    function addMapControl(){
      var scaleControl = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});
      scaleControl.setUnit(BMAP_UNIT_IMPERIAL);
      map.addControl(scaleControl);
      var navControl = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:0});
      map.addControl(navControl);
      var overviewControl = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:true});
      map.addControl(overviewControl);
    }
    var map;
      initMap();
  </script>
</html>
要在Qt中嵌入百度离线地图,可以按照以下步骤进行: 1. 下载百度地图离线SDK:从百度地图官方网站下载百度地图离线SDK。解压下载文件并获取SDK路径。 2. 在Qt中创建一个新项目:打开Qt Creator并创建一个新的Qt Widgets项目。 3. 配置项目属性:在项目属性页面中,找到"Build & Run" -> "Build" -> "Build Steps" -> "qmake" -> "Additional Arguments",添加以下参数:QMAKE_BMAPPING_PATH=<SDK路径>。 这将告诉Qt编译器去使用百度地图离线SDK。 4. 创建地图显示窗口:在项目的主窗口中,添加一个QGraphicsView对象和一个QGraphicsScene对象。这将为地图的显示提供支持。 5. 初始化地图:在主窗口类的构造函数中,使用百度地图离线SDK提供的函数初始化地图。将地图初始化为一个QImage对象,并将其添加到QGraphicsScene中。 你还可以设置初始的地图中心点、显示缩放级别等。 6. 加载地图:在主窗口中添加一个控件,例如QPushButton,当按钮被点击时,调用百度地图离线SDK提供的函数加载地图。 你可以指定地图的边界坐标和级别范围,以及加载地图成功或失败后的相应操作。 7. 处理地图交互:你可以通过实现鼠标事件处理函数或使用百度地图离线SDK提供的函数来处理地图的交互,如缩放、拖动、点击等操作。 8. 编译和运行:完成以上步骤后,编译和运行你的Qt项目。你应该能够看到嵌入了百度离线地图的窗口,并能够进行相应的交互操作。 通过上述步骤,你可以在Qt应用程序中成功地嵌入百度离线地图,并实现相应的功能和交互操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值