Senin, 16 Januari 2017

Scrollview Detail

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#cccccc"
    android:gravity="right"
    tools:context=".MainActivity" >
   
<ScrollView
    android:layout_marginBottom="50dip"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#cccccc"
>

<TableLayout android:id="@+id/TableLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#fff">


    <ImageView
   android:id="@+id/myGambar"
   android:layout_centerHorizontal="true"
   android:src="@drawable/logo"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   />



<TableRow android:id="@+id/TableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
      <TextView android:text="Nama Tanaman" />
      <TextView android:id="@+id/detailNamaTanaman" />
</TableRow>  

<TableRow android:id="@+id/TableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
      <TextView android:text="Kegunaan" />
      <TextView android:id="@+id/detailKegunaan" />
</TableRow>  

<TableRow android:id="@+id/TableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content">
      <TextView android:text="Deskripsi" />
   

     
       <RelativeLayout
        android:id="@+id/relativeLayout2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true" >

        <ScrollView
            android:id="@+id/scrollView1"
            android:layout_width="fill_parent"
            android:layout_height="164dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:gravity="center" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/isi"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="isi" />
            </LinearLayout>
        </ScrollView>
    </RelativeLayout>
   
     
     
</TableRow>  


  <Button
      android:id="@+id/btnWiki"
      android:text="Wikipedia"
  />

  <Button
      android:id="@+id/btnKembali"
      android:text="Kembali"
       />

</TableLayout>
</ScrollView>

</RelativeLayout>



package lp2maray.com;

import java.util.Calendar;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

public class Detail extends Activity {
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.detail);

         Intent io = this.getIntent();
         String nama=io.getStringExtra("nama");
         String kegunaan=io.getStringExtra("kegunaan");
         String deskripsi=io.getStringExtra("deskripsi");
    int gambar=io.getIntExtra("gambar", R.drawable.logo);
 

        TextView txtNama=(TextView)findViewById(R.id.detailNamaTanaman);
        TextView txtKegunaan=(TextView)findViewById(R.id.detailKegunaan);
        TextView txtDeskripsi=(TextView)findViewById(R.id.isi);
        ImageView myGambar=(ImageView)findViewById(R.id.myGambar);
       
        txtNama.setText(nama);
        txtKegunaan.setText(kegunaan);
        txtDeskripsi.setText(deskripsi);
        myGambar.setImageResource(gambar);
       
        Button  btnKembali=(Button)findViewById(R.id.btnKembali);
        btnKembali.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
        finish();
        }});
       
       
        Button  btnWikipedia=(Button)findViewById(R.id.btnWiki);
        btnWikipedia.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://id.wikipedia.org/wiki/Tanaman_obat_keluarga"));
        startActivity(browserIntent);
        }});
       
    }
     
public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK) {
          finish();
                 return true;
         }
     return super.onKeyDown(keyCode, event);
 }  

}


Menu Utama Get GPS Location


menuutama.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/kayu_bintagor"
    android:orientation="vertical" >
  <TextView
       android:id="@+id/menuMarquee"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:layout_marginBottom="50dp"
       android:background="#000000"
       android:ellipsize="marquee"
       android:marqueeRepeatLimit="marquee_forever"
       android:singleLine="true"
       android:text="selamat datang di aplikasi android "
       android:textColor="#0000ff"
       android:textSize="16sp"
       android:typeface="sans" />
 
    <ImageView
        android:id="@+id/imgPosisi"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="42dp"
        android:layout_marginTop="44dp"
        android:src="@drawable/earth" />

    <ImageView
        android:id="@+id/imgDataSt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/imgPosisi"
        android:layout_marginRight="52dp"
        android:src="@drawable/home" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView1"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginLeft="26dp"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_alignRight="@+id/imgDataSt"
        android:text="Lokasi"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ffffff" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView5"
        android:layout_below="@+id/imagehelp"
        android:text="Help"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ffffff" />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView6"
        android:layout_alignRight="@+id/imginput"
        android:text="Profil"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ffffff" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imagehelp"
        android:layout_alignRight="@+id/imginput"
        android:text="Input"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ffffff" />

    <ImageView
        android:id="@+id/imginput"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView3"
        android:layout_centerVertical="true"
        android:src="@drawable/add" />

    <ImageView
        android:id="@+id/imgCari"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_centerVertical="true"
        android:src="@drawable/search" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/imgPosisi"
        android:layout_below="@+id/imgPosisi"
        android:text="Posisi"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FFFFFF" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/imgCari"
        android:text="Search"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ffffff" />

    <ImageView
        android:id="@+id/imagehelp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/imgCari"
        android:layout_below="@+id/textView5"
        android:src="@drawable/help" />

    <TextView
        android:id="@+id/textView8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imgDataSt"
        android:layout_centerHorizontal="true"
        android:text="MENU UTAMA"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FFFFFF" />

    <ImageView
        android:id="@+id/imgprofil"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView7"
        android:layout_alignRight="@+id/textView7"
        android:src="@drawable/user_woman" />

