`

解析Google Map Routes

阅读更多
为了获得从A点到B点的路劲,经常会使用Google提供的API,例如
[url]
http://maps.googleapis.com/maps/api/directions/json?origin=40.7144,-74.0060&destination=47.6063,-122.3204&sensor=false
[/url]
从返回的结果上,大致可以了解应该怎么走,但是如果希望在地图上把路径描绘出来,就需要把“overview_polyline”节点里的内容进行解密才可以
下面就是用java进行解密的方法
String path = "[加密过的路劲字符串]";

int index = 0, len = path.length();
len = path.length();
int lat = 0, lng = 0;
while (index < len) {
	int b, shift = 0, result = 0;
	do {
		b = path.charAt(index++) - 63;
		result |= (b & 0x1f) << shift;
		shift += 5;
	} while (b >= 0x20);
	int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
	lat += dlat;
	shift = 0;
	result = 0;
	do {
		b = path.charAt(index++) - 63;
		result |= (b & 0x1f) << shift;
		shift += 5;
	} while (b >= 0x20);
	int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
	lng += dlng;
	System.out.println(String.format("%f, %f", (double) lat / 1E5, (double) lng / 1E5));
}
分享到:
评论

相关推荐

    Android Google地图定位添加标记DOME

    googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); googleMap.getUiSettings().setZoomControlsEnabled(true); } // ... } ``` 为了在地图上添加标记,我们需要使用`LatLng`对象表示地理位置,然后调用`...

    Node.js-GoogleMapsAPIWeb服务的一个Node.js客户端库

    这个库使得开发人员可以利用Google Maps的丰富功能,如地理编码、路线规划、地点搜索等,而无需直接处理复杂的HTTP请求和JSON解析。 一、Node.js环境下的Google Maps API客户端库介绍 在Node.js中,开发人员可以...

    C# 使用 Google's 地图 API

    mapControl.MapProvider = GMapProviders.GoogleMap; mapControl.Position = new PointLatLng(37.422, -122.1419); mapControl.Zoom = 13; this.Controls.Add(mapControl); ``` 5. **使用标记和路径** GMap.NET...

    Android代码-在地图上显示两点间路径源码.zip

    public void onMapReady(GoogleMap googleMap) { // 在这里可以操作GoogleMap对象,如设置地图类型、缩放级别等 } }); ``` 要显示两点间的路径,我们需要两个坐标点(LatLng对象)。获取坐标点的方式有很多,...

    c#对地图的操作

    常见的地图API如Google Maps API、高德地图API或百度地图API等,可以提供这些数据。C#可以通过HTTP请求与这些API交互,获取JSON或XML格式的地理信息,包括公交线路、站点和坐标等。需要注意的是,使用这些API通常...

    Asp.Net中地图搜素 坐标点之间的距离

    常见的地图API有Google Maps API、Bing Maps API和高德地图API等。这里我们以高德地图API为例,因为它提供了丰富的功能和良好的文档支持。首先在项目中引入高德地图JavaScript库,并在页面中创建一个div元素作为地图...

    gpxviewer:在谷歌地图上显示 GPX 文件的简单网页

    - `google.maps.Map`:创建地图实例。 - `google.maps.Marker`:用于在地图上添加图标标记。 - `google.maps.Polyline`:绘制多边形线条,如轨迹路径。 - `google.maps.Geocoder`:进行地理编码,将地址转换为经纬度...

    基于Android的公交查询系统的设计与实现.doc

    用户界面应简洁易用,数据获取需通过网络请求公交API,解析返回的JSON或XML数据,地图服务则利用Google Maps API展示公交线路和站点,路线规划算法如Dijkstra或A*算法用于计算最佳路径。 4. 实现与测试:开发完成后...

    gtfsmap:读取GTFS数据并映射所有相关的运输路线

    通过这个工具,用户可以快速地将GTFS数据映射到像Google Map Engine这样的平台,展示出公共交通网络的全貌。 Python作为强大的编程语言,有着丰富的库支持数据处理和地理信息系统(GIS)操作。在`gtfsmap`中,可能...

    Laravel开发-geoaddress

    `geocoder-php`库支持多种服务提供商,如Google Maps、OpenStreetMap等。我们可以选择一个或多个提供商,根据需求配置。在`config/services.php`中添加相应的API密钥(如果需要)。 然后,创建一个新的控制器,负责...

    play框架手册

    使用params map - 25 - 还可以从action方法签名实现转换 - 25 - 高级HTTP Java绑定 - 26 - 简单类型 - 26 - Date类型 - 26 - Calendar日历 - 27 - File - 27 - 支持类型的数组或集合 - 28 - POJO对象绑定 - 29 - JPA...

    tenor-search:Node.js中的基本GIF搜索

    Node.js基于Google的V8引擎,能够高效地执行JavaScript代码。它采用事件驱动、非阻塞I/O模型,这使得它在处理高并发请求时表现得非常出色。在“tenor-search”项目中,这种特性可能被用来优化GIF搜索的性能,确保...

    old-yaga:另一个地理应用程序

    3. API集成:可能与各种地理服务API(如Google Maps API、OpenStreetMap API)集成,获取更多地图信息和功能。 4. 实时更新:Node.js的非阻塞I/O模型非常适合处理实时数据流,例如,实时位置跟踪或天气更新。 5. ...

    API-busca-endereco:在节点上开发的项目,以便通过用户的邮政编码返回地址

    3. **API集成**: 为了获取邮政编码对应的地址,项目可能接入了第三方地理编码API,如OpenStreetMap Nominatim、Google Maps Geocoding API或其他类似服务。这些API可以将邮政编码转换为详细的地址信息。 4. **Yarn*...

    angular-ru-interview-questions:ВопросынасобеседованиипоAngular

    【Angular 框架面试问题解析】 Angular 是一个流行的前端开发框架,由 Google 主导,用于构建复杂的单页应用程序(SPA)。它基于 Model-View-ViewModel(MVVM)设计模式,提供了一整套工具和功能,使开发者能够高效...

Global site tag (gtag.js) - Google Analytics