使用 Android Studio 和 Google 地图 API 在 LongMapClick 上添加新标记
Adding New Marker onLongMapClick Using Android Studio and Google Maps API
我已经尝试了几个小时在下面的代码中添加一个新的标记 onLongMapClick。我搜索了很多,但似乎没有任何效果。我正在使用 Android Studio 1.5.1 和 Google 地图 API。我正在 Nexus 6P 模拟器上测试我的应用程序。 API 23. 我在底部的括号之间留空了,我认为代码应该放在那里。下面的代码在 public class BasicMapDemoActivity extends AppCompatActivity implements OnMapReadyCallback { 中,我似乎不知道该怎么做。谁能帮我实现这一目标?我可以提供任何其他可能有用的信息。谢谢!
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));
}
}
});
}
}
因为你已经有了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));
你应该像这样在 onMapLongClick
括号中添加一个标记
mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng point) {
MarkerOptions options = new MarkerOptions()
.position(point);
Marker mMarker = mMap.addMarker(options);
}
});
我已经尝试了几个小时在下面的代码中添加一个新的标记 onLongMapClick。我搜索了很多,但似乎没有任何效果。我正在使用 Android Studio 1.5.1 和 Google 地图 API。我正在 Nexus 6P 模拟器上测试我的应用程序。 API 23. 我在底部的括号之间留空了,我认为代码应该放在那里。下面的代码在 public class BasicMapDemoActivity extends AppCompatActivity implements OnMapReadyCallback { 中,我似乎不知道该怎么做。谁能帮我实现这一目标?我可以提供任何其他可能有用的信息。谢谢!
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));
}
}
});
}
}
因为你已经有了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));
你应该像这样在 onMapLongClick
括号中添加一个标记
mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng point) {
MarkerOptions options = new MarkerOptions()
.position(point);
Marker mMarker = mMap.addMarker(options);
}
});