PhoneGap中文网

 找回密码
 立即注册
查看: 13478|回复: 1
打印 上一主题 下一主题

又是一个百度地图问题。

[复制链接]

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
跳转到指定楼层
楼主
发表于 2015-8-9 01:52:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 arist1213 于 2015-8-9 02:00 编辑

小弟使用ionic开发一个项目,主要是用到了百度地图的JS SDK,我想在同一个controller里,不同的modal,初始化不同的百度地图实例,但是有个错误,这是我的 services.
  1. angular.module('Services', []).factory("BMService",
  2. function(LogService) {
  3.     var map = [];
  4.     // 启动地图
  5.     var initMap = function(id, point, options) {
  6.         LogService.log("begin initialize map " + id, 1);
  7.         if (map[id]) {
  8.             return;
  9.         } else {
  10.             map[id] = new BMap.Map(id);
  11.         }

  12.         var color = options.color ? options.color: "rgb(177, 208, 0)";

  13.         var point = new BMap.Point(point.lng, point.lat);
  14.         map[id].centerAndZoom(point, 15);

  15.         //设置marker图标为水滴
  16.         if (options.marker) {
  17.             var vectorMarker = new BMap.Marker(new BMap.Point(point.lng, point.lat), {
  18.                 // 指定Marker的icon属性为Symbol
  19.                 icon: new BMap.Symbol(BMap_Symbol_SHAPE_POINT, {
  20.                     scale: 1.2,
  21.                     //图标缩放大小
  22.                     fillColor: color,
  23.                     //填充颜色
  24.                     fillOpacity: 0.9 //填充透明度
  25.                 })
  26.             });
  27.             map[id].addOverlay(vectorMarker);
  28.         }
  29.         //创建圆
  30.         if (options.circle) {
  31.             var circle = new BMap.Circle(new BMap.Point(point.lng, point.lat), 400, {
  32.                 strokeColor: "blue",
  33.                 strokeWeight: 2,
  34.                 strokeOpacity: 0.5
  35.             });
  36.             circle.setFillColor(color);
  37.             circle.setFillOpacity(0.2);
  38.             circle.setStrokeColor(color);
  39.             map[id].addOverlay(circle); //增加圆        
  40.         }
  41.         LogService.log("finish initialize map " + id, 1);
  42.     };

  43.     return {
  44.         initMap: initMap
  45.     };
  46. })
复制代码



同一个controller的调用:

  1. $scope.$on('$ionicView.beforeEnter',function(){               
  2.     BMService.initMap('mainMap',{lng:116.404, lat:39.915},{marker: true, circle: true});                        
  3.     BMService.initMap('allObjectMap',{lng:114.045, lat:22.532},{marker: true, circle: true});
  4.     $scope.initObject();
  5. });
复制代码


地图在不同的modal里,

  1. <script id="home.html" type="text/ng-template">
  2.         <div id="mainMap" class="baidu_map"></div>
  3. </script>

  4. <script id="user.html" type="text/ng-template">
  5.         <div id="allObjectMap" class="baidu_map"></div>
  6. </script>
复制代码





地图的样式:

  1. .baidu_map {
  2.     width: 100%;
  3.    height: 100%;
  4.     overflow: hidden;
  5.     margin: 0;
  6. }
复制代码

第一个地图可以正确显示,但是第二个地图出现了下面的错误:



烦请各位给个帮助和提示,谢谢,谢谢。



回复

使用道具 举报

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
沙发
 楼主| 发表于 2015-8-9 02:48:44 | 只看该作者
我换了高德地图,好像没有这个问题,果断换掉SDK。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2025-1-4 19:33 , Processed in 0.055641 second(s), 36 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表