2016-01-24 51 views
0

我一直試圖在下面的代碼中的LongMapClick上添加一個新標記。我搜索了很多,但似乎沒有任何工作。我正在使用Android Studio 1.5.1和Google Maps API。我正在Nexus 6P仿真器上測試我的應用程序。 API 23.我把它留在底部的括號之間,我認爲代碼應該去。下面的代碼是在公共類BasicMapDemoActivity擴展AppCompatActivity實現OnMapReadyCallback {我似乎無法弄清楚如何做到這一點。任何人都可以請幫我做到這一點?我可以提供其他可能有用的信息。謝謝!在LongMapClick上添加新標記使用Android Studio和Google Maps API

GoogleMap mMap; 
private UiSettings mUiSettings; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.basic_demo); 
    SupportMapFragment mapFragment = 
      (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
} 

@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; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    if (item.getItemId() == R.id.menu_legal) { 
     startActivity(new Intent(this, LegalInfoActivity.class)); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

@Override 
public void onMapReady(GoogleMap map) { 

    mMap = map; 
    mUiSettings = mMap.getUiSettings(); 
    mUiSettings.setZoomControlsEnabled(true); 
    mUiSettings.setScrollGesturesEnabled(true); 
    mUiSettings.setZoomGesturesEnabled(true); 


mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
    @Override 
    public void onMapClick(LatLng point) { 
    } 
}); 


mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { 
    @Override 
    public void onMapLongClick(LatLng point) { 
    } 
}); 

mMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { 
    @Override 
    public void onCameraChange(CameraPosition position) { 
     float maxZoom = 7.0f; 
     if (position.zoom > maxZoom) { 
      mMap.animateCamera(CameraUpdateFactory.zoomTo(maxZoom)); 
     } 
    } 
}); 
} 

}

回答

1

正如你已經有MMAP的參考,所以試試這個代碼 (注:我還沒有嘗試過)

LatLng latlng= new LatLng(LATITUDE,LONGITUDE); 
mMap.setMyLocationEnabled(true); 
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 13)); 
mMap.addMarker(new MarkerOptions() 
    .title("NAME THE MARKER POINT") 
    .snippet("DESCRIPTION FOR MARKER HERE.") 
    .position(latlng)); 
+0

我真的很感謝您的答覆,但它不是我正在尋找的東西。我希望用戶能夠在LongClick上爲自己的興趣點添加新標記。由於某些原因,我還將maxZoom設置爲7.0f,並且對MyLocation服務沒有興趣。我不確定我的代碼有多遠,但我認爲應該在設置onLongClick監聽器之後進行操作?也不知道我是否應該使用(LatLng點)來實現我想要完成的任務。這有意義嗎? –

+0

mMap.setOnMapClickListener(新GoogleMap.OnMapClickListener(){ @Override 公共無效onMapClick(經緯度點){ mMap.addMarker(新的MarkerOptions() .POSITION(點) 是.snippet( 「」)); } }); –

+0

這就是爲我工作的結果。我相信我只需要在沒有任何LatLng的情況下簡單地確定位置 –

相關問題