码迷,mamicode.com
首页 > 移动开发 > 详细

GoogleMap开发-Android

时间:2014-09-11 19:27:52      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:android

GoogleMap开发,做个小结,网上很少关于这个的资料,刚学习时,头疼了半天,贴出代码,供大家参考

1、布局文件main.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >


 <fragment

        android:id="@+id/map_layout_map"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:layout_margin="0.5dip"

        class="com.google.android.gms.maps.SupportMapFragment" />

</LinearLayout>



2、Acivity中

public class MapActivity extends FragmentActivity {

private GoogleMap map;

private SupportMapFragment mapFragment;

 

 

 


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

 

setContentView(R.layout.main);

initControls();

initMap();

location(application.getLatitude(), application.getLongitude());

displayAllLocation();


}

private void initControls() {

 

FragmentManager manager = getSupportFragmentManager();

mapFragment = (SupportMapFragment) manager

.findFragmentById(R.id.map_layout_map);

map = mapFragment.getMap();

}

/**

* Initialize the map

*/

private void initMap() {

try {

 

map.clear();

map.setMyLocationEnabled(true);

map.setIndoorEnabled(true);

map.setMapType(GoogleMap.MAP_TYPE_NORMAL);

// map.setTrafficEnabled(true);

map.setOnMapLongClickListener(onMapLongClickListener);

// mark视图标记点击事件

map.setOnMarkerClickListener(onMarkerClikcListener);

 

  } catch (Exception e) {

  }

}

/**

  * 定位

  * 

  * 

  */

public void location(double lat, double lng) {

try {

LatLng latLng = new LatLng(lat, lng);

map.moveCamera(CameraUpdateFactory.newLatLng(latLng));

map.moveCamera(CameraUpdateFactory.zoomTo(10));

} catch (Exception e) {

CommonHelper.log(this.getClass().getName(),

"searchLocation:" + e.getMessage());

}

}


 private void displayAllLocation() {

try {

map.clear();

LatLng at = null;



if (entity.getLat() != 0.0 || entity.getLng() != 0.0) {




MarkerOptions options = new MarkerOptions();

BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory

.fromResource(R.drawable.ic_map_loaction);

options.icon(bitmapDescriptor);

LatLng latlng = new LatLng(entity.getLat(), entity.getLng());

options.position(latlng);

options.visible(true);

Marker marker=map.addMarker(options);

at = latlng;

map.moveCamera(CameraUpdateFactory.newLatLng(at));

map.moveCamera(CameraUpdateFactory.zoomTo(10));

 


}



// map.clear();

} catch (Exception e) {

CommonHelper.log(this.getClass().getName(), "displayAllLocation:"

+ e.getMessage());

}

}


 private OnMarkerClickListener onMarkerClikcListener = new OnMarkerClickListener() {


@Override

public boolean onMarkerClick(Marker arg0) {

MapInforWindow info = new MapInforWindow(MapActivity.this);

 

map.setInfoWindowAdapter(info);

 

return false;


}

};

}



3、MapInforWindow

 

public class MapWOInforWindow implements InfoWindowAdapter{
private Context context;

 

public MapWOInforWindow(Context context ) {
this.context = context;
 

}



@Override
public View getInfoContents(Marker arg0) {
return null;
}


@Override
public View getInfoWindow(Marker arg0) {
View view = LayoutInflater.from(context).inflate(
R.layout.map_wo_inforwindow_layout, null);
TextView tvTitle=(TextView)view.findViewById(R.id.map_wo_infowindow_layout_tv_title);
tvTitle.setText("Titlte");
 
         
return view;
}
 
   
}


4、如果希望进地图页面,直接弹出InforWindow,可以这样写

private void displayAllLocation() {

 try {

 map.clear();

 LatLng at = null;



 if (entity.getLat() != 0.0 || entity.getLng() != 0.0) {




 MarkerOptions options = new MarkerOptions();

 BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory

 .fromResource(R.drawable.ic_map_loaction);

 options.icon(bitmapDescriptor);

 LatLng latlng = new LatLng(entity.getLat(), entity.getLng());

 options.position(latlng);

 options.visible(true);

 Marker marker=map.addMarker(options);

 at = latlng;

 map.moveCamera(CameraUpdateFactory.newLatLng(at));

 map.moveCamera(CameraUpdateFactory.zoomTo(10));

  onMarkerClikcListener.onMarkerClick(marker);//加这句

                                 

 


 }



 // map.clear();

 } catch (Exception e) {

 CommonHelper.log(this.getClass().getName(), "displayAllLocation:"

 + e.getMessage());

 }

 }

private OnMarkerClickListener onMarkerClikcListener = new OnMarkerClickListener() {


 @Override

 public boolean onMarkerClick(Marker arg0) {

 MapInforWindow info = new MapInforWindow(MapActivity.this);

 

 map.setInfoWindowAdapter(info);

 

                         arg0.showInfoWindow();//加这句

 return false;


 }

 };






GoogleMap开发-Android

标签:android

原文地址:http://blog.csdn.net/xiaoluoli88/article/details/39209101

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!