日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

上個(gè)星期公司讓我做一個(gè)需求,需求描述如下:

首先根據(jù)用戶的當(dāng)前位置進(jìn)行定位,然后在地圖上展示出當(dāng)前的定位地址,用戶可以自己移動(dòng)位置,并且用戶可以自己進(jìn)行搜索地理位置進(jìn)行定位(描述能力不是很好,請(qǐng)見(jiàn)諒!!!)

解決:

剛開(kāi)始我準(zhǔn)備使用百度地圖來(lái)實(shí)現(xiàn)上述的現(xiàn)象,但是由于上述要求需要與我們的小程序項(xiàng)目進(jìn)行對(duì)應(yīng)上,由于百度使用的是BD-09(百度坐標(biāo)系),如果使用百度地圖來(lái)實(shí)現(xiàn)的話,之后會(huì)使用到坐標(biāo)系的轉(zhuǎn)化,感覺(jué)有點(diǎn)麻煩,由于小程序使用的就是騰訊地圖,所以這里我就是用騰訊地圖API來(lái)實(shí)現(xiàn)上面的需求

一:用戶定位

用戶定位使用到的JS文件:https://3gimg.qq.com/lightmap...

用戶定位API:

var geolocation = new qq.maps.Geolocation("開(kāi)發(fā)者KEY", "myApp");
geolocation.getLocation(function(position) {
 console.log(position)
 lat = position.lat;//緯度
 lng = position.lng;//經(jīng)度
});

根據(jù)如上代碼控制臺(tái)現(xiàn)象如:

「干貨」騰訊API 地圖相關(guān)實(shí)現(xiàn)

 

二:根據(jù)定位在地圖上展示定位

使用到的JS文件:https://map.qq.com/api/js?v=2...

1:地圖展示API:

html(地圖容器):

<div id="container" style="height: 400px;width: 500px"></div>

js:

var center = new qq.maps.LatLng(lat, lng);//lat:緯度,lng:經(jīng)度
//定義map變量 調(diào)用 qq.maps.Map() 構(gòu)造函數(shù) 獲取地圖顯示容器
var map = new qq.maps.Map(document.getElementById("container"), {
 center: center, // 地圖的中心地理坐標(biāo)。
 zoom:14
});

根據(jù)如上代碼現(xiàn)象如:

「干貨」騰訊API 地圖相關(guān)實(shí)現(xiàn)

 

2:在地圖上標(biāo)注出當(dāng)前定位點(diǎn):

根據(jù)上面的我們可以顯示出我們定位的地圖,但是我們無(wú)法看到我們的定位位置在哪,標(biāo)注API就可以讓我們知道我們定位的位子在哪了

標(biāo)注API:

//添加標(biāo)記點(diǎn)
var marker = new qq.maps.Marker({
 position: center,
 draggable: true,//標(biāo)注點(diǎn)是否可移動(dòng)
 map: map
});

如果我們將draggable參數(shù)設(shè)置為true(標(biāo)注點(diǎn)可移動(dòng)),在標(biāo)注點(diǎn)移動(dòng)結(jié)束后會(huì)觸發(fā)dragend事件

//標(biāo)注點(diǎn)拖拽事件
qq.maps.event.addListener(marker, 'dragend', function(event) {
 console.log(event)
 lat = event.latLng.getLat() //緯度
 lng = event.latLng.getLng() //經(jīng)度
});

根據(jù)如上現(xiàn)象如:

「干貨」騰訊API 地圖相關(guān)實(shí)現(xiàn)

 

移動(dòng)標(biāo)注點(diǎn)控制臺(tái)現(xiàn)象如:

「干貨」騰訊API 地圖相關(guān)實(shí)現(xiàn)

 

3:在地圖上顯示提示信息

提示窗API:

//添加到提示窗
var info = new qq.maps.InfoWindow({
 map: map
});
info.open();
//lat:緯度, lng:經(jīng)度
info.setContent('<div style="text-align:center;white-space:nowrap;margin:2px;">' +
 '<div>緯度:'+ lat + '</div>' +
 '<div>經(jīng)度:'+ lng + '</div>' +
 '</div>');
info.setPosition(center);

根據(jù)如上代碼現(xiàn)象如:

「干貨」騰訊API 地圖相關(guān)實(shí)現(xiàn)

 

4:根據(jù)實(shí)際地址獲取到對(duì)應(yīng)的經(jīng)緯度

