سلام و عرض ادب من 2 روزه دارم روی یه سورس کار میکنم خوشبختانه ارور هاشو گرفتمو تونستم رانش کن اما جواب درستی به من نمیده واقعا دیگه خسته شدم موضوع وصل کردن 2 نقطه در گوگل مپ direction من API Key رو ساختم و تو مانیفست گذاشتم ترو خدا یه نگاهی بهش بندازید
لینک سورس رو اصلی رو براتون میزارم
https://github.com/akexorcist/Android-Go...ionLibraryimport android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import com.akexorcist.googledirection.DirectionCallback;
import com.akexorcist.googledirection.GoogleDirection;
import com.akexorcist.googledirection.constant.TransportMode;
import com.akexorcist.googledirection.model.Direction;
import com.akexorcist.googledirection.util.DirectionConverter;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import java.util.ArrayList;
public class SimpleDirectionActivity extends AppCompatActivity implements OnMapReadyCallback, View.OnClickListener, DirectionCallback {
private Button btnRequestDirection;
private GoogleMap googleMap;
private String serverKey = "AIzaSyDdlocE8J6qf2j_bf3AKrjSkpDCATALx4k";
private LatLng camera = new LatLng(37.782437, -122.4281893);
private LatLng origin = new LatLng(37.7849569, -122.4068855);
private LatLng destination = new LatLng(37.7814432, -122.4460177);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple_direction);
btnRequestDirection = (Button) findViewById(R.id.btn_request_direction);
btnRequestDirection.setOnClickListener(this);
((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
this.googleMap = googleMap;
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(camera, 13));
}
@Override
public void onClick(View v) {
int id = v.getId();
if (id == R.id.btn_request_direction) {
requestDirection();
}
}
public void requestDirection() {
Snackbar.make(btnRequestDirection, "Direction Requesting...", Snackbar.LENGTH_SHORT).show();
GoogleDirection.withServerKey(serverKey)
.from(origin)
.to(destination)
.transportMode(TransportMode.DRIVING)
.execute(this);
}
@Override
public void onDirectionSuccess(Direction direction, String rawBody) {
Snackbar.make(btnRequestDirection, "Success with status : " + direction.getStatus(), Snackbar.LENGTH_SHORT).show();
if (direction.isOK()) {
googleMap.addMarker(new MarkerOptions().position(origin));
googleMap.addMarker(new MarkerOptions().position(destination));
ArrayList<LatLng> directionPositionList = direction.getRouteList().get(0).getLegList().get(0).getDirectionPoint();
googleMap.addPolyline(DirectionConverter.createPolyline(this, directionPositionList, 5, Color.RED));
btnRequestDirection.setVisibility(View.GONE);
}
}
@Override
public void onDirectionFailure(Throwable t) {
Snackbar.make(btnRequestDirection, t.getMessage(), Snackbar.LENGTH_SHORT).show();
}
}
روید باکس...
ما را در سایت روید باکس دنبال می کنید
برچسب : نویسنده : کاوه محمدزادگان roid بازدید : 162 تاريخ : چهارشنبه 17 شهريور 1395 ساعت: 0:56