我想在我的Java项目中使用Google地图

时间:2013-07-07 19:41:18

标签: java google-maps

我目前正致力于帮助在地图上找到各种地标的项目。目前我已经保存了5到6个谷歌地图图像并在我的项目中使用它们。我想要的是用户选择他的位置/兴趣的地图,并将该部分地图保存为.jpec,并将我的项目工作放在该图像上。

      int x = fc.showOpenDialog(this);
        if(x == JFileChooser.APPROVE_OPTION)
        {
             f = fc.getSelectedFile();
             str = f.getAbsolutePath();
            setTitle("Now Showing : "+str);
         lp2_1.setIcon(new ImageIcon((new ImageIcon(str)).getImage().getScaledInstance( 600, 600,  java.awt.Image.SCALE_SMOOTH )));



       }

我正在使用此方法打开图像。

1 个答案:

答案 0 :(得分:2)

如果您只想显示特定纬度经度的卫星地图图像(没有谷歌地图平移/缩放等),那么您应该查看Google Static Maps

您只需要构建一个URL字符串,然后为图像(以您喜欢的任何格式)发出HTTP请求(来自您的java实现)。您可以在网址中指定一大堆parameters来获取您所追踪的卫星图像:

来自网址:

http://maps.google.com/staticmap?center=40,26&zoom=1&size=150x112&maptype=satellite&key=ABQIAAAAgb5KEVTm54vkPcAkU9xOvBR30EG5jFWfUzfYJTWEkWk2p04CHxTGDNV791-cU95kOnweeZ0SsURYSA&format=jpg

如何从网址保存图片的示例:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;

public class SaveImageFromUrl {

    public static void main(String[] args) throws Exception {
        String imageUrl = "http://maps.google.com/staticmap?center=40,26&zoom=1&size=150x112&maptype=satellite&key=ABQIAAAAgb5KEVTm54vkPcAkU9xOvBR30EG5jFWfUzfYJTWEkWk2p04CHxTGDNV791-cU95kOnweeZ0SsURYSA&format=jpg";
        String destinationFile = "image.jpg";

        saveImage(imageUrl, destinationFile);
    }

    public static void saveImage(String imageUrl, String destinationFile) throws IOException {
        URL url = new URL(imageUrl);
        InputStream is = url.openStream();
        OutputStream os = new FileOutputStream(destinationFile);

        byte[] b = new byte[2048];
        int length;

        while ((length = is.read(b)) != -1) {
            os.write(b, 0, length);
        }

        is.close();
        os.close();
    }

}