【发布时间】:2014-07-07 20:00:42
【问题描述】:
我正在使用 Google Maps v2 制作一个简单的应用程序。我想要的只是在两点之间绘制一条驱动路线。我放了折线,但它只是画直线。该线应跟踪道路。我只是不知道该怎么做。提前致谢
这段代码只是获取当前位置,我只是设置了另一个经纬度进行测试。
这是我的代码
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.widget.Toast;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polyline;
public class MainActivity extends Activity {
GoogleMap googleMap;
GPSTracker gps;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//create class GPS enabled
gps = new GPSTracker(MainActivity.this);
//check if GPS enabled
if(gps.canGetLocation()){
try{
initializeMap();
} catch (Exception e) {
e.printStackTrace();
}
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
double latitude2 = 13.768000;
double longitude2 = 122.9768100;
GoogleMap mMap;
MarkerOptions Marker2 = new MarkerOptions().position(new LatLng(latitude2, longitude2)).title("2222");
googleMap.addMarker(Marker2);
Marker2.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE));
//create Marker
MarkerOptions Marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("iHatid Maps");
//add marker
googleMap.addMarker(Marker);
// color of marker
Marker.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
//camera motion location
CameraPosition cameraPosition = CameraPosition.builder().target(new LatLng(latitude, longitude)).zoom(20).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
} else {
//can't get location
//GPS or Network is not enabled
//ask user to enable GPS/Network in settings
gps.showSettingsAlert();
}
}
private void initializeMap() {
if(googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
if(googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT).show();
}
}
}
@Override
protected void onResume() {
super.onResume();
initializeMap();
}
}
【问题讨论】:
-
你需要使用一些谷歌地图中没有的路由API。您可以使用 Google Directions API developers.google.com/maps/documentation/directions
-
@tyczj - 你知道一些适合像我这样的初学者的示例代码或最佳教程吗?
-
我为您创建了一个库,您可以在这里找到它github.com/tyczj/MapNavigator,但我建议您自己尝试一下,这样您就知道发生了什么
-
@tyczj - 感谢您的图书馆,但作为初学者,我觉得很难理解,因为没有评论。
-
不评论是什么意思?
标签: android google-maps routes google-polyline