gpt4 book ai didi

Java程序从Google下载错误的静态图像

转载 作者:行者123 更新时间:2023-12-02 02:14:02 25 4
gpt4 key购买 nike

我的 Java 程序从 Google map 下载显示路线的静态 map 图像。如果我去这个link在我的浏览器中,我得到了正确的图像,它是带有方向折线的 map 。

但是当我使用 Java 程序从同一 URL 下载图像时,我得到的是:

enter image description here

两个网址对我来说看起来都一样,我不知道出了什么问题。这是我的代码,如果有人能发现一些不合适的地方?

代码:

try {
String mapImgUrl = "https://maps.googleapis.com/maps/api/staticmap?size=300x300&path=enc:" + polyline + "&key=AIzaSyBn2qYJcHoNCgNQZv1mcycnUo06sJDZPBs";
String imageFileName = houseNumber + " " + address + ".jpg";

URL url = new URL(mapImgUrl);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(imageFileName);

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

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

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

ImageIcon imgIcon = new ImageIcon((new ImageIcon(imageFileName))
.getImage().getScaledInstance(400, 400, java.awt.Image.SCALE_SMOOTH));

SwingUtilities.invokeLater(new Runnable() {
public void run() {
JLabel labelMap = new JLabel();
labelMap.setIcon(imgIcon);
panelMap.add(labelMap);
}
});

折线数据是正确的,我将从浏览器中的 JSON 获取的数据与从程序中获取的数据进行了比较,它们匹配。这是直接来自 API 的折线数据(如果有帮助的话):

c{utHdfqJJaA`AoI\\oATo@Xe@P[R_@NYFYHs@AGAQDe@LYHGNCF?h@[Za@bBuDtA_Dp@gAR[J[@i@?SF]FIJEJAj@m@f@iAbByDlQoa@Pm@By@CS?YBSFOHKLCXOr@SbE}G~@gBfAiBdH_MjAwBFa@j@_ARYQg@kAkDIBIEEI?M@GMMQYgBiEaD{HJOH[`Hy`@d@iC{CgBgEcC}CeBb@gC

最佳答案

我认为问题是你没有对多段线进行 URL 编码。

使用:java.net.URLEncoder

String mapImgUrl = "https://maps.googleapis.com/maps/api/staticmap?size=300x300&path=enc:"
+ URLEncoder.encode(polyline, "utf-8") + "&key=<key>";

请注意,不需要字符编码的 encode(String) 方法已被弃用。另外,请确保从公共(public)包 java.net

导入

关于Java程序从Google下载错误的静态图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49545191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com