当前位置:编程学习 > wap >>

百度地图嵌入app里面

 Intent intent = null;
        intent = new Intent();
intent.setClass(MilkMapActivity.this, LocationActivity.class);
this.startActivity(intent);
        
        //PoiSearchActivity poiSearchActivity = new PoiSearchActivity();
        intent = new Intent();
        intent.setClass(MilkMapActivity.this, PoiSearchActivity.class);
        
        MilkMapActivity.this.startActivity(intent);
   我这样在一个activity里面启动另外两个activity:LocationActivity和PoiSearchActivity行不行?
总是报空指针错误!
求大神帮助


我是菜鸟一只 --------------------编程问答-------------------- 源代码如下:package com.vison.milkmap;

import android.os.Bundle;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MKAddrInfo;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKEvent;
import com.baidu.mapapi.MKPoiResult;
import com.baidu.mapapi.MKSearch;
import com.baidu.mapapi.MKSearchListener;
import com.baidu.mapapi.MKSuggestionResult;
import com.baidu.mapapi.MKTransitRouteResult;
import com.baidu.mapapi.MKWalkingRouteResult;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.PoiOverlay;

public class PoiSearchActivity extends MapActivity {
MKSearch myMKSearch = new MKSearch();  
BMapManager mBMapManager = null;

MapView mMapView = (MapView)findViewById(R.id.bmapsView);
       
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_milk_map);
        
//        mBMapManager = new BMapManager(getApplication());
//        mBMapManager.init("577847471455B7E58C3F08828DB22023664F4A73",null);
//        super.initMapActivity(mBMapManager);
        
       //mMapView = (MapView)findViewById(R.id.bmapsView);
      //  mMapView.setBuiltInZoomControls(true);//添加默认的缩放控件
      
       // MapController mMapController = mMapView.getController();
       // mMapController.setZoom(16); // 设置地图的级别  ,12适合小地图        
        
        myMKSearch = new MKSearch();
        mBMapManager = new BMapManager(getApplication());
        
        myMKSearch.init(mBMapManager, new MKSearchListener(){
        
public void onGetPoiResult(MKPoiResult result, int arg1, int arg2) {
if(result == null){
return;
}
PoiOverlay poioverlay = new PoiOverlay(PoiSearchActivity.this, mMapView);
poioverlay.setData(result.getAllPoi());
mMapView.getOverlays().add(poioverlay);

mMapView.getController().animateTo(result.getPoi(0).pt);//手动设定
mMapView.invalidate();
}

public void onGetPermisssionState(int error){
if(error == MKEvent.ERROR_PERMISSION_DENIED){
//permission is not exist
}
}

public void onGetNetWorkState(int error){
if(error == MKEvent.ERROR_NETWORK_CONNECT){
//connection is wrong
}
}
        
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {

}

public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {

}

public void onGetDrivingRouteResult(MKDrivingRouteResult arg0,
int arg1) {

}


public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {

}

public void onGetTransitRouteResult(MKTransitRouteResult arg0,
int arg1) {

}

public void onGetWalkingRouteResult(MKWalkingRouteResult arg0,
int arg1) {

}

});
        //myMKSearch.poiSearchNearBy("KFC", new GeoPoint((int) (121.480161 * 1E6), (int) (31.239438 * 1E6)), 5000);
        //myMKSearch.poiSearchInbounds("薇姿", new GeoPoint((int)(121.480362 * 1E6),(int)(31.24061 * 1E6)), new GeoPoint((int)(121.444185 * 1E6),(int)(31.200719 * 1E6)));
        myMKSearch.poiSearchInCity("上海", "上海药房");  
        
    }

@Override
protected boolean isRouteDisplayed() {
return false;
}

}




--------------------编程问答-------------------- package com.vison.milkmap;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKEvent;
import com.baidu.mapapi.MKPoiResult;
import com.baidu.mapapi.MKSearch;
import com.baidu.mapapi.MKSearchListener;
import com.baidu.mapapi.MKSuggestionResult;
import com.baidu.mapapi.MKTransitRouteResult;
import com.baidu.mapapi.MKWalkingRouteResult;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.PoiOverlay;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MilkMapActivity extends MapActivity {

    BMapManager mBMapManager = null;
    Button satelliteBtn = null;//卫星地图按钮
    Button trafficBtn = null;//交通地图按钮
    MapView mMapView = null;
    MKSearch myMKSearch = null;
   

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_milk_map);
        
        mBMapManager = new BMapManager(getApplication());
        mBMapManager.init("577847471455B7E58C3F08828DB22023664F4A73",null);
        super.initMapActivity(mBMapManager);
        
        mMapView = (MapView)findViewById(R.id.bmapsView);
        mMapView.setBuiltInZoomControls(true);//添加默认的缩放控件
       
        MapController mMapController = mMapView.getController();
//      GeoPoint point = new GeoPoint((int)(121.480161 * 1E6),(int)(31.239438 * 1E6));//人民广场坐标
//      mMapController.setCenter(point);
        mMapController.setZoom(16);
        
        
        Intent intent = null;
        intent = new Intent();
intent.setClass(MilkMapActivity.this, LocationActivity.class);
this.startActivity(intent);
        
        //PoiSearchActivity poiSearchActivity = new PoiSearchActivity();
        intent = new Intent();
        intent.setClass(MilkMapActivity.this, PoiSearchActivity.class);
        
        MilkMapActivity.this.startActivity(intent);
    }
    
    // 设置地图的级别  ,12适合小地图        
        //mMapView.getOverlays().add(new MyOverlay());
        
        