地址解析(Geocoder)API:

//調(diào)用地址解析類
var geocoder = new qq.maps.Geocoder({
 complete: function (result) {
 console.log(result)
 lat = result.detail.location.lat;//經(jīng)度
 lng = result.detail.location.lng;//緯度
 }
})
var searchAddress = '北京市海淀區(qū)海淀大街38號(hào)';//實(shí)際地址
//通過(guò)getLocation();方法獲取位置信息值
geocoder.getLocation(searchAddress);

根據(jù)如上代碼控制臺(tái)現(xiàn)象如:

「干貨」騰訊API 地圖相關(guān)實(shí)現(xiàn)

 

根據(jù)如上學(xué)習(xí)我的需求實(shí)現(xiàn)代碼如下:

1:引入js:

<script src="https://3gimg.qq.com/lightmap/components/geolocation/geolocation.min.js"></script>
<script src="https://map.qq.com/api/js?v=2.exp&key=開(kāi)發(fā)者KEY"></script>

2:html:

<div>
 <input type="text" id="search_address" placeholder="請(qǐng)輸入詳細(xì)地址">
 <button onclick="searchAddress()">搜索</button>
</div>
<div id="container" style="height: 400px;width: 500px"></div>

3:js:

window.onload = function(){
 //初始化地圖函數(shù) 自定義函數(shù)名init
 function init() {
 //獲取用戶經(jīng)緯度
 var geolocation = new qq.maps.Geolocation("開(kāi)發(fā)者KEY", "myapp");
 geolocation.getLocation(function(position) {
 console.log(position)
 lat = position.lat;//緯度
 lng = position.lng;//經(jīng)度
 container = 'container';
 mapShow(lat, lng, container)
 });
 }
 //調(diào)用初始化函數(shù)地圖
 init();
}
/**
 * 實(shí)際地址搜索事件
 * /
function searchAddress() {
 //調(diào)用地址解析類
 var geocoder = new qq.maps.Geocoder({
 complete: function (result) {
 //根據(jù)用戶輸入的詳細(xì)地址獲取到對(duì)應(yīng)的經(jīng)緯度
 lat = result.detail.location.lat;//緯度
 lng = result.detail.location.lng;//經(jīng)度
 container = 'container';
 mapShow(lat, lng, container)
 }
 })
 var searchAddress = document.getElementById('search_address').value;//獲取用戶輸入的詳細(xì)地址
 //通過(guò)getLocation();方法獲取位置信息值
 geocoder.getLocation(searchAddress);
}
/**
 * 提示框
 * @param info
 * @param lat
 * @param lng
 * @param center
 */
function message(info, lat, lng, center) {
 info.open();
 //lat:緯度, lng:經(jīng)度
 info.setContent('<div style="text-align:center;white-space:nowrap;margin:2px;">' +
 '<div>緯度:'+ lat + '</div>' +
 '<div>經(jīng)度:'+ lng + '</div>' +
 '</div>');
 info.setPosition(center);
}
/**
 * 地圖展示
 * @param lat
 * @param lng
 * @param container
 */
function mapShow(lat, lng, container) {
 //初始化地圖,展示地圖
 var center = new qq.maps.LatLng(lat, lng);
 //定義map變量 調(diào)用 qq.maps.Map() 構(gòu)造函數(shù) 獲取地圖顯示容器
 var map = new qq.maps.Map(document.getElementById(container), {
 center: center, // 地圖的中心地理坐標(biāo)。
 zoom:14
 });
 //添加標(biāo)記點(diǎn)
 var marker = new qq.maps.Marker({
 position: center,
 draggable: true,//標(biāo)注點(diǎn)是否可移動(dòng)
 map: map
 });
 //添加到提示窗
 var info = new qq.maps.InfoWindow({
 map: map
 });
 message(info, lat, lng, center)
 //標(biāo)注點(diǎn)拖拽事件
 qq.maps.event.addListener(marker, 'dragend', function(event) {
 console.log(event)
 lat = event.latLng.getLat() //緯度
 lng = event.latLng.getLng() //經(jīng)度
 center = new qq.maps.LatLng(lat, lng);
 message(info, lat, lng, center)
 });
}

根據(jù)如上實(shí)現(xiàn):

「干貨」騰訊API 地圖相關(guān)實(shí)現(xiàn)

 

分享到:
標(biāo)簽:騰訊 API
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定