⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpscanvas.java~99~

📁 一个用于手机蓝牙通讯的程序
💻 JAVA~99~
字号:
package gps;
import java.io.IOException;

import gps.datatypes.Record;
import gps.exceptions.EmptyBufferException;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;


public class GPSCanvas extends Canvas implements Runnable {

	public static String  s =null;

	private final static String  fileName = "gps";
	private GPSReader gpsReader;
	private MIDlet midlet;
	private String url = "";

	Record recorder = null;

        private int m_screenWidth = getWidth();
        private int m_screenHeight = getHeight();
        private int m_imageWidth;
        private int m_imageHeight;

        private int m_x;
        private int m_y;

        private Image image;
        private Image m_screenBuf;
        private Graphics m_bufferGraphics;
        int [] GPSPoint;
        double a = 0;
        double b = 0;

	public GPSCanvas(MIDlet midlet, String url) {
          this.midlet = midlet;
          this.url = url;
          recorder = new Record();
          ////
          initPara();
          m_x = (m_screenWidth - m_imageWidth) / 2;
          m_y = (m_screenHeight - m_imageHeight) / 2;
          m_screenBuf = Image.createImage(m_screenWidth, m_screenHeight); // Front graphics m_screenBuffer
          m_bufferGraphics = m_screenBuf.getGraphics();
          m_bufferGraphics.setColor(0, 0, 0);
          m_bufferGraphics.fillRect(0, 0, m_screenWidth, m_screenHeight);

        }
        private Image loadImage(){
          Image image = null;
           try {
              image = Image.createImage("/image/part.jpg");
            }
            catch (IOException ex) {
              System.out.println("image file not found");
              ex.printStackTrace();
            }

          return image;
        }
        private void initPara(){
          image = loadImage();
          m_imageWidth = image.getWidth();
          m_imageHeight = image.getHeight();

        }

//	public Record getRecorder (){
//          try {
//       //     GPSRecord.test();
//            recorder = GPSRecord.getRecord();
//          } catch (EmptyBufferException e) {
//         	e.printStackTrace();
//		return null;
//          }
//          return recorder;
//	}

	public void drawGPS(Graphics g)
	{
          m_bufferGraphics.drawImage(image, m_x, m_y,
                                     m_bufferGraphics.TOP | m_bufferGraphics.LEFT);
          m_bufferGraphics.setColor(255, 0, 0);

          g.setColor(255, 0, 0);
          Font f = Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD,
                                Font.SIZE_LARGE);
          g.setFont(f);
          g.drawString(m_x + " " + m_y, 0, 0, Graphics.TOP | Graphics.LEFT);
//          recorder = getRecorder();
          g.setColor(255, 255, 0);
          a = Double.parseDouble(recorder.longitude);
          b = Double.parseDouble(recorder.lattitude);

          GPSPoint = changeCoorGPS(a,b);
          g.setColor(255,0,0);
          if (GPSPoint[0] != 0 && GPSPoint[1] != 0) {
            m_bufferGraphics.fillRect(m_x + GPSPoint[0], m_y + GPSPoint[1], 2, 2);
//            g.drawString("高度: " + recorder.altitude, 0, 40, g.LEFT | g.TOP);
//            g.drawString("卫星: " + recorder.satelliteCount, 0, 60, g.LEFT | g.TOP);
//            g.drawString("时间: " + recorder.dateTimeOfFix, 0, 80, g.LEFT | g.TOP);
          }
          g.drawImage(m_screenBuf, 0, 0, Graphics.TOP | Graphics.LEFT);
          if (s != null) {
            g.drawString(s, 0, 50, g.LEFT | g.TOP);
          }
          g.drawString("经度: " + a, 0, 80, g.LEFT | g.TOP);
          g.drawString("纬度: " + b, 0, 100, g.LEFT | g.TOP);

        }
  private int[] changeCoorGPS(double x,double y)
  {
    int coor[] = new int[2];
    int imageWidth = 400;
    int imageHeight = 400;

//          System.out.println((GPSCoor.imgUpLeftX < x && x < GPSCoor.imgDownRightX
//              && GPSCoor.imgDownRightY < y && GPSCoor.imgUpLeftY > y));

    if (GPSCoor.imgUpLeftX < x && x < GPSCoor.imgDownRightX
        && GPSCoor.imgDownRightY < y && GPSCoor.imgUpLeftY > y) {
      coor[0] = (int) (imageWidth * (x - GPSCoor.imgUpLeftX) /
                       (GPSCoor.imgDownRightX - GPSCoor.imgUpLeftX));
      coor[1] = (int) (imageHeight * ( GPSCoor.imgUpLeftY-y) /
                       (GPSCoor.imgUpLeftY - GPSCoor.imgDownRightY ));
    System.out.println(coor[0]);
    System.out.println(coor[1]);
    }

    return coor;
  }


  public void start()
  {
     gpsReader = new GPSReader(url);
     gpsReader.start();
     new Thread(this).start();
  }

  public void run() {
          while(true)
          {
                  repaint();
                  try {
                          Thread.sleep(10);
                  } catch (InterruptedException e) {
                          // TODO Auto-generated catch block
                          e.printStackTrace();
                  }
          }
  }

  protected void paint(Graphics g) {
    drawGPS(g);
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -