欢迎来到皮皮网官网

【muduo源码看完多久】【android 2.3.4源码】【鼠标精灵源码】java写地图程序源码_java写地图程序源码怎么写

时间:2024-11-15 01:52:22 来源:quick ping源码

1.java如何实现电子地图的定位
2.如何做一个简单的java地图编辑器

java写地图程序源码_java写地图程序源码怎么写

java如何实现电子地图的定位

       CellInfoManager

       import java.lang.reflect.Method;

       import java.util.Iterator;

       import java.util.List;

       import org.json.JSONArray;

       import org.json.JSONException;

       import org.json.JSONObject;

       import android.content.Context;

       import android.telephony.CellLocation;

       import android.telephony.NeighboringCellInfo;

       import android.telephony.PhoneStateListener;

       import android.telephony.TelephonyManager;

       import android.telephony.gsm.GsmCellLocation;

       import android.util.Log;

       public class CellInfoManager {

        private int asu;

        private int bid;

        private int cid;

        private boolean isCdma;

        private boolean isGsm;

        private int lac;

        private int lat;

        private final PhoneStateListener listener;

        private int lng;

        private int mcc;

        private int mnc;

        private int nid;

        private int sid;

        private TelephonyManager tel;

        private boolean valid;

        private Context context;

       public CellInfoManager(Context paramContext) {

        this.listener = new CellInfoListener(this);

        tel = (TelephonyManager) paramContext.getSystemService(Context.TELEPHONY_SERVICE);

        this.tel.listen(this.listener,写地序源a写写muduo源码看完多久 PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_SIGNAL_STRENGTH);

        context = paramContext;

        }

       public static int dBm(int i) {

        int j;

        if (i >= 0 && i <= )

        j = i * 2 + -;

        else

        j = 0;

        return j;

        }

       public int asu() {

        return this.asu;

        }

       public int bid() {

        if (!this.valid)

        update();

        return this.bid;

        }

       public JSONObject cdmaInfo() {

        if (!isCdma()) {

        return null;

        }

        JSONObject jsonObject = new JSONObject();

        try {

        jsonObject.put("bid", bid());

        jsonObject.put("sid", sid());

        jsonObject.put("nid", nid());

        jsonObject.put("lat", lat());

        jsonObject.put("lng", lng());

        } catch (JSONException ex) {

        jsonObject = null;

        Log.e("CellInfoManager", ex.getMessage());

        }

        return jsonObject;

        }

       public JSONArray cellTowers() {

        JSONArray jsonarray = new JSONArray();

       int lat;

        int mcc;

        int mnc;

        int aryCell[] = dumpCells();

        lat = lac();

        mcc = mcc();

        mnc = mnc();

        if (aryCell == null || aryCell.length < 2) {

        aryCell = new int[2];

        aryCell[0] = cid;

        aryCell[1] = -;

        }

        for (int i = 0; i < aryCell.length; i += 2) {

        try {

        int j2 = dBm(i + 1);

        JSONObject jsonobject = new JSONObject();

        jsonobject.put("cell_id", aryCell[i]);

        jsonobject.put("location_area_code", lat);

        jsonobject.put("mobile_country_code", mcc);

        jsonobject.put("mobile_network_code", mnc);

        jsonobject.put("signal_strength", j2);

        jsonobject.put("age", 0);

        jsonarray.put(jsonobject);

        } catch (Exception ex) {

        ex.printStackTrace();

        Log.e("CellInfoManager", ex.getMessage());

        }

        }

        if (isCdma())

        jsonarray = new JSONArray();

        return jsonarray;

       }

       public int cid() {

        if (!this.valid)

        update();

        return this.cid;

        }

       public int[] dumpCells() {

        int[] aryCells;

        if (cid() == 0) {

        aryCells = new int[0];

        return aryCells;

        }

       List<NeighboringCellInfo> lsCellInfo = this.tel.getNeighboringCellInfo();

        if (lsCellInfo == null || lsCellInfo.size() == 0) {

        aryCells = new int[1];

        int i = cid();

        aryCells[0] = i;

       æ£€ä¸¾è¡¥å……回答:

        return aryCells;

        }

        int[] arrayOfInt1 = new int[lsCellInfo.size() * 2 + 2];

        int j = 0 + 1;

        int k = cid();

        arrayOfInt1[0] = k;

        int m = j + 1;

        int n = asu();

        arrayOfInt1[j] = n;

        Iterator<NeighboringCellInfo> iter = lsCellInfo.iterator();

        while (true) {

        if (!iter.hasNext()) {

        break;

        }

        NeighboringCellInfo localNeighboringCellInfo = (NeighboringCellInfo) iter.next();

        int i2 = localNeighboringCellInfo.getCid();

        if ((i2 <= 0) || (i2 == ))

        continue;

        int i3 = m + 1;

        arrayOfInt1[m] = i2;

        m = i3 + 1;

        int i4 = localNeighboringCellInfo.getRssi();

        arrayOfInt1[i3] = i4;

        }

        int[] arrayOfInt2 = new int[m];

        System.arraycopy(arrayOfInt1, 0, arrayOfInt2, 0, m);

        aryCells = arrayOfInt2;

        return aryCells;

       }

       public JSONObject gsmInfo() {

        if (!isGsm()) {

        return null;

        }

        JSONObject localObject = null;

        while (true) {

        try {

       æ£€ä¸¾è¡¥å……回答: JSONObject localJSONObject1 = new JSONObject();

        String str1 = this.tel.getNetworkOperatorName();

        localJSONObject1.put("operator", str1);

        String str2 = this.tel.getNetworkOperator();

        if ((str2.length() == 5) || (str2.length() == 6)) {

        String str3 = str2.substring(0, 3);

        String str4 = str2.substring(3, str2.length());

        localJSONObject1.put("mcc", str3);

        localJSONObject1.put("mnc", str4);

        }

        localJSONObject1.put("lac", lac());

        int[] arrayOfInt = dumpCells();

        JSONArray localJSONArray1 = new JSONArray();

        int k = 0;

        int m = arrayOfInt.length / 2;

        while (true) {

        if (k >= m) {

        localJSONObject1.put("cells", localJSONArray1);

        localObject = localJSONObject1;

        break;

        }

        int n = k * 2;

        int i1 = arrayOfInt[n];

        int i2 = k * 2 + 1;

        int i3 = arrayOfInt[i2];

        JSONObject localJSONObject7 = new JSONObject();

        localJSONObject7.put("cid", i1);

        localJSONObject7.put("asu", i3);

        localJSONArray1.put(localJSONObject7);

        k += 1;

        }

        } catch (JSONException localJSONException) {

        localObject = null;

        }

        }

        }

       public boolean isCdma() {

        if (!this.valid)

        update();

如何做一个简单的java地图编辑器

       åœ°å›¾ç¼–辑器思路如下: 

       è¿™ä¸ªå°åœ°å›¾æ˜¯3x3的,我们用汉字对它进行描述: 

       çŸ³å¤´ 空白 雪地

       ç©ºç™½ 砖墙 空白

       æ°´é¢ 空白 草地

       è¿™åƒä»€ä¹ˆ? 像不像二维数组.! 所以我们可以使用二维数组来存储一副地图.

       å½“然了使用汉字来描述地图, 还是太麻烦...

       æˆ‘们使用数字来存储更好.把数字和对应的图片做好一一对应的关系.比如0代表空白 1代表石头 ... 绘制地图的时候,循环二维数组,如果是1就在此处画石头,循环到0就什么也不画直接跳过..

       æ‹“展,如果还想有稍微立体点的效果, 就是比如有薄雾什么的, 那么你可以建立另外一个天气图层的二维数组, 这个数组就是绘制薄雾等天气的, 这个要最后绘制, 这样才能起到薄雾对下面地图的遮挡..

       ç¼–辑地图的时候 ,先点击一个图片,表示等下需要绘制的图片是哪一个.然后在编辑地图的时候按下鼠标代表开始开始绘制, 然后鼠标拖动到哪里就绘制到哪里, 最后松开鼠标松开, 完成绘制

       åœ°å›¾çš„保存: 二维数组可以直接把每个元素写入到文本文件里, 当然了也可以直接把整个二维数组对象都写入到文件里,使用的时候,直接读取还原即可

copyright © 2016 powered by 皮皮网   sitemap