|
//手机
define(function(require) {
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
require("cordova!com.justep.cordova.plugin.bmap");
var bmap = require('$UI/system/components/justep/bmap/bmap');
var Model = function() {
this.callParent();
};
Model.prototype.loadBaiduMap = function() {
// 调用百度密钥
require([ 'http://api.map.baidu.com/api?v=1.4&ak=o9pzum8sF8s3wqodZnt9S5OsKlLdjOil&callback=_baiduInit' ], function() {
if (window.BMap && window.BMap.Map) {
window._baiduInit();
}
});
var id = this.getIDByXID("div1");
window._baiduInit = function() {
map = new BMap.Map(id, {
minZoom : 2,
enableMapClick : false
}); // 创建地图对象,可以设置地图缩放最大最小级别,设置是否显示POI点击
var geoc = new BMap.Geocoder();
var point = new BMap.Point(window.lon, window.lat);
var pointA = new BMap.Point((window.lon), window.lat);
map.centerAndZoom(point, 20);
map.enableScrollWheelZoom(true); // 设置允许鼠标滚轮缩放地图
map.enableContinuousZoom(); // 设置连续缩放
map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件
map.addControl(new BMap.ScaleControl()); // 添加比例尺控件
map.addControl(new BMap.OverviewMapControl()); // 添加缩略地图控件
map.enableScrollWheelZoom(); // 启用滚轮放大缩小,默认禁用
map.enableContinuousZoom(); // 启用地图惯性拖拽,默认禁用
var marker = new BMap.Marker(point); // 创建标注
var markerA = new BMap.Marker(pointA); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
map.addOverlay(markerA);
marker.setAnimation(BMAP_ANIMATION_BOUNCE); // 跳动的动画
markerA.addEventListener("click", getAttr);
function getAttr() {
var walking = new BMap.WalkingRoute(map, {
renderOptions : {
map : map,
panel : "r-result",
autoViewport : false
}
});
walking.search(point, pointA);
walking.alert((map.getDistance(point, pointA)).toFixed(2) + ' 米。');
}
map.addEventListener("click", function(e) { // 增加鼠标点击事件
point = new BMap.Point(e.point.lng, e.point.lat);
geoc.getLocation(e.point, function(rs) {
var addComp = rs.addressComponents;
});
});
};
};
Model.prototype.modelModelConstructDone = function(event) {
function success(data) {
if (data.coords.longitude != "" && data.coords.latitude != "") {
window.lon = data.coords.longitude;
window.lat = data.coords.latitude;
}
}
function fail(msg) {
alert("定位失败!错误消息:" + msg);
}
navigator.geolocation.getCurrentPosition(success, fail, null);
this.loadBaiduMap()
};
return Model;
});
//浏览器
define(function(require) {
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
var bmap = require('$UI/system/components/justep/bmap/bmap');
var utils = require("$UI/demo/plugin/utils");
var longitude=116.45764191999997;
var latitude = 39.8622934399999;
var Model = function() {
this.callParent();
};
Model.prototype.modelModelConstructDone = function(event) {
_this = this
var gpsDtd = $.Deferred();
if (navigator.geolocation) {
var success = function(data) {
// data.longtitude 经度
// data.latitude 纬度
// data.address 文字描述的地址信息
// data.hasRadius 是否有定位精度半径
// data.radius 定位精度半径
// data.type 定位方式
// data.coorType
longitude=data.coords.longitude
latitude = data.coords.latitude
_this.loadBaiduMap()
};
var fail = function(e) {
justep.Util.hint("获取地理位置失败,暂时采用默认地址");
longitude=116.45764191999997;
latitude = 39.8622934399999;
_this.loadBaiduMap()
};
/**
* 如果在室内 enableHighAccuracy: true 反而误差更大 如果在室外 enableHighAccuracy:
* true 相对准确
*/
navigator.geolocation.getCurrentPosition(success, fail);
} else {
justep.Util.hint("获取地理位置失败,暂时采用默认地址");
longitude=116.45764191999997;
latitude = 39.8622934399999;
_this.loadBaiduMap()
}
};
Model.prototype.loadBaiduMap = function() {
// 调用百度密钥
require([ 'http://api.map.baidu.com/api?v=1.4&ak=o9pzum8sF8s3wqodZnt9S5OsKlLdjOil&callback=_baiduInit' ], function() {
if (window.BMap && window.BMap.Map) {
window._baiduInit();
}
});
var id = this.getIDByXID("div1");
window._baiduInit = function() {
map = new BMap.Map(id, {
minZoom : 2,
enableMapClick : false
}); // 创建地图对象,可以设置地图缩放最大最小级别,设置是否显示POI点击
var geoc = new BMap.Geocoder();
var point = new BMap.Point(longitude, latitude);
var pointA = new BMap.Point((longitude), latitude);
map.centerAndZoom(point, 20);
map.enableScrollWheelZoom(true); // 设置允许鼠标滚轮缩放地图
map.enableContinuousZoom(); // 设置连续缩放
map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件
map.addControl(new BMap.ScaleControl()); // 添加比例尺控件
map.addControl(new BMap.OverviewMapControl()); // 添加缩略地图控件
map.enableScrollWheelZoom(); // 启用滚轮放大缩小,默认禁用
map.enableContinuousZoom(); // 启用地图惯性拖拽,默认禁用
var marker = new BMap.Marker(point); // 创建标注
var markerA = new BMap.Marker(pointA); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
map.addOverlay(markerA);
marker.setAnimation(BMAP_ANIMATION_BOUNCE); // 跳动的动画
markerA.addEventListener("click", getAttr);
function getAttr() {
var walking = new BMap.WalkingRoute(map, {
renderOptions : {
map : map,
panel : "r-result",
autoViewport : false
}
});
walking.search(point, pointA);
walking.alert((map.getDistance(point, pointA)).toFixed(2) + ' 米。');
}
map.addEventListener("click", function(e) { // 增加鼠标点击事件
point = new BMap.Point(e.point.lng, e.point.lat);
geoc.getLocation(e.point, function(rs) {
var addComp = rs.addressComponents;
});
});
};
};
return Model;
});
|
|