</RelativeLayout>



menuutama.java

package com.lp2maray.jakarta;

import java.io.IOException;
import java.util.List;
import java.util.Locale;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.text.Html;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class menuutama extends Activity {

String myLati="-6.353516";
String myLongi="106.832307";
String myLokasi="LP2M ARAY Jakarta - Indonesia (default)";
LocationManager locationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menuutama);

        ImageView  Lokasi=(ImageView)findViewById(R.id.imgPosisi);
        Lokasi.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
        Intent  i= new Intent(menuutama.this, Maps.class);
        i.putExtra("myLati", myLati);
        i.putExtra("myLongi", myLongi);
        i.putExtra("myLokasi", myLokasi);
    startActivity(i);
       
        }});
        ImageView  profil=(ImageView)findViewById(R.id.imgprofil);
        profil.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
        Intent  i= new Intent(menuutama.this, profil.class);
    startActivity(i);
       
        }});
        ImageView  bantuan=(ImageView)findViewById(R.id.imagehelp);
        bantuan.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
        Intent  i= new Intent(menuutama.this, bantuan.class);
    startActivity(i);
       
        }});
        ImageView  input=(ImageView)findViewById(R.id.imginput);
        input.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
        Intent  i= new Intent(menuutama.this, listdataDB.class);
        i.putExtra("myLati", myLati);
        i.putExtra("myLongi", myLongi);
        i.putExtra("myLokasi", myLokasi);

        startActivity(i);
       
        }});
     
        ImageView  cari=(ImageView)findViewById(R.id.imgCari);
        cari.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
        Intent  i= new Intent(menuutama.this, pencarian.class);
        i.putExtra("myLati", myLati);
        i.putExtra("myLongi", myLongi);
        i.putExtra("myLokasi", myLokasi);

    startActivity(i);
        }});
     
     
     
       ImageView  list=(ImageView)findViewById(R.id.imgDataSt);
        list.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {//liststasiun
        Intent  i= new Intent(menuutama.this, check.class);
        i.putExtra("myLati", myLati);
        i.putExtra("myLongi", myLongi);
        i.putExtra("myLokasi", myLokasi);

    startActivity(i);
        }});

   
    LocationManager locationManager;
        String context = Context.LOCATION_SERVICE;
        locationManager = (LocationManager)getSystemService(context);

        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_LOW);
        String provider = locationManager.getBestProvider(criteria, true);

        Location location = locationManager.getLastKnownLocation(provider);
        updateWithNewLocation(location);

        locationManager.requestLocationUpdates(provider, 5000, 10,locationListener);
     
      TextView  txtMarquee=(TextView)findViewById(R.id.menuMarquee);
         txtMarquee.setSelected(true);
         String kata=".: Posisi "+myLokasi+"("+myLati+"."+myLongi+" Selamat Datang Di LP2M ARAY Jakarta - Indonesia (default)#";
         String POLA =getString(R.string.marquee);
         String kalimat=String.format(POLA,TextUtils.htmlEncode(kata+kata+kata));
         txtMarquee.setText(Html.fromHtml(kalimat));

      }
 

      private final LocationListener locationListener = new LocationListener() {
        @Override
public void onLocationChanged(Location location) {
          updateWithNewLocation(location);
        }
   
        @Override
public void onProviderDisabled(String provider){
          updateWithNewLocation(null);
        }

        @Override
public void onProviderEnabled(String provider){ }
        @Override
public void onStatusChanged(String provider, int status, Bundle extras){ }
      };

      private void updateWithNewLocation(Location location) {
        String latLongString;
        double latitude=Double.parseDouble(myLati);
        double longitude=Double.parseDouble(myLongi);
     
        String addressString = "default";

        if (location != null) {
            latitude = location.getLatitude();
            longitude = location.getLongitude();
        myLati=String.valueOf(latitude);
        myLongi=String.valueOf(longitude);
       
          latLongString = "Lat:" + latitude + "\nLong:" + longitude;
          Geocoder gc = new Geocoder(this, Locale.getDefault());
          try {
            List<Address> addresses = gc.getFromLocation(latitude, longitude, 1);
            StringBuilder sb = new StringBuilder();
            if (addresses.size() > 0) {
              Address address = addresses.get(0);

              for (int i = 0; i < address.getMaxAddressLineIndex(); i++)
                sb.append(address.getAddressLine(i)).append("\n");

                sb.append(address.getLocality()).append("\n");
                sb.append(address.getPostalCode()).append("\n");
                sb.append(address.getCountryName());
            }
            addressString = sb.toString();
          } catch (IOException e) {}
        } else {
        myLati="-6.353128";
        myLongi="106.832307";
        latLongString="LP2M ARAY Jakarta - Indonesia (default)";
        }

        myLokasi=latLongString + "\n" + addressString;
        myLati=String.valueOf(myLati);
        myLongi=String.valueOf(myLongi);
     
     
    TextView  txtMarquee=(TextView)findViewById(R.id.menuMarquee);
     txtMarquee.setSelected(true);
     String kata=".: --Posisi "+myLokasi+"("+myLati+","+myLongi+" LP2M ARAY Jakarta - Indonesia (default)--";
     String POLA =getString(R.string.marquee);
     String kalimat=String.format(POLA,TextUtils.htmlEncode(kata+kata+kata));
     txtMarquee.setText(Html.fromHtml(kalimat));

 }


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

