|
发表于 2016-9-19 17:39:17
|
显示全部楼层
示例代码如下:- Model.prototype.modelLoad = function(event) {
- // 调用百度地图
- require([ 'http://api.map.baidu.com/api?v=2.0&ak=o9pzum8sF8s3wqodZnt9S5OsKlLdjOil&callback=_baiduInit' ], function() {
- if (window.BMap && window.BMap.Map) {
- window._baiduInit();
- }
- });
- var self = this;
- var id = this.getIDByXID("mapDiv");// mapDiv中添加地图
- window._baiduInit = function() {
- // 调用百度地图API功能
- var map = new BMap.Map(id);// 创建定位对象
- var geol = new BMap.Geolocation()// 创建定位对象
- var geoc = new BMap.Geocoder();
- // 定位成功开始画地图
- var success = function(data) {
- map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
- var local = new BMap.LocalSearch(map, {
- renderOptions : {
- map : map
- }
- });
- local.search(self.position);
- // 给标注添加跳转功能
- map.addEventListener("click", function(e) {
- var placename = e.street;
- var data = self.comp("baasData1");
- var addr;
- geoc.getLocation(e.point, function(result) {
- addr = result.addressComponents.district;
- data.filters.setVar("placename",addr);
- data.refreshData();
- if(data.count()== 0){
- data.newData({
- defaultValues : [ {
- placename : addr
- } ]
- })
- data.saveData();
- }
- })
- // 点击获取经纬度
- self.lng = e.point.lng;
- self.lat = e.point.lat;
- alert(e.point.lng + ", " + e.point.lat);
- // 点击跳转--传参
- if (e.overlay) {
- if (confirm("是否查看景点信息?")) {
- var params = {
- position:self.position
- }
- justep.Shell.showPage('DetailsPage', params);
- } else {
- }
- } else {
- }
- });
- // 添加带有定位的导航控件
- var navigationControl = new BMap.NavigationControl({
- // 靠左上角位置
- anchor : BMAP_ANCHOR_TOP_LEFT,
- // LARGE类型
- type : BMAP_NAVIGATION_CONTROL_LARGE,
- // 启用显示定位
- enableGeolocation : true
- });
- map.addControl(navigationControl);
- }
- // 若定位失败返回
- var error = function() {
- alert("定位失败");
- }
- // 定位法获取坐标点
- navigator.geolocation.getCurrentPosition(success, error)
- };
- };
复制代码 |
|