wex5 如何利用 百度地图 定位 和 天气插件
引包:
require("cordova!cordova-plugin-geolocation");
require("cordova!com.justep.cordova.plugin.baidulocation");
Model.prototype.modelLoad = function(event){
var self = this;
var data = self.comp("data1"); //获取节点
var gpsDtd = this.getLocation(); //调用自带定位插件
gpsDtd.done(function(position) {
var positioning=position.latitude+"|"+position.longitude; //获取经纬度
data.setValue("location", position.address); //获取位置
require([ 'http://api.map.baidu.com/getscript?v=1.4&ak=&services=&t=20170929031641' ], function() { //百度api 作用:通过经纬度获取城市
if(BMap){
var point = new BMap.Point(position.longitude,position.latitude);
var gc = new BMap.Geocoder();
gc.getLocation(point, function(rs){
var addComp = rs.addressComponents;
address = addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber;
var params2 = {"city":encodeURI(addComp.city)};
Baas.sendRequest({ //访问后台天气接口
"url" : "/num/Data", // 请求地址
"action" : "weatherApi", // action
"params" : params2, // action对应的参数
"success" : function(weather){
console.info(weather);
if(weather && weather.status==200){
var forecast = weather.data.forecast[0];
var info = forecast.high +" "+ forecast.low +" "+ forecast.type +" "+ forecast.fx + forecast.fl ;
self.getElementByXid("weatherInfo").innerText=info;
}else{
self.getElementByXid("weatherInfo").innerText="暂无天气信息";
}
}
});
});
}
})
})
};
//定位方法
Model.prototype.getLocation = function() {
/*
* 获取当前定位,获取地理位置失败,暂时采用默认地址
*/
var gpsDtd = $.Deferred();
if (this.wxApi) {
this.wxApi.exec().done(function(wx) {
wx.getLocation({
type : "gcj02",
success : function(data) {
gpsDtd.resolve({
coorType : data.coorType,
address : data.address,
longitude : data.longitude,
latitude : data.latitude
});
},
cancel : function(res) {
gpsDtd.resolve({
longitude : 116.45764191999997,
latitude : 39.8622934399999
});
}
});
}).fail(function() {
gpsDtd.resolve({
longitude : 116.45764191999997,
latitude : 39.8622934399999
});
});
} else if (navigator.geolocation) {
var success = function(data) {
// data.longtitude 经度
// data.latitude 纬度
// data.address 文字描述的地址信息
// data.hasRadius 是否有定位精度半径
// data.radius 定位精度半径
// data.type 定位方式
// data.coorType
gpsDtd.resolve({
coorType : data.coorType,
address : data.address,
coorType: data.coorType,
longitude : data.coords.longitude,
latitude : data.coords.latitude
});
};
var fail = function(e) {
justep.Util.hint("获取地理位置失败,暂时采用默认地址");
gpsDtd.resolve({
longitude : 116.45764191999997,
latitude : 39.8622934399999
});
};
/**
* 如果在室内 enableHighAccuracy: true 反而误差更大
* 如果在室外 enableHighAccuracy: true 相对准确
*/
navigator.geolocation.getCurrentPosition(success, fail);
/*var gpsWatchID = navigator.geolocation.watchPosition(success, fail,{
timeout: 30*1000,
maximumAge: 30000,
enableHighAccuracy: true});*/
} else {
justep.Util.hint("获取地理位置失败,暂时采用默认地址");
gpsDtd.resolve({
longitude : 116.45764191999997,
latitude : 39.8622934399999
});
}
return gpsDtd.promise();
};
BAAS:
public static JSONObject weatherApi(JSONObject params, ActionContext context)
throws SQLException, NamingException, IOException {
Connection conn = context.getConnection(DATASOURCE_NUMYSQL);
String city = params.getString("city");
JSONObject rt = new JSONObject();
try {
// 把字符串转换为URL请求地址
URL url = new URL("http://www.sojson.com/open/api/weather/json.shtml?city="+city);
// 打开连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();// 连接会话
// 获取输入流
BufferedReader br = new BufferedReader(newInputStreamReader(connection.getInputStream(),"UTF-8"));
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {// 循环读取流
sb.append(line);
}
br.close();// 关闭流
connection.disconnect();// 断开连接
JSONObject weather = JSONObject.parseObject(sb.toString());
return weather;
}finally {
conn.close();
}
}
wex5 如何利用 百度地图 定位 和 天气插件的更多相关文章
- cordova百度地图定位Android版插件
本插件利用百度地图提供的定位功能进行Android版手机定位. 为什么没有iOS版? 因为iOS版有官方的定位插件cordova-plugin-geolocation可以使用. 请参照:cordova ...
- Android利用百度地图定位
百度地图照着百度的教程做的总是出现报错 请帮我看看错误在那 2013-12-13 15:16168海军 | 分类:百度地图 | 浏览1252次 java.lang.RuntimeException: ...
- 利用百度地图API,获取经纬度坐标
利用百度地图API,获取经纬度坐标 代码很简单,但在网上没找到现成的获取地图经纬度的页面. 就是想,给当前页面传递一个经纬度,自动定位到此经纬度.然后可以重新选择,选择完返回经纬度. 效果如下: 源代 ...
- Android 百度地图定位(手动+自动) 安卓开发教程
近由于项目需要,研究了下百度地图定位,他们提供的实例基本都是用监听器实现自动定位的.我想实现一种效果:当用户进入UI时,不定位,用户需要定位的时候,自己手动点击按钮,再去定位当前位置. 经过2天研究 ...
- 【百度地图API】建立全国银行位置查询系统(四)——如何利用百度地图的数据生成自己的标注
原文:[百度地图API]建立全国银行位置查询系统(四)--如何利用百度地图的数据生成自己的标注 摘要: 上一章留个悬念,"如果自己没有地理坐标的数据库,应该怎样制作银行的分布地图呢?&quo ...
- 百度地图定位SDK 之构想
百度地图定位 前提 从香港旅游回来,心中油然升起一股热血滂湃,激励自己发现市场需求,向创业奋进,朝着梦想前进. 简介 百度Android定位SDK支持Android1.5以及以上设备,提供: 定位功能 ...
- 利用百度地图API和群蚁算法,对TSP问题进行模拟与求解
前言 最近由于换了工作,期间也有反思和总结上家公司的得失,总觉得有什么事情当初可以完成或者完成得更好,其中TSP问题就是其中之一.当初在开发一个仓配系统的时候,有一个线路排程的需求,当时自己简单在纸上 ...
- Android使用百度地图定位并显示手机位置后使用前置摄像头“偷拍”
今天老板让我验证一下技术可行性,记录下来. 需求 :定位手机的位置并在百度地图上显示,得到位置后使用前置摄像头进行抓拍 拿到这个需求后,对于摄像头的使用不太熟悉,于是我先做了定位手机并在百度地图上显示 ...
- IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息
IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息 /**当获取到定位的坐标后,回调函数*/ - (void)didUpdateBMKUserLocation:(BMKUserLocati ...
随机推荐
- eclipse中取消自动生成的TODO Auto-generated method stub
我们在实现接口定义的方法.Eclipse往往会自动加上一句:TODO Auto-generated method stub 每次手动删除很麻烦,我们可以设置一下,让强大的Eclipse在完成自动代码时 ...
- python3笔记十二:python数据类型-Dictionary字典
一:学习内容 字典概念 字典创建 字典访问 字典添加 字典删除 字典遍历 字典与列表比较 二:字典概念 1.使用键值对(key-value)存储,具有极快的查找速度 2.注意:字典是无序的 3.特性: ...
- php设计模式-注册树模式
php注册树模式 1.什么是注册树模式? 注册树模式通过将对象实例注册到全局对象树上,需要的时候将对象从全局对象树上取下来,就像小时候买糖葫芦一样,卖糖葫芦的将糖葫芦插在一个大的杆子上,人们买的时候就 ...
- 《Java编程思想》读书笔记<一>
第二章 一切皆对象 java是面向对象的语言. 1.我们怎么操作对象? 每种语言都有自己的操纵内存中元素的方式,java使用引用操作内存中元素(对象).引用可以独立存在,例如:String s:表示创 ...
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
适应配置的方式解决我们刚才的编码操作 -dist结尾的就是spring 的开发包 解压好的 这里面是约束 libs是扎包 三个为一组,实际上只有21个 自己在使用需要导入jar包的时候,选择这种没有任 ...
- Delphi实现类的持久化保存(DFM格式)
var inStream,outStream:TMemoryStream; begin inStream:=TMemoryStream.Create; outStream:=TMemoryStream ...
- nginx启动用户和nginx工作用户要一致
[root@bogon default]# ps aux | grep "nginx: worker process" | awk '{print $1}'rootrootroot ...
- What is an Activation object in JavaScript ?
********************* from Professional JavaScript for Web Development Execution Context And Scope T ...
- HiMall 3接口鉴权参考
签名算法 为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,HOP服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝.TOP目前支持的签名算法只有一种:MD5(s ...
- CentOS7上安装配置破解Elasticsearch+Kibana 6.4.2-6.5.1全过程
最近正在学习服务器应用平台的搭建的相关知识.有幸从朋友与书上了解到Elastic套件的使用,我花了两天的时间把最新的套件部署在我的服务器上,中间踩了数不清的坑.我把整个过程都记录了下来与各位有需要的朋 ...