Maps.java

package com.example.may16;





import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;

public class Maps extends FragmentActivity{
private GoogleMap map;
String myLati="-6.353516";
String myLongi="106.832307";
String myLokasi="LP2M ARAY Jakarta - Indonesia (default)";
int jd=0;

String[]arr_id;
String[]arr_longitude;
String[]arr_keterangan;
String[]arr_nama;
String[]arr_alamat;
String[]arr_latitude;
int[]arrGbr;

dbHelper helper=null;
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.maps);
   
   Intent io = this.getIntent();
        myLokasi=io.getStringExtra("myLokasi");
        myLati=io.getStringExtra("myLati");
        myLongi=io.getStringExtra("myLongi");
        
        helper=new dbHelper(this);
        Cursor c=helper.getAll();
        c.moveToFirst();
        int row = c.getCount();
        jd=row;
        
        int i=0;
        if (row>0){
        arr_nama=new String[jd];
        arr_alamat=new String[jd];
        arr_latitude=new String[jd];
        arr_id=new String[jd];
        arr_longitude=new String[jd];
        arr_keterangan=new String[jd];
        arrGbr=new int[jd];
       
        for(i=0;i<row;i++){
        arr_id[i]=helper.getid(c);
        arr_nama[i]=helper.getnama(c);
        arr_alamat[i]=helper.getalamat(c);
        arr_latitude[i]=helper.getlatitude(c);
        arr_longitude[i]=helper.getlongitude(c);
        arr_keterangan[i]=helper.getketerangan(c);
        arrGbr[i]=R.drawable.add;
        try{c.moveToNext();}
        catch(Exception ee){}
        }
        c.close();
        setupMap();
        }
        else{
        Toast.makeText(Maps.this," Maaf data belum tersedia....", Toast.LENGTH_LONG).show();
        finish();
        }    
}
private void setupMap(){
if (map == null){
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.maps)).getMap();
if (map != null){
double mlati=Double.parseDouble(myLati);
double mlongi=Double.parseDouble(myLongi);
map.addMarker(new MarkerOptions().position(new LatLng(mlati,mlongi)).title("Posisi Anda").snippet(myLokasi).icon(BitmapDescriptorFactory.fromResource(drawableId));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(mlati, mlongi),10));
for(int i=0;i<jd;i++){
try {
mlati=Double.parseDouble(arr_latitude[i]);
mlongi=Double.parseDouble(arr_longitude[i]);
} catch (NumberFormatException e) {
mlati=Double.parseDouble(myLati);
mlongi=Double.parseDouble(myLongi);
e.printStackTrace();
}
map.addMarker(new MarkerOptions().position(new LatLng(mlati,mlongi)).title(arr_nama[i]).snippet(arr_alamat[i]));
}
}
}

}



}



NB:
BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.pin);
    LatLng latLng = new LatLng(21.4225, 39.8262);
    googleMap.addMarker(new MarkerOptions().position(latLng).title("Mecca").icon(icon)).showInfoWindow();
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15));

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world" />
    <fragment
        android:id="@+id/maps"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment"/>

</RelativeLayout>





      <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

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

Minggu, 15 Januari 2017

Menghitung Jarak Dua Koordinat

