소스코드는 이러합니다. 해당 지역을 검색하고 찾기 버튼을 누르면 자꾸 원래 위치를 지정했던 곳으로
계속 이동을 하게 되네요, 이거 .. 어찌 구현을 해야하나요?
package com.example.samsung.google;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapView;
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.Marker;
import java.util.List;
import java.util.Locale;
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText edit = (EditText) findViewById(R.id.edit);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goLoc(edit.getText().toString());
}
});
}
public void goLoc(String goLocName) {
Geocoder gc = new Geocoder(this, Locale.getDefault());
List<Address> adds;
try {
adds = gc.getFromLocationName(goLocName, 1);
initilizeMap();
int latitude = (int) (adds.get(0).getLatitude() * 1E6);
int longitude = (int) (adds.get(0).getLatitude() * 1E6);
} catch (Exception e){
e.printStackTrace();
}
}
private void initilizeMap() {
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
protected void onResume() {
super.onResume();
initilizeMap();
}
public void onMapReady(GoogleMap googleMap) {
googleMap = googleMap;
LatLng Seoul = new LatLng(37.550947, 126.989296);
googleMap.moveCamera(CameraUpdateFactory.newLatLng(Seoul));
CameraUpdate zoom = CameraUpdateFactory.zoomTo(15);
googleMap.animateCamera(zoom);
if (ActivityCompat.checkSelfPermission
(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
googleMap.setMyLocationEnabled(true);
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Toast.makeText(getApplicationContext(), marker.getTitle() + "를 클릭했습니다.", Toast.LENGTH_SHORT).show();
return false;
}
});
}
}