-4

我目前正在研究试图帮助在地图上定位各种地标的项目。目前我已经保存了 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 )));



       }

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

4

1 回答 1

2

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

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

从网址:

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

如何从 URL 保存图像的示例:

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();
    }

}
于 2013-07-07T19:51:47.383 回答