自动添加兴趣点
Add automatically Point of interest
我目前正在做一个项目,我想自动添加有关公司或专业人士的信息。我知道有 Waze API(由 Google 主办),但他们不提供添加或修改地图信息的可能性。有一个"UI way"修改地图信息用map editor。如果有人有一个棘手的解决方案......我会接受它!
有可能,但并不容易。
您可以模仿您的网络浏览器发出的调用,以便在 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 中,此更改分为几个单独的操作('composite' 操作)。您可以只将所有数据放在第一个操作中并删除两个更新操作。
我不久前在 Java 中做了类似的事情,以收听 Waze 地图编辑器中的聊天。登录部分在那里完美无缺,因此可以完成。
2018-03-14更新:
至于在 Waze 中 adding/editing 个地方的官方方式,如果您可以被认可为连接公民合作伙伴:可以向 Waze 提供带有地点列表的提要。可以在 Waze Partners Help > Connected Citizens > Parking, gas, snow plows and other feeds
找到更多信息
我目前正在做一个项目,我想自动添加有关公司或专业人士的信息。我知道有 Waze API(由 Google 主办),但他们不提供添加或修改地图信息的可能性。有一个"UI way"修改地图信息用map editor。如果有人有一个棘手的解决方案......我会接受它!
有可能,但并不容易。
您可以模仿您的网络浏览器发出的调用,以便在 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 中,此更改分为几个单独的操作('composite' 操作)。您可以只将所有数据放在第一个操作中并删除两个更新操作。
我不久前在 Java 中做了类似的事情,以收听 Waze 地图编辑器中的聊天。登录部分在那里完美无缺,因此可以完成。
2018-03-14更新: 至于在 Waze 中 adding/editing 个地方的官方方式,如果您可以被认可为连接公民合作伙伴:可以向 Waze 提供带有地点列表的提要。可以在 Waze Partners Help > Connected Citizens > Parking, gas, snow plows and other feeds
找到更多信息