微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nodejs根据ip数组在百度地图中进行定位

利用node接收到的ip数组组装url后对百度地图api发送请求并返回请求结果数组给前端

1. 前端代码部分(jquery)

重要步骤:

1> 引用百度地图

2> 实例化百度地图,添加相关缩放控件,设置主图

3> 重写http请求,设置contentType并对请求数据作转化为json对象处理

4> 发送请求数据,将请求结果转化成可处理对象

5> 根据响应结果的经纬度进行定位,添加认覆盖物和iplabel

rush:xhtml;">

2. 后端代码(nodejs)

步骤:

1> 引入http模块,express模块,body-parser模块

2> 设置允许跨域请求和请求响应的数据类型

3>设置接口请求回调函数

4>请求回调函数中,取到获取的数据并遍历,向百度api发起请求

5>获取百度的响应数据后push进数组,并对前端请求作出响应

rush:js;"> var http = require('http'); var express = require('express'); var app = express(); //实例化 var key = 'OxLYdFmu3YS1haMUcaBmGMBK0P7PbOqb'; //百度api的key var bodyParser = require('body-parser'); // 创建 application/x-www-form-urlencoded 编码解析 // var urlencodedParser = bodyParser.urlencoded({ extended: false }) app.use(bodyParser.json()); //json编码 //设置跨域访问 app.all('*',function(req,res,next) { res.header("Access-Control-Allow-Origin","*"); res.header("Access-Control-Allow-Headers","X-Requested-With,Content-Type"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE"); res.header("X-Powered-By",' 3.2.1') res.header("Content-Type","application/json;charset=utf-8"); next(); }); //post请求,url/map app.post('/map',res){ var ipArr = req.body; var result = Array(); for (var i = 0; i < ipArr.length; i++) { var tree = ''; var options = { hostname: 'api.map.baidu.com',port: 80,path: '/location/ip?ak=' + key + "&coor=bd09ll&ip=" + ipArr[i],method: 'GET' }; // 向远程服务器端发送请求 var getLocation = http.request(options,function(response){ response.on('data',function(data) { tree += data; result.push(tree); //避免缓存 tree = ''; }); }); getLocation.end(); } //延后发送请求响应 setTimeout(function(){ res.status(200).send(result); },500); }) //监听8081接口打印请求域名和端口 var server = app.listen(8081,function () { var host = server.address().address var port = server.address().port console.log("应用实例,访问地址为 http://%s:%s",host,port) })

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程之家!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