JS獲取本地地址及天氣的方法實(shí)例小結(jié)
本文實(shí)例講述了JS獲取本地地址及天氣的方法。分享給大家供大家參考,具體如下:
一、獲取本地的地址
第一種方式:
1、利用瀏覽器獲取當(dāng)前位置的經(jīng)緯度
window.onload=getCurrentPosition;
//瀏覽器獲取當(dāng)前位置
function getCurrentPosition() {
if (window.navigator.geolocation) {
var options = {
enableHighAccuracy: true,
};
window.navigator.geolocation.getCurrentPosition(handleSuccess, handleError, options);
}else {
alert("瀏覽器不支持html5來(lái)獲取地理位置信息");
}
}
2、瀏覽器獲取到的是GPS坐標(biāo),需要轉(zhuǎn)換成城市名稱(chēng)再通過(guò)城市獲取天氣:
//成功獲取時(shí)調(diào)用的函數(shù)
function handleSuccess(position) {
// 獲取到當(dāng)前位置經(jīng)緯度 本例中獲取到的是gps坐標(biāo)系
//經(jīng)度
var lng = position.coords.longitude;
//緯度
var lat = position.coords.latitude;
//轉(zhuǎn)換成百度坐標(biāo)系
//將請(qǐng)求發(fā)送給‘
var ggPoint = new BMap.Point(lng, lat);
//地圖初始化
var bm = new BMap.Map();
//坐標(biāo)轉(zhuǎn)換完之后的回調(diào)函數(shù)
translateCallback = function (data) {
if (data.status === 0) {//回調(diào)成功
var marker = new BMap.Marker(data.points[0]);
var myGeo = new BMap.Geocoder();
var baiduPoint = new BMap.Point(data.points[0].lng, data.points[0].lat);
//將經(jīng)緯度轉(zhuǎn)換成城市
myGeo.getLocation(baiduPoint, getCityByCoordinate);
}
}
setTimeout(function () {
var convertor = new BMap.Convertor();
var pointArr = [];
pointArr.push(ggPoint);
convertor.translate(pointArr, 3, 5, translateCallback)
}, 2000);
}
function getCityByCoordinate(result) {
var gpsAadress=result.addressComponents;
var city=gpsAadress.city;
//將轉(zhuǎn)換之后的城市傳入獲取天氣的函數(shù)做參數(shù)
getWeatherDatas(city);
return city;
}
function handleError() {
log('地點(diǎn)定位出錯(cuò)');
}
第二種方式:
1、利用百度API通過(guò)IP地址獲取本地地址
//通過(guò)百度的 IP地址獲取本地地址
window.onload=getCurrentPosit;
function getCurrentPosit() {
var map = new BMap.Map('getCity');
function myFun(result){
var cityName = result.name;
getWeatherDatasFun(cityName);
map.setCenter(cityName);
alert("當(dāng)前定位城市:"+cityName);
}
var myCity = new BMap.LocalCity();
myCity.get(myFun);
2、通過(guò)城市獲取天氣數(shù)據(jù):
function getWeatherDatas(city) {
var url='http://route.showapi.com/9-2?';
if(city===undefined || city===""){
log('您還未輸入')
}else {
$.ajax({
type: 'post',
url: url,
dataType: 'jsonp',
data: {
"showapi_timestamp": new Date().getTime(),
"showapi_appid": '44277', //這里需要改成自己的appid
"showapi_sign": '9987d6dff19e482488b33dc8ed70f6e9', //這里需要改成自己的應(yīng)用的密鑰secret,
"area":city
},
jsonp: 'jsonpcallback', //這個(gè)方法名很重要,不能改變
error: function(XmlHttpRequest, textStatus, errorThrown) {
log("操作失敗,請(qǐng)重試!"+errorThrown);
},
success: function(result) {
//解析獲取到的天氣數(shù)據(jù)
console.log('The Weather datas: ',result);
}
});
}
}
更多關(guān)于JavaScript相關(guān)內(nèi)容還可查看本站專(zhuān)題:《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript操作DOM技巧總結(jié)》及《JavaScript字符與字符串操作技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- js實(shí)現(xiàn)百度地圖定位于地址逆解析,顯示自己當(dāng)前的地理位置
- 使用JS獲取當(dāng)前地理位置方法匯總
- 百度地圖api應(yīng)用標(biāo)注地理位置信息(js版)
- JS獲取當(dāng)前地理位置的方法
- 微信js-sdk地理位置接口用法示例
- js實(shí)現(xiàn)PC端根據(jù)IP定位當(dāng)前城市地理位置
- JavaScript獲取用戶(hù)所在城市及地理位置
- js獲取新浪天氣接口的實(shí)現(xiàn)代碼
- JS HTML5 音樂(lè)天氣播放器(Ajax獲取天氣信息)
- 原生js實(shí)現(xiàn)查詢(xún)天氣小應(yīng)用
相關(guān)文章
微信小程序 點(diǎn)擊控件后選中其它反選實(shí)例詳解
這篇文章主要介紹了微信小程序 點(diǎn)擊控件后選中其它反選實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-02-02
javascript把15位身份證轉(zhuǎn)成18的函數(shù)
非常不錯(cuò)的,看了這個(gè)大家就明白身份證的運(yùn)算規(guī)則了2008-10-10
JS實(shí)現(xiàn)面包屑導(dǎo)航功能從零開(kāi)始示例
這篇文章主要為大家介紹了JS實(shí)現(xiàn)面包屑導(dǎo)航功能從零開(kāi)始示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
如何防止JavaScript自動(dòng)插入分號(hào)
JavaScript語(yǔ)言有一個(gè)機(jī)制:在解析時(shí),能夠在一句話后面自動(dòng)插入一個(gè)分號(hào),用來(lái)修改語(yǔ)句末尾遺漏的分號(hào)分隔符。然而,由于這個(gè)自動(dòng)插入的分號(hào)與JavaScript語(yǔ)言的另一個(gè)機(jī)制發(fā)生了沖突,即所有空格符都被忽略,因此程序可以利用空格格式化代碼2015-11-11
js+css簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)換膚效果
這篇文章主要介紹了js+css簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)換膚效果的方法,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)遍歷及修改頁(yè)面元素樣式的相關(guān)技巧,需要的朋友可以參考下2015-12-12

