为什么我似乎不能使用从 ASP.net 生成的带有 Google 地图静态 API 标记的自定义图标

Why cant I seem to use Custom Icons generated from ASP.net with Google Map Static API Markers

目前我有我的 asp.net 代码生成这个 URL:

https://maps.googleapis.com/maps/api/staticmap?center=57.145329,-2.10066&zoom=13&size=600x300&maptype=roadmap&markers=icon:http://localhost:63709/ShowMapIcon.ashx?id=21|57.145329,-2.10066&key=AIzaSyCysdGK0acTzKqW01IPvUanvPwFSXfX-NE

(现在显然这对其他任何人都不起作用,因为它目前在本地托管)

这会生成这张图片:

现在如果我更换 “http://localhost:63709/ShowMapIcon.ashx?id=21

https://www.megaadresse.com/images/icons/google-maps.png

然后就可以了: https://maps.googleapis.com/maps/api/staticmap?center=57.145329,-2.10066&zoom=13&size=600x300&maptype=roadmap&markers=icon:https://www.megaadresse.com/images/icons/google-maps.png|57.145329,-2.10066&key=AIzaSyCysdGK0acTzKqW01IPvUanvPwFSXfX-NE

(你可以测试:))

但如果我直接去:

http://localhost:63709/ShowMapIcon.ashx?id=21

然后我看到图像:

那么为什么我生成的 link 不起作用?经过反复试验,我发现标记图像必须低于 64*64pix,因此为了排除任何其他怪异现象,我将 megaadresse 图像上传到我们的数据库,并从我的 asp.net 地址和网址,它们看起来相同:

我最好的猜测是,因为 ShowMapIcon.ashx.cs 本身是从数据库中的字节生成该图像(我不知道为什么这样做,遗留代码)所以发生的事情不知何故,地图是在showmapicon?

之前生成的

但这也可能是与 asp.net 的句法冲突(我将看看是否可以围绕它编写一些测试)

或者我完全误解了 google api??

如果有人有建议我将不胜感激

注意:我正在尝试在 PDF 中嵌入 google 地图图像,因此所有这些都将进入 ITextsharp 图像单元格的 url,所以我最好将逻辑保持在以我可以发送 ITextsharp 的 img 标记有效 url 结尾的格式中。所以它需要像下面的代码片段中那样工作:

<img src= "https://maps.googleapis.com/maps/api/staticmap?center=57.145329,-2.10066&zoom=13&size=600x300&maptype=roadmap&markers=icon:https://www.megaadresse.com/images/icons/google-maps.png|57.145329,-2.10066&key=AIzaSyCysdGK0acTzKqW01IPvUanvPwFSXfX-NE">

首先,Google API 如何知道本地主机是什么? Google 地图请求正在关闭并从 Google 服务器检索所述位置的地图,然后尝试从它没有引用的图像创建自定义标记,因为它是您工作网络的本地