【发布时间】:2017-09-02 00:06:38
【问题描述】:
【问题讨论】:
标签: android google-maps
【问题讨论】:
标签: android google-maps
public class YOURACTIVITY extends AppCompatActivity implements OnMapReadyCallback
private GoogleMap mMap;
<--
OnCreate
SupportMapFragment map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map));
map.getMapAsync(this);
-->
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
double mLat = LATITUDE;
double mLon = LONTITUDE;
LatLng mylocation = new LatLng(mLat, mLon);
mMap.addMarker(new MarkerOptions().position(mylocation).snippet("TEXT BELLOW TITLE").title("TITLE")).showInfoWindow();
mMap.setMyLocationEnabled(true);
mMap.getUiSettings().setMyLocationButtonEnabled(true);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(mylocation,15));
}
更新 尝试添加这样的东西。创建自定义布局并添加信息
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
View view = MainActivity.getLayoutInflater().inflate(R.layout.map_custom, null);
TextView titleTextView = (TextView) view.findViewById(R.id.map_title);
TextView snippetTextView = (TextView) view.findViewById(R.id.map_snippet);
titleTextView.setText(marker.getTitle());
snippetTextView.setText(marker.getSnippet());
return view;
}
});
【讨论】:
试试这个高效的解决方案:
public void onMapLongClick(LatLng point) {
pin.setText("New marker added@" + point.toString());
//Create a marker object
Marker myMarker = map.addMarker(new MarkerOptions().position(point).title(point.toString()));
//And now you can use it's values
myMarker.getPosition().latitude;
myMarker.getPosition().longitude;
}
【讨论】:
您可以使用 setOnMarkerDragListener 方法:
mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker marker) {
}
@Override
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
double latitude = marker.getPosition().latitude;
double longitude = marker.getPosition().longitude;
}
});
【讨论】:
它的短处是使用Marker.getPosition() 方法,也许在祝酒词中:
@Override
public void onMarkerDragEnd(Marker marker) {
LatLng pos = marker.getPosition();
Toast.makeText(MainActivity.this, "Point coordinates: " + pos.latitude
+ ", " + pos.longitude, Toast.LENGTH_LONG).show();
}
【讨论】: