2013年10月8日星期二

Android中Google地图路径导航,使用mapfragment地图上画出线路(google map api v2)详解 - 沦落凡间

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
Android中Google地图路径导航,使用mapfragment地图上画出线路(google map api v2)详解 - 沦落凡间  阅读原文»

在这篇里我们只聊怎么在android中google map api v2地图上画出路径导航,用mapfragment而不是mapview,至于怎么去申请key,manifest.xml中加入的权限,系统中需要的google play services等另行查看资料。

参考:https://developers.google.com/maps/documentation/android/intro

首先我们在Activity上加载一个GoogleMap,然后再在Map上画上标记和路径导航。

先上主要代码:

1 public class DirectionActivity extends FragmentActivity {
2 private Button btnBack;
3 private SupportMapFragment mapFragment;
4 private GoogleMap map;
5 private LocationManager locationManager;
6 private Location location;
7 private List<LatLng> latlngs = new ArrayList<LatLng>();
8 private double lat;
9 private double lng;
10 private String address;
11 private double locLat;
12 private double locLng;
13 private LatLng locLatLng;
14
15
16 @Override
17 protected void onCreate(Bundle arg0) {
18 super.onCreate(arg0);
19 init();
20 findViewById();
21 setListenter();
22 processLogic();
23 getDirection();
24 }
25
26 /**
27 * Get the direction
28 */
29 private void getDirection() {
30 FoundRoadRouteTask task = new FoundRoadRouteTask(onFoundRoadRouteTaskListener);
31 task.execute(new String[] {locLat+","+locLng, lat + "," + lng });
32 }
33
34 /**
35 * Draw route information
36 */
37 private void drawRoute() {
38 try {
39 // Draw route info
40 map.addMarker(new MarkerOptions().position(latlngs.get(0)).title(address).visible(true));
41 PolylineOptions lineOptions = new PolylineOptions();
42 lineOptions.width(5);
43 for (int i = 0; i < latlngs.size() - 1; i++) {
44 lineOptions.add(latlngs.get(i));
45 }
46 map.addPolyline(lineOptions);
47 } catch (Exception e) {
48
49 }
50 }
51
52 private OnFounedRoadRouteListener onFoundRoadRouteTaskListener = new OnFounedRoadRouteListener() {
53
54 @SuppressWarnings("unchecked")
55 @Override
56 public void found(Object obj) {
57 if (obj != null) {
58 List<LatLng> tempLats = (List<LatLng>) obj;
59 latlngs.addAll(tempLats);
60 }
61 drawRoute();
62 }
63 };
64
65 private void getLatLng() {
66 try {
67 Intent latlngIntent = getIntent();
68 Bundle b = latlngIntent.getBundleExtra("latlng");
69 lat = b.getDouble("lat");
70 lng = b.getDouble("lng");
菜鸟学Windows Phone 8开发――创建第一个应用程序 - 多了特  阅读原文»

本系列文章来源MSDN的 面向完全新手的 Windows Phone 8 开发 主要是想通过翻译本系列文章来巩固下基础知识顺带学习下英语和练习下自己的毅力(因为打算每天翻译一篇,但是发现翻译这篇花费了好多时间,所以可能后面可能会两天翻译一篇,希望多余大家交流)
源代码:http://aka.ms/absbeginnerdevwp8
现在我们已经安装好了开发工具,我们能创建我们的第一个wp8应用。
以下是我们的计划:
1、我们将创建一个新的Windows Phone应用项目;
2、我们做一些简单的编辑,例如删除注释并且添加一个MediaControl和一个Button并添加style(style it up);
3、写一个Button的Click事件处理;
4、在Button的Click事件里面我们将播放一段wav文件。
第一步:创建一个新的Windows Phone项目,命名为PetSounds
我希望你已经在channel9上看其他菜鸟系列文章的时候已经掌握了新建项目、文件等技巧。接下来我不回花时间解释这些,如果有不熟悉的你可以去复习C# for Absolute Beginners系列。
1、文件
2、新建
3、项目
新建项目对话框:
1、确保你是在Windows Phone项目模版开发中;
2、选择Windows Phone应用模版
3、重命名为:PetSounds
4、确保项目解决方案的名字也是PetSounds
5、点击OK

没有评论:

发表评论