如何使用nodejs/javascript实现地理编码响应
How to implement geocoding responses using nodejs/javascript?
我是谷歌地图api的新手。我正在尝试实现谷歌地图地理编码api
谷歌开发者上的地理编码API
exports.FindByKeyWord = function (req, res, next) {
var API_KEY = "SOMEDATA";
var BASE_URL = "https://maps.googleapis.com/maps/api/geocode/json?address=";
var address = "1600 Amphitheatre Parkway, Mountain View, CA";
var url = BASE_URL + address + "&key=" + API_KEY;
var map = new google.maps.Map();
var geocoder = new google.maps.Geocoder();
geocoder.geocode(url, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
res.json(marker);
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
};
我想响应json格式,但是我的函数抛出了一个错误
谷歌没有定义
有人能帮忙吗?
我认为您混淆了地理编码REST API和客户端JavaScript API。您在这里使用的是后者,但它是在浏览器中运行的,而不是在服务器上运行的,因此您会出现错误。
在这种情况下,使用RESTneneneba API非常简单——您所要做的就是对示例代码中已经创建的URL发出HTTP请求,然后将结果传递给服务器的响应。我建议使用像Request或SuperAgent这样的库来简化这一过程。
下面是一个(未经测试的)示例,使用Request:
// npm install request --save
var request = require("request");
exports.FindByKeyWord = function (req, res, next) {
var API_KEY = "SOMEDATA";
var BASE_URL = "https://maps.googleapis.com/maps/api/geocode/json?address=";
var address = "1600 Amphitheatre Parkway, Mountain View, CA";
var url = BASE_URL + address + "&key=" + API_KEY;
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
res.json(body);
}
else {
// The request failed, handle it
}
});
};
实际上,您的服务器充当了用户和Google API之间的中间人-这真的很方便,因为这意味着您可以在请求被发送到地理编码之前修改请求,并允许您做缓存结果之类的事情(在REST API上,您每天只能获得2500个免费请求,因此如果您希望获得非微不足道的流量,这一点非常重要!)。
相关文章:
- 如何将getJson的响应保存在全局变量中
- 如何使用nodejs/javascript实现地理编码响应
- 获取 JSON 编码响应中的数组键
- 在JavaScript节点环境中将Gzip内容编码响应转换为JSON数据
- 如何在 node.js 中将 HTTP 响应正文编码为 UTF-8
- PHP base64 编码的响应在 Javascript 中无法正确解码
- 我们能否让谷歌地图Javascript地理编码API v3在响应中返回自定义标识符
- 为什么 AngularJS 指令适用于硬编码值,但使用 http 请求/响应失败
- Node.js没有对HTTP响应标头使用ISO-8859-1编码
- 需要对JSON响应进行编码/解码,以便将其传递到另一个网页
- 有没有一种方法可以在调用诺基亚反向地理编码api时将响应和查询关联起来
- Node.js/Express-如何设置响应字符编码
- Ajax请求没有使用编码器的响应
- 在HTML中使用返回的JSON编码AJAX PHP响应<作为值
- node.js:如何以自定义格式获取http和解码/编码响应
- 如何强制 Node 的请求模块不对响应进行编码
- Javascript没有响应编码器
- 从谷歌地图API输出谷歌地理编码响应
- 如何编码整个html响应数据,然后通过JS解码它
- Node.js对响应的奇怪编码