微信公众号插入地图及地图搜索资源的前端处理(坐标系转码,自动定位等业务实现)

var map;// 地图对象
var ac;// ac自动完成对象
var isReturnNum = false;// 初始未返回微信的经纬度信息
var parkMarkers = [];// 停车场覆盖物
var searchMarkers = [];// 搜索图标
var selectMarker = "";// 选中的覆盖物
var selectPoint = "";// 选中的覆盖物点
var selectMarkerColor = 0;// 选中的停车点剩余临界值类型(停车点标记颜色 0-蓝色(默认) 1-黄色 2-红色 )
var selectParkingType="";// 选中的停车点类型(停车点类型:0-路边停车点,1-路边简易停车点,2-场内停车点)
var selectFlag = false;// 是否选择过覆盖物,true表示选中


// 初始化获取当前用户的位置,如获取默认坐标不成功则赋值(绍兴城市广场坐标)
var latitudeNum = 30.009466;//30.214684;// 纬度
var longitudeNum = 120.58606;//120.218346;// 经度
var oldMyLocationMaker;// 旧的我的位置覆盖物
var newMypoint;//微信刷新定位:我的位置


wx.config({
//debug : true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId : $("#appId").val(), // 必填,公众号的唯一标识
timestamp : $("#timestamp").val(), // 必填,生成签名的时间戳
nonceStr : $("#nonceStr").val(), // 必填,生成签名的随机串
signature : $("#signature").val(), // 必填,签名,见附录1
jsApiList : ['getLocation' ]// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});


wx.ready(function() {
getLocation();
});


//获取当前地址  
function getLocation(){  
wx.getLocation({
type : 'wgs84',//GPS设备获取的角度坐标,wgs84坐标;
        //type : 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标(国测局坐标),可传入'gcj02'
success : function(res) {
var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
if(typeof (latitude) != "undefined" && latitude != null&&typeof (longitude) != "undefined" && longitude != null){
isReturnNum=true;
var gpsPoint = new BMap.Point(longitude,latitude);//GPS定位的地图坐标点
gpsConvertBaidu(gpsPoint);//(微信定位的坐标)转为百度坐标
}
var speed = res.speed; // 速度,以米/每秒计
var accuracy = res.accuracy; // 位置精度
},
cancel: function (res) {
        alert('用户拒绝授权获取地理位置!');
        isReturnNum = false;
    }
});
}


/**
 * 坐标转换完之后的回调函数处理
 */
translateCallback = function (data){
  if(data.status === 0) {
  //去除旧的定位点覆盖物,设置新的定位点覆盖物并查周边停车场信息
  newMypoint=data.points[0];
  changeMapAddr(data.points[0]);
  }
}


/**
 * 微信公众号GPS坐标转换百度坐标
 * 具体参考:http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition
 */
function gpsConvertBaidu(gpsPoint){
    var convertor = new BMap.Convertor();
    var pointArr = [];
    pointArr.push(gpsPoint);
    convertor.translate(pointArr,1,5, translateCallback);//GPS设备获取的角度坐标,wgs84坐标,定位转码;
    // convertor.translate(pointArr,3,5, translateCallback);//google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标,国测局坐标,定位转码; 
}








//页面加载初始化地图
initMap();


/**
 * 初始化创建和初始化地图函数
 * 初始化查询我的位置附近停车场
 */
function initMap() {
createMap_1();// 创建地图
createAutoMap();// 创建自动完成的map对象
setMapEvent_1();// 设置地图事件
addMapControl_1();// 初始化向地图添加控件
var mypoint = new BMap.Point(longitudeNum,latitudeNum); // 我的位置坐标
addMapOverlay_1(mypoint);// 初始化向地图添加覆盖物
// 初始化查询我的位置附近停车场
seachNearbyPark(longitudeNum, latitudeNum);

}


/**
 * 创建地图
 */
function createMap_1() {
map = new BMap.Map("allmap"); // 创建Map实例
map.centerAndZoom(new BMap.Point(longitudeNum, latitudeNum), 18);// 初始化地图,设置中心点坐标和地图级别。
}


/**
 * 设置地图事件
 */
function setMapEvent_1() {
addClickHandler_1(map);// 地图页面单击事件
addClickHandler_searchOnListOnBlur(ac);//搜索框鼠标放在下拉列表上的事件
addClickHandler_searchOnListOnClick(ac);//鼠标点击下拉列表后的事件
}


/**
 * 向地图添加控件
 */
function addMap

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值