我想在地图上绘制与我通过Google Directions API获得的路线JSON相对应的路线:http://code.google.com/apis/maps/documentation/directions/
我已经想出如何从阶段字段中提取纬度和经度,但这并不能很好地遵循弯曲的道路.我认为我需要的是解码折线信息,我找到了关于如何编码折线的Googles说明:http://code.google.com/apis/maps/documentation/utilities/polylinealgorithm.html
我确实在这里找到了一些代码用于Android以及解码折线的Javascript,例如:
使用Google Directions API地图查看绘制路线 - 解码折线
但是对于Objective-C iPhone代码我找不到相同的内容,任何人都可以帮我这个吗?我敢肯定,如果必须的话,我可以自己做,但如果它已经可以在某个地方使用,那肯定能节省我一些时间...
编辑:这里的关键是能够逐个字符地解码base64编码.更具体地说,我在谷歌的JSON中得到了类似的东西,它使用base64编码进行编码:
... "overview_polyline" : {
"points" : "ydelDz~vpN_@NO@QEKWIYIIO?YCS@WFGBEBICCAE?G@y@RKBEBEBAD?HTpB@LALALCNEJEFSP_@LyDv@aB\\GBMB"
},
...
Run Code Online (Sandbox Code Playgroud)
注意:我应该提一下,这个问题是指Google Maps API v1,使用GMSPolyLine polyLineWithPath在v2中更容易实现,因为下面的许多答案都会告诉你(感谢@cdescours).
iphone json objective-c google-directions-api google-polyline
我想知道是否可以根据地图上绘制的路径更改标记方向.这是一个例子:

正如您所看到的那样,标记是一辆汽车(带前保险杠和尾灯).我想让汽车朝着路径方向前进(在这个例子中,汽车将向右转45度).
我正在使用DirectionsService绘制路径,我有一个随机数点.有时只有一个,有时10点.我在绘制路径之前添加标记.以下是我绘制路径的方法:
// Intialize the Path Array
var path = new google.maps.MVCArray();
// Intialise the Direction Service
var service = new google.maps.DirectionsService();
// Set the Path Stroke Color
var poly = new google.maps.Polyline({ map: gmap, strokeColor: '#dd0000' }); // #4986E7
// Draw the path for this vehicle
for (var i = 0; i < pathPoints.length; i++) {
if ((i + 1) < pathPoints.length) {
var src = pathPoints[i];
var des = pathPoints[i + 1];
path.push(src);
poly.setPath(path);
service.route({ …Run Code Online (Sandbox Code Playgroud) 我想使用谷歌方向API为一家公司开发路线规划软件,该公司在冬季处理除雪机,在夏季进行景观美化.客户要求之一是他能够计算至少30个(最好是更多)航点的航线.根据文档(引用如下),即使Google Maps API for Work客户每个请求仅限于23个航点.
使用Google Directions API需要遵守每天2,500个路线请求的查询限制.单个路线请求可在请求中包含最多8个中间路点.Google Maps API for Work客户每天最多可查询100,000个路线请求,每个请求最多允许23个路标.
有没有人意识到一种解决方法 - 任何方式 - 解决这个问题?
此外 - 是否可以使用免费API的变通方法?我听说首要账户相当昂贵.
谢谢!!渣
我试图在两个地方之间显示路线,我想使用Google Places API V3来实现两点之间的路线步骤.
在我使用旧版Google Maps API之前,以下请求会给出完美的结果:
http://maps.google.com/maps?f=d&hl=en&saddr=19.5217608,-99.2615823&daddr=19.531224,-99.248262&ie=UTF8&0&om=0&output=kml
Run Code Online (Sandbox Code Playgroud)
输出:

现在我尝试用New Google Maps API替换它,并且以下请求给出了错误的结果,在这两种情况下我使用相同的源和目标,但结果在Google Map上给出了不同的行为:
http://maps.googleapis.com/maps/api/directions/json?origin=19.5217608,-99.2615823&destination=19.531224,-99.248262&sensor=false
Run Code Online (Sandbox Code Playgroud)

我的问题是,新的Google Maps API在源和目标之间返回的步数较少,因此路线在Google地图上显示不完美.
请帮助解决新版Google Maps API v3的此问题.
提前致谢.
android google-maps routes google-maps-api-3 google-directions-api
如果您使用google.maps.DirectionsService()获取路线(例如:从Reims到巴黎).现在,我们如何获得可以在这条路线上/沿着这条路线找到的所有地方(比如搜索酒店,餐馆或加油站)(之后将添加到地图中作为标记与其信息以及路线).
经过谷歌搜索后,发现没什么用处.Google有关于此类查询的简短信息,请访问http://support.google.com/gmm/bin/answer.py?hl=zh-CN&answer=165392&topic=1650221&ctx=topic
任何帮助都非常感谢.
更新 已找到一些更类似的问题但不满意的问题或有答案:
当我浏览这个博客时,我对在Android上使用Directions API感到困惑.是否可以在地图上集成Directions API?为了更清楚,我正在开发一个应用程序,它将接受来自用户的输入,source以及destinations...采取这些输入我希望显示一个适当的地图,同时描绘了步行和驾驶方向.只是JSON parser (or XML)足以支持我的这个愿望,还有画布可以借鉴......或者我是否必须创建自己的API才能完成这项工作?
android google-maps google-directions-api google-maps-android-api-2
我正在实施Google 的 Directions API。我的应用程序支持minSdkVersion 23,java.time.Instant这里不支持。
是否有解决方案,或者我应该检查用户的版本并在支持该版本的情况下允许此功能?
DirectionsResult directionsResult = DirectionsApi.newRequest(geoApiContext)
.mode(TravelMode.DRIVING)
.origin(new com.google.maps.model.LatLng(mapFragment.getUserCoords().latitude, mapFragment.getUserCoords().longitude))
.destination(tabHandlerCommunication.destinationBarCoords)
.departureTime(Instant.now()) // <-- error here
.await();
Run Code Online (Sandbox Code Playgroud)
错误:
调用需要 API 级别 26(当前最小值为 23):java.time.Instant#now less... (Ctrl+F1) 检查信息:此检查扫描应用程序中的所有 Android API 调用并警告任何调用不适用于此应用程序针对的所有版本(根据清单中的最小 SDK 属性)。如果你真的想使用这个 API 并且不需要支持旧设备,只需在你的 build.gradle 或 AndroidManifest.xml 文件中设置 minSdkVersion 。如果您的代码有意访问较新的 API,并且您已确保(例如使用条件执行)此代码只会在受支持的平台上调用,那么您可以使用指定本地最小 SDK 的 @TargetApi 注释来注释您的类或方法申请,例如@TargetApi(11),以便此检查将 11 而不是清单文件的最低 SDK 作为所需的 API 级别。如果您有意在样式定义中设置 android: 属性,请确保将其放在 values-vNN 文件夹中,以避免在某些设备上遇到运行时冲突,其中制造商添加了自定义属性,而这些自定义属性的 id 与以后平台上的新属性发生冲突. 同样,您可以在 XML 文件中使用 tools:targetApi="11" 来指示元素只会在适当的上下文中膨胀。问题编号:NewApi 确保将其放在 values-vNN 文件夹中,以避免在某些设备上遇到运行时冲突,这些设备制造商添加了自定义属性,其 id 与更高平台上的新属性冲突。同样,您可以在 XML 文件中使用 tools:targetApi="11" 来指示元素只会在适当的上下文中膨胀。问题编号:NewApi …
我正在使用Google Direction API绘制2个地点A和B之间的路径路径.我能够这样做.现在,我需要检查一个地方C是否落在A和B的路径中.
这是我从代码生成的路径路径的快照.

这是相应的代码:
function initialize() {
var input = document.getElementById('searchTextFieldSource');
var input1 = document.getElementById('searchTextFieldDestination');
var autocomplete = new google.maps.places.Autocomplete(input);
var autocomplete1 = new google.maps.places.Autocomplete(input1);
google.maps.event.addListener(autocomplete1, 'place_changed', function () {
var place = autocomplete.getPlace();
document.getElementById('city1').value = place.name;
var place1Lat = place.geometry.location.lat();
var place1Lng = place.geometry.location.lng();
document.getElementById('cityLat1').value = place1Lat;
document.getElementById('cityLng1').value = place1Lng;
var obj = new Object();
obj.city =place.name;
obj.latitude = place.geometry.location.lat();
obj.longitude = place.geometry.location.lng();
locations.push(obj);
var place2 = autocomplete1.getPlace();
document.getElementById('city2').value = place2.name;
var place2Lat = place2.geometry.location.lat();
var place2Lng = …Run Code Online (Sandbox Code Playgroud) google-maps google-maps-api-3 google-directions-api google-places-api
我正在寻找使用Google和这里的答案,我发现的唯一相关帖子是:
Google Maps Android V2和Direction API
但那里没有答案.所以我已经提到了,但我会再说一遍.我正在寻找使用FragmentActivity和SupportMagFragment和LatLng对象而不使用MapView,MapActivtiy和GeoPoint的Google Map API v2的解决方案.
另外我没有使用Overlay对象,所以我无法在地图上绘制方向,是否有替代方案?
有没有办法做到这一点?
提前致谢.
android google-maps driving-directions google-directions-api
我想在我的谷歌地图上绘制两个标记之间的路线,我在我的Android应用程序中实现.我已经读过,这样做的方法是调用Directions API服务.使用限制表示您每天只能发出2500个请求,我对此感到困惑,此限制将适用于我的整个应用流量(所有用户将能够提出2500个请求)或申请单个移动设备(单个在单个设备上运行的app实例每天可以发出2500个请求.我发现了很多关于这个主题的问题,但没有官方回答.我感谢任何帮助谢谢.