Java源码示例:com.baidu.mapapi.map.Marker
示例1
/**
* 缩放地图,使所有Overlay都在合适的视野内
* <p>
* 注: 该方法只对Marker类型的overlay有效
* </p>
*/
public void zoomToSpan() {
if (mBaiduMap == null) {
return;
}
if (mOverlayList.size() > 0) {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Overlay overlay : mOverlayList) {
// polyline 中的点可能太多,只按marker 缩放
if (overlay instanceof Marker) {
builder.include(((Marker) overlay).getPosition());
} else if (overlay instanceof Polyline) {
Polyline polyline = (Polyline) overlay;
if (null != polyline.getPoints() && !polyline.getPoints().isEmpty()) {
builder.include(polyline.getPoints().get(0));
builder.include(polyline.getPoints().get((polyline.getPoints().size() - 1) / 2));
if (polyline.getPoints().size() > 2) {
builder.include(polyline.getPoints().get(polyline.getPoints().size() - 1));
}
}
}
}
mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newLatLngBounds(builder.build()));
}
}
示例2
/**
* 缩放地图,使所有Overlay都在合适的视野内
* <p>
* 注: 该方法只对Marker类型的overlay有效
* </p>
*/
public void zoomToSpan() {
if (mBaiduMap == null) {
return;
}
if (mOverlayList.size() > 0) {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Overlay overlay : mOverlayList) {
// polyline 中的点可能太多,只按marker 缩放
if (overlay instanceof Marker) {
builder.include(((Marker) overlay).getPosition());
} else if (overlay instanceof Polyline) {
Polyline polyline = (Polyline) overlay;
if (null != polyline.getPoints() && !polyline.getPoints().isEmpty()) {
builder.include(polyline.getPoints().get(0));
builder.include(polyline.getPoints().get((polyline.getPoints().size() - 1) / 2));
if (polyline.getPoints().size() > 2) {
builder.include(polyline.getPoints().get(polyline.getPoints().size() - 1));
}
}
}
}
mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newLatLngBounds(builder.build()));
}
}
示例3
/**
* 定位接收到的地址
**/
private void locationReceiveAddress() {
if (receiveAddress == null) {
return;
}
LatLng p = new LatLng(receiveAddress.getLatitude(), receiveAddress.getLongitude());
MarkerOptions markerOptions = new MarkerOptions();
/* 设置覆盖物图标 */
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_openmap_focuse_mark))
.position(p)
.visible(true);
baiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
setSinglePoiDetail();
return true;
}
});
if (NetUtil.getInstance(SetFavoriteMapActivity.this).getCurrentNetType().equals(NetUtil.NetType.NETWORK_TYPE_NONE)) {
// Snackbar.make(mAmosfPoiList,mAppConfig.getResources().getString(R.string.no_network), Snackbar.LENGTH_SHORT).show();
return;
}
/* 添加覆盖图层 */
baiduMap.addOverlay(markerOptions);
baiduMap.setMapStatus(MapStatusUpdateFactory.newLatLngZoom(p, 17F));
}
示例4
/**
* 缩放地图,使所有Overlay都在合适的视野内
* <p>
* 注: 该方法只对Marker类型的overlay有效
* </p>
*
*/
public void zoomToSpan() {
if (mBaiduMap == null) {
return;
}
if (mOverlayList.size() > 0) {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Overlay overlay : mOverlayList) {
// polyline 中的点可能太多,只按marker 缩放
if (overlay instanceof Marker) {
builder.include(((Marker) overlay).getPosition());
}
}
mBaiduMap.setMapStatus(MapStatusUpdateFactory
.newLatLngBounds(builder.build()));
}
}
示例5
@Override
public boolean onMarkerClick(Marker marker) {
Log.d("lml", "MapFragment:覆盖物被点击");
baiduMap.hideInfoWindow();
if (marker != null) {
latLngshow = marker.getPosition();
reverseGeoCodeOption.location(latLngshow);
geoCoder.reverseGeoCode(reverseGeoCodeOption);
tvAddOverlayGeoCoder.setText("正在获取详细位置");
bundle = marker.getExtraInfo();
generalIsMale = bundle.getString("general").equals("m");
layoutAddOverlayRadarNearbyItem.setBackgroundColor(getResources().getColor(generalIsMale ? R.color.blue : R.color.pink));
imageViewAddOverlayItem.setImageResource(generalIsMale ? R.mipmap.map_portrait_man : R.mipmap.map_portrait_woman);
tvAddOverlayItemUserID.setText(bundle.getString("userID"));
tvAddOverlayItemDistance.setText("距离" + bundle.getInt("distance") + "米 ");
tvAddOverlayItemLatlng.setText("坐标: " + latLngshow.latitude + " , " + latLngshow.longitude + " ");
Log.d("lml", "MapFragment显示的信息:" + bundle.getString("userID"));
Log.d("lml", bundle.getString("general") + ";" + generalIsMale);
baiduMap.showInfoWindow(new InfoWindow(viewOverlayItem, marker.getPosition(), -70));
MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(marker.getPosition());
baiduMap.animateMapStatus(update);
return true;
} else
return false;
}
示例6
@Override
public boolean onMarkerClick(Marker marker) {
WritableMap writableMap = Arguments.createMap();
WritableMap position = Arguments.createMap();
position.putDouble("latitude", marker.getPosition().latitude);
position.putDouble("longitude", marker.getPosition().longitude);
writableMap.putMap("position", position);
writableMap.putString("title", marker.getTitle());
OverlayMarker overlayMarker = MapViewManager.findOverlayMaker(marker);
mapView.getMap().hideInfoWindow();
if (overlayMarker != null) {
InfoWindow infoWindow = overlayMarker.getInfoWindow(marker.getPosition());
if (infoWindow != null) {
mapView.getMap().showInfoWindow(infoWindow);
}
reactContext
.getJSModule(RCTEventEmitter.class)
.receiveEvent(overlayMarker.getId(),
"topClick", writableMap.copy());
}
sendEvent(mapView, "onMarkerClick", writableMap);
return true;
}
示例7
/**
* 缩放地图,使所有Overlay都在合适的视野内
* <p>
* 注: 该方法只对Marker类型的overlay有效
* </p>
*/
public void zoomToSpan() {
if (mBaiduMap == null) {
return;
}
if (mOverlayList.size() > 0) {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Overlay overlay : mOverlayList) {
// polyline 中的点可能太多,只按marker 缩放
if (overlay instanceof Marker) {
builder.include(((Marker) overlay).getPosition());
}
}
MapStatus mapStatus = mBaiduMap.getMapStatus();
if (null != mapStatus){
int width = mapStatus.winRound.right - mBaiduMap.getMapStatus().winRound.left - 400;
int height = mapStatus.winRound.bottom - mBaiduMap.getMapStatus().winRound.top - 400;
mBaiduMap.setMapStatus(MapStatusUpdateFactory
.newLatLngBounds(builder.build(), width, height));
}
}
}
示例8
/**
* 设置显示在规定宽高中的地图地理范围
*/
public void zoomToSpanPaddingBounds(int paddingLeft, int paddingTop, int paddingRight, int paddingBottom) {
if (mBaiduMap == null) {
return;
}
if (mOverlayList.size() > 0) {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Overlay overlay : mOverlayList) {
// polyline 中的点可能太多,只按marker 缩放
if (overlay instanceof Marker) {
builder.include(((Marker) overlay).getPosition());
}
}
mBaiduMap.setMapStatus(MapStatusUpdateFactory
.newLatLngBounds(builder.build(), paddingLeft, paddingTop, paddingRight, paddingBottom));
}
}
示例9
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例10
public final boolean onMarkerClick(Marker marker) {
if (mOverlayList != null && mOverlayList.contains(marker)) {
return onBusStationClick(mOverlayList.indexOf(marker));
} else {
return false;
}
}
示例11
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例12
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例13
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例14
@Override
public boolean onMarkerClick(Marker marker) {
if (mIsModeRanging) {
MyPoiModel poi = new MyPoiModel(TypeMap.TYPE_BAIDU);
poi.setLatitude(marker.getPosition().latitude);
poi.setLongitude(marker.getPosition().longitude);
if (null == mPoiList) {
mPoiList = new ArrayList<>();
}
mPoiList.add(poi);
makeRangingMarker(poi);
setRangingPolyLine();
} else {
int distance = 0;
if (null != BApp.MY_LOCATION) {
distance = (int) DistanceUtil.getDistance(new LatLng(BApp.MY_LOCATION.getLatitude(), BApp.MY_LOCATION.getLongitude()), marker.getPosition());
}
if (null == clickMapPoiNow) {
clickMapPoiNow = new MyPoiModel(TypeMap.TYPE_BAIDU);
}
clickMapPoiNow.setTypeMap(TypeMap.TYPE_BAIDU);
clickMapPoiNow.setName(marker.getTitle());
clickMapPoiNow.setLongitude(marker.getPosition().longitude);
clickMapPoiNow.setLatitude(marker.getPosition().latitude);
((MainActivity) getActivity()).showPoiLay(clickMapPoiNow, distance);
mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newLatLng(new LatLng(clickMapPoiNow.getLatitude(), clickMapPoiNow.getLongitude())));
}
return true;
}
示例15
@Override
public boolean onMarkerClick(Marker marker) {
if (null == marker.getTitle() || marker.getTitle().isEmpty()) {
return true;
}
showAlertDialog("提示", marker.getTitle(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}, null);
return true;
}
示例16
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例17
public final boolean onMarkerClick(Marker marker) {
if (mOverlayList != null && mOverlayList.contains(marker)) {
return onBusStationClick(mOverlayList.indexOf(marker));
} else {
return false;
}
}
示例18
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例19
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例20
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例21
@Override
public boolean onMarkerClick(Marker marker) {
if (mIsModeRanging) {
MyPoiModel poi = new MyPoiModel(TypeMap.TYPE_BAIDU);
poi.setLatitude(marker.getPosition().latitude);
poi.setLongitude(marker.getPosition().longitude);
if (null == mPoiList) {
mPoiList = new ArrayList<>();
}
mPoiList.add(poi);
makeRangingMarker(poi);
setRangingPolyLine();
} else {
int distance = 0;
if (null != BApp.MY_LOCATION) {
distance = (int) DistanceUtil.getDistance(new LatLng(BApp.MY_LOCATION.getLatitude(), BApp.MY_LOCATION.getLongitude()), marker.getPosition());
}
if (null == clickMapPoiNow) {
clickMapPoiNow = new MyPoiModel(TypeMap.TYPE_BAIDU);
}
clickMapPoiNow.setTypeMap(TypeMap.TYPE_BAIDU);
clickMapPoiNow.setName(marker.getTitle());
clickMapPoiNow.setLongitude(marker.getPosition().longitude);
clickMapPoiNow.setLatitude(marker.getPosition().latitude);
((MainActivity) getActivity()).showPoiLay(clickMapPoiNow, distance);
mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newLatLng(new LatLng(clickMapPoiNow.getLatitude(), clickMapPoiNow.getLongitude())));
}
return true;
}
示例22
@Override
public boolean onMarkerClick(Marker marker) {
if (null == marker.getTitle() || marker.getTitle().isEmpty()) {
return true;
}
showAlertDialog("提示", marker.getTitle(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}, null);
return true;
}
示例23
/**
* initOverlay 设置覆盖物,这里就是地图上那个点
*/
private void initOverlay() {
LatLng ll = new LatLng(AppApplication.mMockGps.mLatitude, AppApplication.mMockGps.mLongitude);
OverlayOptions oo = new MarkerOptions().position(ll).icon(bd).zIndex(9)
.draggable(true);
mMarker = (Marker) (mBaiduMap.addOverlay(oo));
}
示例24
@Override
public final boolean onMarkerClick(Marker marker) {
if (!mOverlayList.contains(marker)) {
return false;
}
if (marker.getExtraInfo() != null) {
return onPoiClick(marker.getExtraInfo().getInt("index"));
}
return false;
}
示例25
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例26
@Override
public final boolean onMarkerClick(Marker marker) {
if (!mOverlayList.contains(marker)) {
return false;
}
if (marker.getExtraInfo() != null) {
return onPoiClick(marker.getExtraInfo().getInt("index"));
}
return false;
}
示例27
public final boolean onMarkerClick(Marker marker) {
if (mOverlayList != null && mOverlayList.contains(marker)) {
return onBusStationClick(mOverlayList.indexOf(marker));
} else {
return false;
}
}
示例28
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例29
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}
示例30
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (marker.getExtraInfo() != null) {
onRouteNodeClick(marker.getExtraInfo().getInt("index"));
}
}
}
return true;
}