我正在构建一个meteor.js应用程序,在将地址插入到mongodb集合中之前或之后,需要在其中将地址地理编码为坐标。这应该在服务器端发生。我考虑过使用matb33:collection-hooks。对于地理编码,我选择使用node-geocoder

我已经尝试了以下方法,但是它只返回未定义的。我该如何解决?

import NodeGeocoder from "node-geocoder";
import Offers from "../Offers";

Offers.after.insert(((userId, offer) => {
  const geo = NodeGeocoder({
    provider: "google",
    httpAdapter: "https",
    apiKey: "APIKEY",
  });
  const result = geo.geocode(offer.address.street + offer.address.zip + offer.address.city + offer.address.country);

  console.log(result[0]);

  Offers.update({
    _id: offer._id,
  }, {
    $set: {
      "address.lat": result[0].latitude,
      "address.lon": result[0].longitude,
    },
  }, {
    validate: false,
  });
}));

最佳答案

offer.address.street + offer.address.zip + offer.address.city + offer.address.country是什么样的?我猜您将需要在它们之间使用空格。

关于javascript - 在meteor.js中对地址服务器端进行地址解析,然后在数据库中插入坐标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47554708/

10-12 19:27