2013-07-11 1 views
-2

После полного дня провождения, я нашел решение этого вопроса:Как показать маршрут на ВСТРОЕННОЙ карте в Android Программном способом

Как маршрут на ВСТРОЕННОМ MAP от одного текущего места в другое место, чтобы показать с помощью долготы/широты или используя адрес?

Может быть, это полезно для вас.

ответ

0

Создать файл макета для кнопки:

layout.xml

<Button 
    android:id="@+id/showMap" 
    android:layout_width="@dimen/visit_button_width" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="25dp" 
    android:background="@drawable/login_button_selector" 
    android:text="@string/title_show_map" 
    android:textColor="@color/white" 
    android:textSize="@dimen/button_text_size" /> 

OnClick событие кнопки:

((Button)findViewById(R.id.showMap)).setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

     /* Check Internet Connection */ 
     if(InternetConnection.checkConnection(context)) 
     { 
      /** PROCESS for Get Longitude and Latitude **/ 
      locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 

      // getting GPS status 
      isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
      Log.d("msg", "GPS:"+isGPSEnabled); 

      // check if GPS enabled  
      if(isGPSEnabled){ 
       Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

       if(location != null) 
       { 
        longitude = String.valueOf(location.getLongitude()); 
        latitude = String.valueOf(location.getLatitude()); 
       } 

       //Add your Full Address Here 
       String fullAddress = pref.getString("fulladdress", ""); 
       Log.d("msg", ""+fullAddress); 

       Intent intent = new Intent(Intent.ACTION_VIEW, 
         Uri.parse("http://maps.google.com/maps?f=d&daddr="+fullAddress)); 
       intent.setComponent(new ComponentName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity")); 
       startActivity(intent); 

      }else{ 
       showAlertforGPS(); 
      } 
     }else 
     { 
      AlertDialog.Builder alertDialog = new AlertDialog.Builder(VisitAcitivity.this); 

      // Setting Dialog Title 
      alertDialog.setTitle("Internet Settings"); 

      // Setting Dialog Message 
      alertDialog.setMessage("Internet Connection Not Available, Do you want to Connect?"); 

      // On pressing Settings button 
      alertDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog,int which) { 
        startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
       } 
      }); 

      // on pressing cancel button 
      alertDialog.setNegativeButton("No", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.cancel(); 
       } 
      }); 

      // Showing Alert Message 
      alertDialog.show(); 
     } 
    } 
}); 

В AndroidManifest.xml поставил это разрешение:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

Вы можете задать любой вопрос, если ...

+0

также использовать http://stackoverflow.com/a/6205922/1318946 –

+0

, но есть способ, чтобы открыть выход собственной реализации карты (пользовательские карты макет) с маршрутизацией уже есть? – rxlky