解决办法,请参考:
declare const BMapGL: any;
declare const BMAP_STATUS_SUCCESS: number;
class GisUtils {
public static fetchCurLatLng(onSuccess: (location: any)=>void, onError:(info:any)=>{}){
var geolocation = new BMapGL.Geolocation();
geolocation.getCurrentPosition(((()=>{
return function(r:any){
const that = (eval("this") as any);
if(that.getStatus() === BMAP_STATUS_SUCCESS){
onSuccess(r.point)
}else {
onError(that)
}
};
}) as ()=>((r:any)=>any))());
/* 浏览器版本
navigator.geolocation.getCurrentPosition((p)=>{
console.log("::",p.coords, )
this.getAddress(new BMapGL.Point(p.coords.longitude,p.coords.latitude))
},()=>{
console.log("error", arguments);
},{
enableHighAccuracy:true,
timeout:10
});
*/
}
//获取地址信息,设置地址label
public getAddress(point:any, onSuccess:(address: any)=>void){
var gc = new BMapGL.Geocoder();
gc.getLocation(point, function(rs:any){
var addComp = rs.addressComponents;
// var address = addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber;//获取地址
// console.log(address);
onSuccess(addComp);
});
}
}
export {GisUtils};