【问题标题】:Add automatically Point of interest自动添加兴趣点
【发布时间】:2018-01-18 11:39:31
【问题描述】:

我目前正在处理一个项目,我想自动添加有关公司或专业人士的信息。我知道有一个 Waze API(由 Google 托管),但它们不提供添加或修改地图信息的可能性。有一种“UI方式”可以用map editor修改地图信息。如果有人有一个棘手的解决方案......我会接受!

【问题讨论】:

    标签: api gps waze


    【解决方案1】:

    这是可能的,但并不容易。

    您可以模仿网络浏览器发出的调用,以便在 Waze 地图编辑器中添加地点(使用浏览器的网络监视器查看发出的请求)。基本上,您需要加载索引页面以检索会话令牌 cookie,使用该令牌和您的登录凭据启动会话,然后在编辑器中保存编辑时发送您发送的数据(它在这个请求中您将调整要添加的位置以及要添加的位置)。您需要注意的主要事项是,对于每个请求,cookie 都会使用新的 CSRF 令牌进行更新。

    登录后,以下 URL 可以接收 HTTP POST 请求:https://www.waze.com/row-Descartes/app/Features?language=en,例如带有以下数据:

    {
      'actions': {
        'name': 'CompositeAction',
        '_subActions': [
          {
            'name': 'AddLandmark',
            '_subActions': [
              {
                '_objectType': 'venue',
                'action': 'ADD',
                'attributes': {
                  'geometry': {
                    'type': 'Point',
                    'coordinates': [
                      ??.????,
                      ??.????
                    ]
                  },
                  'categories': [
                    'OTHER'
                  ],
                  'name': '',
                  'description': '',
                  'rank': 0,
                  'lockRank': 0,
                  'url': null,
                  'phone': null,
                  'brand': null,
                  'residential': false,
                  'openingHours': [
                  ],
                  'categoryAttributes': {
                  },
                  'services': [
                  ],
                  'entryExitPoints': [
                  ],
                  'images': [
                  ],
                  'venueUpdateRequests': [
                  ],
                  'aliases': [
                  ],
                  'approved': true,
                  'externalProviderIDs': [
                  ],
                  'adLocked': false,
                  'permissions': 2147483647,
                  'streetID': ????,
                  'id': - 100
                }
              }
            ]
          },
          {
            '_objectType': 'venue',
            'action': 'UPDATE',
            'attributes': {
              'name': 'Test',
              'id': - 100
            }
          },
          {
            '_objectType': 'venue',
            'action': 'UPDATE',
            'attributes': {
              'description': 'To remove',
              'id': - 100
            }
          }
        ]
      }
    }
    

    如您所见,您需要填写坐标(我假设您将拥有)和其他各种字段。最好您可以指定该地点所在的确切地址,但这需要您检索附近街道的 ID。如果您不想遇到麻烦,也可以省略 streetID 字段。我已经测试过了,效果很好。

    此外,在 WME 中,此更改分为几个单独的操作(“复合”操作)。您可以将所有数据放在第一个操作中,然后删除两个更新操作。

    不久前,我在 Java 中制作了类似的东西,以便在 Waze Map Editor 中收听聊天。部分日志记录在那里完美无缺,因此可以顺利完成。

    2018-03-14 更新: 至于在 Waze 中添加/编辑地点的官方方式,如果您可以被认可为关联的公民合作伙伴:可以向 Waze 提供包含地点列表的提要。更多信息请访问Waze Partners Help > Connected Citizens > Parking, gas, snow plows and other feeds

    【讨论】:

    • 感谢您的回复,我会尝试的,但是这是否被 Waze 以“合法”的方式接受。事实上,如果我开发了一个可以更新您 Waze 状态的公共应用程序,那么您的逆向工程解决方案是否合法供公众使用?
    • 恐怕这是我无法为他们回答的问题。但我怀疑他们不会介意,只要数据是正确的,并且您没有试图绕过自动化的任何限制。
    • 你写的,因为有 CSRF 令牌,什么都没有被绕过。感谢您的帮助@Glodenox!
    • 我向 Waze 发送了一封电子邮件,他们提供了与大公司合作的工具,但您需要证明您的产品/软件
    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 2021-08-17
    • 1970-01-01
    • 2012-02-04
    • 2012-04-25
    • 1970-01-01
    • 2018-04-30
    • 2016-08-16
    相关资源
    最近更新 更多