【问题标题】:Meteor CityForks Demo AssistanceMeteor CityForks 演示协助
【发布时间】:2015-07-25 07:22:25
【问题描述】:

参考 Josh Owens 的 Cityforks 演示,我已经让获取当前位置正常工作,并且我的应用程序没有崩溃,但是当我检查 Robomongo 时,地点集合没有填充数据库。

我已经完全复制了代码:

Places = new Mongo.Collection('places');

Meteor.methods({
    'fetchNearbyLocations': function(coords) {
         if (Meteor.isServer) {
             results = HTTP.get("https://maps.googleapis.com/maps/api/place/nearbysearch/json? location=" + coords.latitude + "," + coords.longitude +  "&radius=500&types=food&key=AIzaSyCtfoCAldCEf8hXUlkVUd4UljqKR6W_aF4")
             console.log(results)
             _(results.data.results).each(function(loc) {
                 _.extend(loc, {loc: {type: "Point", coordinates:   [loc.geometry.location.lng, loc.geometry.location.lat]}})
                 Places.upsert({id: loc.id}, {$set: loc})
             });
         }
     }
 });

关于我当然会更改的 API 密钥,应该使用服务器应用程序的密钥(具有 IP 锁定)还是浏览器应用程序的密钥(具有引用者)?

我确实删除了自动发布,不确定这是否会有所不同?

另外,是否必须在项目中的某个 JS 文件中添加类似下面的内容?

<script type="text/javascript" src="http://maps.google.com/maps/api/js?           sensor=false">   </script>

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript mongodb google-maps meteor


    【解决方案1】:

    关于 API 密钥

    它是浏览器应用程序的关键。 https://developers.google.com/maps/documentation/javascript/tutorial#api_key

    在 Robomongo 中查找收藏

    如果您只是按照 Josh 的代码进行操作,该集合应该会显示在 Robomongo 中。 你在本地主机上运行吗? 例如,如果您在端口 3000 上,那么您的数据库在端口 3001 上,您必须将其输入到新的 Robomongo 连接中。

    然后查看您的新连接>Meteor>Collections>,您应该会看到places。单击它,您应该会看到 db.places.find 的 50 个条目(或者您选择在代码中返回的许多位置)。

    要检查其他情况,只需进入浏览器的控制台(在 OS X 上的 Chrome 中为option+command+j)并输入 Places.find().fetch(),您应该会返回 50 个对象。

    或者在终端中,在您的应用程序目录中输入 meteor mongo 以进入 mongo shell,然后输入 db.places.find().pretty() 以查看您的集合是否正确填充。

    如果这些工作,那么我认为这意味着你只是没有正确看待 Robomongo,但你会发现它真的很容易。

    添加脚本

    对谷歌地图的 http 调用已经在 fetchNearbyLocations 方法中,所以据我所知,这已经足够了。 Google 地图不再需要 sensor 参数。 source

    希望有帮助!

    【讨论】:

    • 嗨,我做了一个精确的 git clone 并使用了建议的密钥,它现在正在我身边工作。感谢您的帮助。例如,如果我想返回某个范围内的 movie_theaters 或另一个范围内的 bar,我将如何创建其他以相同方式填充数据库的集合?我不一定需要结果显示在地图上。谢谢。
    • 您好,查询进入 api 键。查看密钥的后半部分,您会看到它显示“food”:“&radius=500&types=food&key=AIzaSyCtfoCAldCEf8hXUlkVUd4UljqKR6W_aF4”
    • 再次感谢您的反馈。我现在一直收到这个错误:statusCode:200,“这个 API 项目没有被授权使用这个 API。请确保这个 API 在 API 的控制台中被激活
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2016-10-20
    • 2010-10-23
    • 1970-01-01
    相关资源
    最近更新 更多