我目前正致力于帮助在地图上找到各种地标的项目。目前我已经保存了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 )));
}
我正在使用此方法打开图像。
答案 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();
}
}