펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO
GoogleMap gmap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
gmap.setOnMapLongClickListener(new OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_3g));
markerOptions.position(latLng); //마커위치설정
gmap.animateCamera(CameraUpdateFactory.newLatLng(latLng)); // 마커생성위치로 이동
gmap.addMarker(markerOptions); //마커 생성
}
});
onCreat에 넣어주심됩니다.
요즘한창 v2공부하고있으니 궁금하신점 질문주시면 성심껏 알려드립니다
'Android > 구글맵 v2' 카테고리의 다른 글
구글맵 v2 중앙 좌표 받아오는법 (2) | 2014.06.18 |
---|---|
구글맵(GoogleMap) v2 띄우기 (최신) (101) | 2013.12.27 |
구글맵 v2 지도 시작위치, 줌레벨 설정하는법 (11) | 2013.12.26 |
구글맵 지도 클릭시 마커 생성 소스 (32) | 2013.08.27 |
댓글을 달아 주세요
비밀댓글입니다
코드상으로는 문제가 안보이는데요 에러가 어디에서 나는지는 본인이 가장 잘 알 수 있습니다.
실행을 하면 에러가 발생하는지, 소스코드상에서 에러가 나는지도 본인이 아실테고 증상을 정확하게 알려주셔야 도움드릴수 있을듯하네요
실행 후 에러가 발생하여 어플이 죽는경우 원인을 알아내는 방법은
http://biig.tistory.com/37 여기 나와 있습니다.
gmap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
이 코드에서 계속 null값이 발생하는데 왜 그런것인가요ㅠㅠ?
R.id.map 은 xml파일에서 fragment의 id값이며
gmap은
GoogleMap gmap; 입니다. 확인후 다시 질문 부탁드립니다
marker_3g에서 계속 에러 나네요 ㅠㅠ 어떻게 해야되죠
marker_3g는 이미지파일 이름입니다. value폴더 > 이미지 폴더에 해당 이름을 가진 마커 이미지를 넣어주시면 됩니다. 디폴트이미지(안드로이드 초록색 로보트 이미지)를 사용하셔도 됩니다.
구글맵 디폴트이미지도 쓸 수 있는데 지금 당장 생각이 안나네요
아마 해당 라인을 적지 않아도 작동은 하리라생각됩니다.
마커를 찍는 것 까지 성공 햇는데요 gmap.clear 처럼 지도를 초기화 시키는 거 말고 특정 마커만 지우는 방법 혹시 아세요?
InfoWindowAdapter에 대해 검색해보시면 답을 구하실 수 있을것같습니다.
getInfoWindow를 오버라이드 하시면 marker.remove() 메소드로 선택된 마커를 삭제 할 수 있습니다.
GoogleMap gmap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
이부분에서 계속 에러가 있다는데 왜그런건지알수있을까요?
구글맵을 선언한 xml의 fragment id가 map이 맞는지 확인해보세요
에러 내용이라도 올려주시면 좋았을텐데 ..
마커 생기게까지 했습니다. 좋은정보 감사합니다..
제가 초보자라서 그러는데..
터치했을때 마크나오면 그 마크를 찍으면 타이틀이 나오자나요??
그 타이틀에 위도경도를 찍고싶은데 어떻게 해야될까요?..
검색 하니까 GeoPoint 에 관한게 나오던데.. 어떤식으로 해야할지도 모르곘습니다...
도와주세요.
마커 옵션을 이용하여 마커를 심을 때 정보 몇가지를 포함할수 있었던걸로 기억합니다. 마커 옵션에 위치를 입력하시고 인포윈도우를 띄울 때 저장한 옵션을 호출하면 되지 않을까 합니다
답변 감사합니다.
답변주신 내용중에 위치를 입력하시라고 했는데
지도상에 터치했을때 그부분의 위경도는 알아올수는 없을까요??
맵 클릭리스너에서 위치를 LatLng형태로 리턴해줍니다.
마커를 여러개 생성하여서 마커위에 말풍선을 띄우려고 하는데 마커 1,2,3이 있을때 마커 2번만 수정 및 삭제하고 싶을 시에 이 마커가 2번인지 알수 있는 방법이 있나요?
마커를 찍을 때 마커 아이디를설정 해 줄 수 있습니다.
또는 마커의 위,경도를 이용해 판단하는 방법도 있겠네요
제가 마커위에 마커 setitle과 setSnippet을 사용하여서 showInfoWindow()로 띄웠는데 마커를 배열로 사용하여서 mk[0], mk[1], mk[2]를 만들었는데 맨 마지막에 생성된 마커위에만 타이틀과 글이 보입니다. 전체 마커의 타이틀과 글을 다 띄울수 있을까요?
mk[i1].setTitle(times[i1]);
mk[i1].setSnippet((i1)+"번 : " + memo[i1]);
for(int k=0;k<=i1;k++)
mk[k].showInfoWindow();
i1++;
일반적인 방법으로는 동시에 여러개의 인포윈도우를 표시할 수 없습니다.
그러면 title과 snippet을 여러개 띄울 방법이 있을까요?
비트맵 이미지로 띄우는 방식을 이용해야하지 않을까요 ?
GoogleMap.addCircle 처럼 원을 그려주는것도 있고 이를 응용하여 네모난 이미지를 그려주는 방법도 있지 않을까 생각됩니다.
비트맵 이미지를 이용하여 마커 대신 텍스트를 띄웠는데 2줄을 적으려고 하는데 어떻게 해야되는지 모르겠네요. 스트링에 \n하면 될줄 알았는데 안되네요
저 다른게 아니고 marker 뿐만 아니고 지도상에서 경로를 그리는 소스도 구현해보셨나요 ??? ㅎ
경로를 따로 구현해보진 않았지만, 폴리라인 으로 검색하시면 쉽게 찾으실 수 있으실겁니다
고맙습니다~
소스 상 오류는 없는데 실행하면 지도만 뜨네요..
너무 감사합니다!! 지금 코드짜다가 해결하지 못한 부분을 시원하게 풀어주셨어요 ㅠㅠ 너무 감사해서 댓글남깁니다.
안녕하세요 완전 개초보 입니다...ㅠㅠ
지금 구글맵 띄우는것까지 성공했는데요
mainactivity.java가 아래처럼되어있는데 위의 코드를 어디에 넣어야하나요??
ㅠㅠㅠㅠㅠㅠ
package com.example.googlemaptest;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
onCreate 부분 그대로 쓰시고 onCreateOptionsMenu 부분 복붙하시면 됩니다.
마커 생성하고, 그 위치의 마커를 클릭하면 위도, 경도가 뜨게까지 성공했는데요!
혹시 이 위도, 경도 좌표를 블루투스를 이용해서 아두이노로 전송하는 게 가능할까요??
아시는 것 있으시면 조언좀 부탁드리겠습니다...!
저가 현재위치 뜨게하면서 맵을 클릭하면 마커가 뜨게하고싶은데 어떻게해야하나여? 소스에러는
public class MainActivity extends Activity {
private GoogleMap map;
static final LatLng SEOUL = new LatLng( 37.56, 126.97);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
map = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
map.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher));
markerOptions.position(latLng); //마커위치설정
map.animateCamera(CameraUpdateFactory.newLatLng(latLng)); // 마커생성위치로 이동
map.addMarker(markerOptions); //마커 생성
}
});
getSupportFragmentManager() <-이게 빨갛고
Error:(27, 37) error: cannot find symbol method getSupportFragmentManager()/
이렇게뜨네요 알트엔터해도 아래
public FragmentManager getSupportFragmentManager() {
return supportFragmentManager;
}
이렇게뜨고 어떻게 넣어야할지도 ㅠㅠ 모르겟어요 ㅠ
저 혹시 아직도 사이트를 운영하고 계시는지는 모르겠지만,
뭐하나 궁금해서 질문을 남겨봅니다.
만약에 3개의 위치를 찍고, 그 3개의 위치의 중심점을 polyline으로 해서 3개의 점 중심거리를 만들고 싶은데 애를 먹어서 그런데 혹시 그쪽에 대해서 잘 알고 계신가요?