新聞中心
圖片

松江網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),松江網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為松江上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的松江做網(wǎng)站的公司定做!
Redis作為一種快速的鍵值數(shù)據(jù)庫,在網(wǎng)站中應(yīng)用廣泛,不論是緩存還是統(tǒng)計(jì),都非常好用。本文將介紹如何使用Redis實(shí)現(xiàn)對網(wǎng)站訪客的地圖繪制功能,以及通過PHP代碼實(shí)現(xiàn)此功能。
在服務(wù)器安裝Redis,如果你的服務(wù)器已經(jīng)安裝了,可以跳過此步驟。Redis主要用于存儲訪客的IP地址,因此打開Redis的配置文件,將maxmemory設(shè)置為存儲所需的內(nèi)存數(shù)量(一般設(shè)置為256MB),因?yàn)镮P地址不會變化,所以可以設(shè)置maxmemory-policy為allkeys-lru。
接下來,需要在網(wǎng)頁上添加一段JS代碼,以便獲取訪客的IP地址:
$(function(){
$.get(‘http://ip-api.com/json/?fields=status,message,continent,country,regionName,city,zip,lat,lon,timezone,isp’,function(ipInfo){
if(‘success’ === data.status){
/*setting redis*/
VAR info = {
“continent”: data.continent,
“country”: data.country,
“regionName”: data.regionName,
“city”: data.city,
“zip”: data.zip,
“l(fā)at”: data.lat,
“l(fā)on”: data.lon,
“timezone”: data.timeZone,
“isp”: data.isp
}
//發(fā)送請求給Redis,將訪客IP地址以及對應(yīng)的地理信息寫入Redis
$.post(‘/php/saveGeoInfo.php’,info,function(res){
});
}
});
});
接下來我們就可以寫PHP處理Redis訪客數(shù)據(jù)的代碼了,PHP代碼使用了Predis組件,我們可以通過以下代碼將Redis中的數(shù)據(jù)收集起來:
use Predis\Client;
$client = new Client([
‘scheme’ = ‘tcp’
‘host’ = ”
‘port’ = 6379
]);
//獲取Redis中IP地址和地理位置信息
$geoInfo = $client->hgetall(‘geo_info’);
$data = array();
//循環(huán)處理獲取的數(shù)據(jù),將訪客的位置存入數(shù)組
foreach($geoInfo as $key => $value){
$geoData = json_decode($value);
$data[$geoData->lat][$geoData->lon][] = $geoData;
}
header(‘Content-Type: application/json’);
echo json_encode($data);
//輸出JSON數(shù)據(jù),可以使用百度地圖API將獲取的數(shù)據(jù)繪制成圖片
?>
可以使用百度地圖API來繪制訪客位置圖,網(wǎng)上有很多開源API可以使用,這里我們以百度地圖為例:
$( function () {
// 使用JQuery從服務(wù)器獲取訪客的位置
$.get( ‘/php/geoJson.php’, function ( geojson ) {
//獲取到的JSON數(shù)據(jù),轉(zhuǎn)換成GeoJson格式的數(shù)據(jù):
var geoDataSet = {“type”: “FeatureCollection”,”features”: [] };
$.each( geojson, function ( lat, lon ) {
$.each( lon, function ( key, value ) {
geoDataSet.features.push({
“type”:”Feature”,
“properties”:{“name”:value[0].country+value[0].regionName+value[0].city},
“geometry”:{
“type”:”Point”,
“coordinates”:[value[0].lon,value[0].lat]
}
});
});
});
var map = new BMap.Map(“contner”);
map.centerAndZoom(new BMap.Point(104.067, 30.633), 5);
//創(chuàng)建LBS搜索實(shí)例
var localSearch = new BMap.LocalSearch(map);
//向地圖添加LBS實(shí)例
var lbsLayer = new BMap.GeoJSON(geoDataSet);
lbsLayer.addTo(map);
//添加比例尺控件
var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});
var top_left_navigation = new BMap.NavigationControl();
});
});
通過以上代碼,我們就能在網(wǎng)頁上成功的繪出服務(wù)器上的訪客位置地圖圖片。
使用Redis儲存用戶的IP地址,再配合JS和PHP,結(jié)合百度地圖API,就可以很輕易地實(shí)現(xiàn)繪制網(wǎng)站訪客地圖圖片的功能。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
本文標(biāo)題:Redis繪出訪客的地圖(redis訪客地圖)
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/cdcehdc.html


咨詢
建站咨詢
