Sloppy's Blog

Cocos2d-x集成高德地图

在某些项目里,或者游戏项目里。偶尔要显示一下地图,怎么办,这里稍微研究了一下Cocos2d-x集成高德地图,目前只实现了。接入2D的,3D的还没有试过,目前只测试了Android项目。

申请开发KEY

请自行打开网站,申请http://developer.amap.com/,创建好项目。拿到KEY后。开始创建Cocos2d项目

接入项目

如果创建Cocos2d-x项目。就不详细说了。需要把下面的几个Jar包放入Android Lib包:
cryptopp_1

配置Java Build Path

编译代码

重载AppActivity的onCreate方法,内容如下:

    private   MapView mMapView = null;
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        mMapView = new MapView(this.getBaseContext());
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(800, 1200);
        mMapView.setLayoutParams(layoutParams);

        //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
        mMapView.onCreate(savedInstanceState);
        this.mFrameLayout.addView(mMapView);

    }
    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        mMapView.onDestroy();
    }

    protected void onResume(){
        super.onResume();
        mMapView.onResume();
    }
    protected void onPause() {
        super.onPause();
        //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
        mMapView.onPause();
    }
     protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
        mMapView.onSaveInstanceState(outState);
     }

配置AndroidManifest.xml文件,添加权限:

1
2
3
4
5
6
7
8
9
10
11
12
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="com.android.vending.CHECK_LICENSE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.BLUETOOTH" />

在XML Application节点中间添加:

1
2
<meta-data android:name="com.amap.api.v2.apikey" android:value="5c47b0c32d838f2ad503da355e175ba5"></meta-data>

修改你的包名为申请APP时的包名即可。打包,Run到手机。