本文介绍了在谷歌的距离和行驶时间地图API版本的android 2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使一个应用程序来显示的旅行时间和距离,以及路径到用户的位置到目标位置的位置。

I want to make an application to display travel time and distance as well as the path to the location of the user's location to the destination location.

下面是我的TampilkanMap类:

Here is my TampilkanMap class:

public class TampilkanMap extends FragmentActivity {
    GoogleMap googleMap;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map);

        SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);

        googleMap = fm.getMap();

        // Enabling MyLocation Layer of Google Map
        googleMap.setMyLocationEnabled(true);
        // lokasi wisata
        Marker GunungButtuKabombong = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-3.568419, 119.777141)).title("Enrekang")
                .snippet("Gunung Buttu kabobong"));
        Marker HutanMalino = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-5.296776, 119.740562)).title("Gowa")
                .snippet("Hutan Malino"));
        Marker SombaOpu = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-5.191144, 119.407899)).title("Makassar")
                .snippet("Benteng Somba Opu"));
        Marker Londa = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-2.968156, 119.900479)).title("Rantepao")
                .snippet("Londa"));
        Marker Jompie = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-4.005563, 119.634331)).title("Parepare")
                .snippet("Hutan Jompie"));
        Marker Lumpue = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-4.057233, 119.622411)).title("Parepare")
                .snippet("Pantai Lumpue"));
        Marker Bira = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-5.550204, 120.206166)).title("Bulukumba")
                .snippet("Pantai Tanjung Bira"));
        Marker Losari = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-5.133219, 119.41662)).title("Makassar")
                .snippet("Pantai Losari"));
        Marker Bantimurung = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-5.006130, 119.650970)).title("Maros")
                .snippet("Air Terjun Bantimurung"));
        Marker Kelelawar = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-4.349835, 119.927759)).title("Soppeng")
                .snippet("Kelelawar"));
        Marker DanauTempe = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-4.110587, 119.953579)).title("Wajo")
                .snippet("Danau Tempe"));
        Marker FortRotterdam = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(-5.134148, 119.405276)).title("Makassar")
                .snippet("Benteng Fort Rotterdam"));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.opt_menu, menu);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
        case R.id.satelit:
            googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
            return true;

        case R.id.street:
            googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            return true;

        default:
            return super.onOptionsItemSelected(item);
        }
    }
}

我想打一个路径,如果用户从我的位置倒是标记,我怎么做呢?

I want to make a path if the user touches the marker from my location, how do I make it?

推荐答案

这是怎么即时通讯做它:我听说它只能在美国那只是我听到:步行孤单,开车和骑自行车,在那里也Theres分享到Facebook和方法堆栈地图覆盖您的欢迎使用它,我觉得有些进口是unnecesarry,但我还没有来得及删除它们,我也知道你的新,他们会踢你,如果你不显示研究努力使您的问题较少含糊

this is how im doing it: I heard it only works in USA thats just what i heard: theres by foot, by car, and by bike, in there theres also share to facebook and methods to stack your map overlays your welcome to use it, i think some of the imports are unnecesarry but i havent had time to remove them, also i know your new they will kick you out if you dont show research effort and make your question less vague

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import android.app.AlertDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.util.Log;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

public class OverlayPoints extends ItemizedOverlay<OverlayItem>
{

private ArrayList<Drawable> mImage = new ArrayList<Drawable>();
 private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
 private ArrayList<File> filepic = new ArrayList<File>();

 private Context mContext;
 private boolean active;
 private boolean touch = false;


public OverlayPoints(Drawable defaultMarker, Context context)
{
    super(boundCenterBottom(defaultMarker));
     mContext = context;
     active = false;

    // TODO Auto-generated constructor stub
}

 public void addOverlay(OverlayItem overlay, Drawable image,File pic)
 {
     active = true;

     filepic.add(pic);
 mOverlays.add(overlay);
 mImage.add(image);
 populate();

 }

@Override
protected OverlayItem createItem(int arg0)
{
    return mOverlays.get(arg0);
    // TODO Auto-generated method stub

}
public void delete()
{

    mImage = new ArrayList<Drawable>();
    mOverlays = new ArrayList<OverlayItem>();
}

@Override
public int size() {
    // TODO Auto-generated method stub
     return mOverlays.size();
}
 protected boolean onTap(int index)
 {
 final OverlayItem item = mOverlays.get(index);
 final File file = filepic.get(index);
 AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
 dialog.setIcon(mImage.get(index));
 dialog.setTitle(item.getTitle());
 dialog.setMessage(item.getSnippet());
 dialog.setNegativeButton("Dismiss", new OnClickListener(){

    @Override
    public void onClick(DialogInterface arg0, int arg1) {
        // TODO Auto-generated method stub

    }

 });
 dialog.setNeutralButton("Set Course", new OnClickListener(){

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        GeoPoint point = item.getPoint();
        final double lat = (double)point.getLatitudeE6()/ 1E6;
        final double lon = (double)point.getLongitudeE6()/ 1E6;

        AlertDialog.Builder course = new AlertDialog.Builder(mContext);
        course.setNegativeButton("On Foot", new OnClickListener(){


            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                // TODO Auto-generated method stub
                Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("google.navigation:ll=%s,%s%s", lat, lon, "&mode=w")));
                mContext.startActivity(i);
            }

        });

        course.setNeutralButton("By Car", new OnClickListener(){

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("google.navigation:ll=%s,%s%s", lat, lon, "&mode=d")));
                mContext.startActivity(i);
            }

        });
        course.setPositiveButton("On Bike", new OnClickListener(){

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("google.navigation:ll=%s,%s%s", lat, lon, "&mode=b")));
                mContext.startActivity(i);
            }

        });
    course.show();
    }

 });
 dialog.setPositiveButton("Share", new OnClickListener(){

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        Uri uri = Uri.fromFile(file);
        Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);

        shareIntent.setType("image/png");
        shareIntent.putExtra(android.content.Intent.EXTRA_STREAM,
                        uri); //Share the image on Facebook
        PackageManager pm = mContext.getApplicationContext().getPackageManager();
        List<ResolveInfo> activityList = pm.queryIntentActivities(
                            shareIntent, 0);
        for (final ResolveInfo app : activityList) {
            if ((app.activityInfo.name).contains("facebook")) {
                final ActivityInfo activity = app.activityInfo;
                final ComponentName name = new ComponentName(
                            activity.applicationInfo.packageName,
                            activity.name);
                shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                shareIntent.setComponent(name);
                mContext.startActivity(shareIntent);
                break;
                    }
                }
    }

 });
 if(touch)
     dialog.show();
 return true;
 }
 public boolean isused()
 {
     return active;
 }
 public void showlogfalse(){
     touch = false;
 }
 public void showlogtrue(){
     touch = true;
 }

}

这篇关于在谷歌的距离和行驶时间地图API版本的android 2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 08:50
查看更多