我在Android中集成了谷歌地图。我正在使用GPS获取当前位置。 on Onlocationchanged我正在更新当前位置。
我怀疑是我在Google地图用户界面上。我想从我当前的位置走路或开车那个时间作为起点,我想开始动态地绘制地图上的线。
我在网上搜索了很长时间,但我没有得到任何解决方案。这是我的代码请任何人帮我解决这个问题。
private void initalizeMap()
{
// Google Play Services are available
// Getting GoogleMap object from the fragment
googleMap = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap();
if(gps.canGetLocation())
{
double latitude = Double.valueOf(Helper.loadSavedPreferences(getActivity(), NameConversion.LATITUDE));
double longtitude = Double.valueOf(Helper.loadSavedPreferences(getActivity(), NameConversion.LONGITUDE));
Log.d("getting gps value", ""+ latitude);
Log.d("getting gps Long", ""+ longtitude);
// Creating a LatLng object for the current location
LatLng latLng = new LatLng(latitude, longtitude);
// create marker
marker = new MarkerOptions().position(latLng).title("You are here!");
// Changing marker icon
// set yours icon here
marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_green_point));
// Showing the current location in Google Map
googleMap.setTrafficEnabled(true);
googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
// Zoom in the Google Map
googleMap.animateCamera(CameraUpdateFactory.zoomTo(25));
googleMap.addMarker(marker);
}else{
Toast.makeText(getActivity(), "failed To get the location", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onLocationChanged(Location location) {
double latitude = gps.getLatitude();
// Getting longitude of the current location
double longitude = gps.getLongitude();
// Creating a LatLng object for the current location
Log.d("latitude map Class", "latitude: " + gps.getLatitude());
Log.d("longitude Map CLass", "longitude: " + gps.getLongitude());
LatLng latLng = new LatLng(latitude, longitude);
// create marker
MarkerOptions marker = new MarkerOptions().position(latLng).title("You are here!");
// Changing marker icon
// set yours icon here
marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_green_point));
// Showing the current location in Google Map
googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
// Zoom in the Google Map
googleMap.animateCamera(CameraUpdateFactory.zoomTo(25));
}
我尝试了以下链接[1 st lnikn second link
答案 0 :(得分:3)
为了在Google地图上获取驾车或步行时间,您必须使用Google提供的Direction API。对Direction的API调用将是这样的:
http://maps.googleapis.com/maps/api/directions/json?origin=Chicago,IL&destination=Los%20Angeles,CA&sensor=false
你可以在一个类中嵌入你使用AsyncTask进行http调用的类,如下所示:
GenericUrl url = new GenericUrl("http://maps.googleapis.com/maps/api/directions/json");
url.put("origin", origin);
url.put("destination", destination);
url.put("sensor",false);
请按照此tutorial或this获取方向API(包括地图上的驾驶,公交,步行和骑车方向。)
希望这会有所帮助!!!