Teori Haversine Formula
Teorema Haversine Formula adalah sebuah persamaan yang penting dalam bidang navigasi, untuk mencari jarak busur antara dua titik pada bola dari longitude dan latitude. Ini merupakan bentuk persamaan khusus dari trigonometri bola, law of haversines, mencari hubungan sisi dan sudut pada segitiga dalam bidang bola.

Spherical law of cosines
Dimana a,b,c ialah jarak yang bersatuan radian/sudut karena berada dalam bidang bola, yang bisa kita korelasikan dengan persamaan busur dibawah ini :
Rumus Busur
Kemudian kita implementasikan persamaan harvesin dibawah ini :

Sehingga dari Formula diatas kita dapat implementasi menjadi :



Teori Euclidean Distance
Euclidean distance adalah perhitungan jarak dari 2 buah titik dalamEuclidean space. Euclidean space diperkenalkan oleh Euclid, seorang matematikawan dari Yunani sekitar tahun 300 B.C.E. untuk mempelajari hubungan antara sudut dan jarak. Euclidean ini berkaitan dengan Teorema Phytagoras dan biasanya diterapkan pada 1, 2 dan 3 dimensi. Tapi juga sederhana jika diterapkan pada dimensi yang lebih tinggi.

Pada 1 dimensi
Semisal ingin menghitung jarak Euclidean 1 dimensi. Titip pertama adalah 4, titik kedua adalah -10. Caranya adalah kurankan -10 dengan 4. sehingga menghasilkan -14. Cari nilai absolut dari nilai -14 dengan cara mempangkatkannya sehingga mendapat nilai 196. Kemudian diakarkan sehingga mendapatkan nilai 14. Sehingga jarak euclidean dari 2 titik tersebut adalah 14.
 Pada 2 dimensi

Koordinat jarak
Caranya hampir sama. Misalkan titik pertama mempunyai kordinat (1,2). Titik kedua ada di kordinat (5,5). Caranya adalah kurangkan setiap kordinat titik kedua dengan titik yang pertama. Yaitu, (5-1,5-2) sehingga menjadi (4,3). Kemudian pangkatkan masing-masing sehingga memperoleh (16,9). Kemudian tambahkan semuanya sehingga memperoleh nilai 16+9 = 25. Hasil ini kemudian diakarkan menjadi 5. Sehingga jarak euclideannya adalah 5.
Rumus Euclid
Sehingga dari Formula diatas kita dapat implementasi menjadi :

Rumus Jarak Euclide
Hasil perhitungan (Jarak) diatas masih dalam satuan decimal degree(sesuai dengan format longlat yang dipakai) sehingga untuk menyesuaikannya perlu dikalikan dengan 111.319 km (1 derajat bumi = 111.319 km)



Penggunaan Teorema Euclid dan Teorema Harvesine
Pertama kita siapkan bahan uji sebagai berikut :
1. Titik Pertama : Gedung Sate (Bandung)
Long : 107.618633
Lat : -6.901361
2. Titik Kedua: Mesjid Raya Lembang (KBB)
Long : 107.618279
Lat : -6.811771
Jarak aktual yang diperoleh dari Gmap ialah 10.05 Km.
Dengan Teorema Euclid :

Rumus Jarak Euclide
=((SQRT((B6-B7)^2+(C6-C7)^2)*111.319))
Hasilnya diperoleh Jarak = 9.97 Km
Dengan Teorema Harvesine:

Rumus Jarak Harvesin
=(6371.1*((2*ASIN(SQRT((SIN((RADIANS(B7)-RADIANS(B6))/2)^2)+COS(RADIANS(B7))*COS(RADIANS(B6))*(SIN((RADIANS(C7)-RADIANS(C6))/2)^2))))))
Hasilnya diperoleh Jarak = 9.96 Km
JIka menggunakan excel:


public static double getJarak(double lat1, double lon1, double lat2, double lon2) { 
final int R = 6371; // Radious of the earth
        Double latDistance = toRad(lat2-lat1);
        Double lonDistance = toRad(lon2-lon1);
        Double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2) +
                   Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *
                   Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
        Double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
        Double distance = R * c;
         
        System.out.println("The distance between two lat and long is::" + distance);
 
    }
     
    private static Double toRad(Double value) {
        return value * Math.PI / 180;
    }

public static double getJarak(double lat1, double lng1, double lat2, double lng2) {
           double earthRadius = 3958.75;
           double dLat = Math.toRadians(lat2-lat1);
           double dLng = Math.toRadians(lng2-lng1);
           double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
                      Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
                      Math.sin(dLng/2) * Math.sin(dLng/2);
           double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
           double dist = earthRadius * c;

           int meterConversion = 1609;
           double myjr=dist * meterConversion;
           return Math.floor(myjr/1000);

           }