//        /*卫星地图按钮*/
//        satelliteBtn = (Button)findViewById(R.id.satelliteBTN);
//        Button.OnClickListener clickListener = new Button.OnClickListener(){
//        
// public void onClick(View v) {
// mMapView.setSatellite(true);
// //mMapView.invalidate();
// }
//        };
//        satelliteBtn.setOnClickListener( clickListener);      
//        
//        
//        /*交通地图按钮*/
//        trafficBtn = (Button)findViewById(R.id.satelliteBTN);
//        Button.OnClickListener clickListener2 = new Button.OnClickListener(){
//
// public void onClick(View v) {
// mMapView.setTraffic(true);
// //mMapView.invalidate();
// }
//        
//        };
//        trafficBtn.setOnClickListener(clickListener2);
//}
//        
        /*POI搜索*/
       /* myMKSearch = new MKSearch();
        
        
        
        myMKSearch.init(mBMapManager, new MKSearchListener(){
        
public void onGetPoiResult(MKPoiResult result, int arg1, int arg2) {
if(result == null){
return;
}
PoiOverlay poioverlay = new PoiOverlay(MilkMapActivity.this, mMapView);
poioverlay.setData(result.getAllPoi());
mMapView.getOverlays().add(poioverlay);

mMapView.getController().animateTo(result.getPoi(0).pt);//手动设定
mMapView.invalidate();
}

public void onGetPermisssionState(int error){
if(error == MKEvent.ERROR_PERMISSION_DENIED){
//permission is not exist
}
}

public void onGetNetWorkState(int error){
if(error == MKEvent.ERROR_NETWORK_CONNECT){
//connection is wrong
}
}
        
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {

}

public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {

}

public void onGetDrivingRouteResult(MKDrivingRouteResult arg0,
int arg1) {

}


public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {

}

public void onGetTransitRouteResult(MKTransitRouteResult arg0,
int arg1) {

}

public void onGetWalkingRouteResult(MKWalkingRouteResult arg0,
int arg1) {

}

});
        //myMKSearch.poiSearchNearBy("KFC", new GeoPoint((int) (121.480161 * 1E6), (int) (31.239438 * 1E6)), 5000);
        //myMKSearch.poiSearchInbounds("薇姿", new GeoPoint((int)(121.480362 * 1E6),(int)(31.24061 * 1E6)), new GeoPoint((int)(121.444185 * 1E6),(int)(31.200719 * 1E6)));
        myMKSearch.poiSearchInCity("上海", "上海药房");  
        
    }*/


protected boolean isRouteDisplayed() {
return false;
}

protected void onDestroy(){
if(mBMapManager != null){
mBMapManager.destroy();
mBMapManager = null;
}
super.onDestroy();
}

protected void onPause(){
if(mBMapManager != null){
mBMapManager.stop();
}
super.onPause();
}

protected void onResume(){
if(mBMapManager != null){
mBMapManager.start();
}
super.onResume();
}

    
}




package com.vison.milkmap;

import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.MyLocationOverlay;


public class LocationActivity extends MapActivity {

BMapManager mBMapManager = null;

MapView mMapView = null;
LocationListener mLocationListener = null;//onResume时注册此listener,onPause时需要Remove
MyLocationOverlay mLocationOverlay = null; //定位图层

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_milk_map);
        
        mBMapManager = new BMapManager(getApplication());
        mBMapManager.init("577847471455B7E58C3F08828DB22023664F4A73",null);
        super.initMapActivity(mBMapManager);
        
        mMapView = (MapView)findViewById(R.id.bmapsView);
        mMapView.setBuiltInZoomControls(true);
        //设置在缩放动画过程中也显示overlay,默认为不绘制
        mMapView.setDrawOverlayWhenZooming(true);
        
// 添加定位图层
        mLocationOverlay = new MyLocationOverlay(this, mMapView);
mMapView.getOverlays().add(mLocationOverlay);

        // 注册定位事件
        mLocationListener = new LocationListener(){

@Override
public void onLocationChanged(Location location) {
if (location != null){
GeoPoint pt = new GeoPoint((int)(location.getLatitude()*1e6),
(int)(location.getLongitude()*1e6));
mMapView.getController().animateTo(pt);
}
}

@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub

}
        };
}

@Override
protected void onPause() {
BMapApi app = (BMapApi)this.getApplication();
app.mBMapManager.getLocationManager().removeUpdates((com.baidu.mapapi.LocationListener) mLocationListener);
mLocationOverlay.disableMyLocation();
        mLocationOverlay.disableCompass(); // 关闭指南针
//mMapView.mBmapManager;
super.onPause();
}

protected void onResume() {
BMapApi app = (BMapApi)this.getApplication();
// 注册定位事件,定位后将地图移动到定位点
        app.mBMapManager.getLocationManager().requestLocationUpdates((com.baidu.mapapi.LocationListener) mLocationListener);
        mLocationOverlay.enableMyLocation();
        
        mLocationOverlay.enableCompass(); // 打开指南针
//mMapView.mBMapManager.start();
super.onResume();
}

@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}


}
--------------------编程问答-------------------- 大神们帮帮我,我可以以身相许!!!! --------------------编程问答-------------------- 我第一次见这样的 = =
 一个Intent执行跳转到两个界面,,
 那它到底跳到哪个界面呢。。。

 你哪报空了 --------------------编程问答-------------------- 他是在同一个mapview里面跳转,这样不可以?
引用 4 楼  的回复:
我第一次见这样的 = =
 一个Intent执行跳转到两个界面,,
 那它到底跳到哪个界面呢。。。

 你哪报空了
--------------------编程问答-------------------- import com.baidu.mapapi.MKSuggestionResult;

这个怎么引用不进来
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,