Google maps 谷歌地图API为一张地图生成多幅图像,这正常吗?

Google maps 谷歌地图API为一张地图生成多幅图像,这正常吗?,google-maps,google-chrome,asp.net-core,google-maps-api-3,Google Maps,Google Chrome,Asp.net Core,Google Maps Api 3,我有一个特别的问题要问谷歌地图… 我正在使用asp.net core 2.2开发一个公共门户,并使用Google Map API(带键)在某些页面上显示Google地图。 我用坐标创建地图(Sat),并用地址作为标题设置标记。 您可以在下面的屏幕截图上看到,任何操作都是正确的(1) 我现在正在使用Google Chrom(开发环境)详细检查应用程序,因此看到了一种特殊的(至少对我来说)行为。 创建映射后,GC显示生成了两个动态条目: khms0.googleapis.com(2)和khms1.g

我有一个特别的问题要问谷歌地图…
我正在使用asp.net core 2.2开发一个公共门户,并使用Google Map API(带键)在某些页面上显示Google地图。
我用坐标创建地图(Sat),并用地址作为标题设置标记。
您可以在下面的屏幕截图上看到,任何操作都是正确的(1)
我现在正在使用Google Chrom(开发环境)详细检查应用程序,因此看到了一种特殊的(至少对我来说)行为。
创建映射后,GC显示生成了两个动态条目:
khms0.googleapis.com(2)khms1.googleapis.com(3)
在这两个条目下,指向图像(2.1)(3.1)的各种链接,其中一些图像(例如(2.2))靠近原始位置(1)。 我用GC调查了一些其他(国外)网页(带有地图),发现了相同的行为(相同的多个图像链接)

代码被截断:

  <script type="text/javascript">
        function GMEinfuegen() {
        var address = "@Model.cPAB_Strasse" + "," + "@Model.cPAB_PLZ" + " " + "@Model.cPAB_Ort"
        var addressTitle =  "@Html.Raw(@Model.cPAB_Firma)" + ", "  +   "@Html.Raw(@Model.cPAB_Strasse)" + ", " + "@Html.Raw(@Model.cPAB_PLZ)" + " " + "@Html.Raw(@Model.cPAB_Ort)"
        //
        var cLatituede = @Model.cPAB_Latituede
        var cLongituede = @Model.cPAB_Longituede
            function initMap() {
                @{ var tagname1 = "#map" + Model.PBA_Kundennummer;}
                var map = new google.maps.Map($("@tagname1")[0], {
                    zoom: 15,
                    center: { lat: cLatituede, lng: cLongituede }, 
                    mapTypeId: google.maps.MapTypeId.HYBRID,
                });
                var marker1 = new google.maps.Marker({
                    map: map,
                    draggable: false, 
                    title: addressTitle,
                    animation: google.maps.Animation.DROP,
                    position: { lat: cLatituede, lng: cLongituede }
                });
            }
        initMap()
        } 
</script>

函数GMEinfuegen(){
var address=“@Model.cPAB_Strasse”+,“+”@Model.cPAB_PLZ”+“+”@Model.cPAB_-Ort”
var addressTitle=“@Html.Raw(@Model.cPAB_Firma)”+,“+”@Html.Raw(@Model.cPAB_Strasse)”+,“+”@Html.Raw(@Model.cPAB_PLZ)”+“+”@Html.Raw(@Model.cPAB_-Ort)”
//
var clatiteede=@Model.cPAB_Latituede
var cLongituede=@Model.cPAB_Longituede
函数initMap(){
@{var tagname1=“#map”+Model.PBA_kundennumer;}
var map=new google.maps.map($(“@tagname1”)[0]{
缩放:15,
中心:{lat:clatitede,lng:cLongituede},
mapTypeId:google.maps.mapTypeId.HYBRID,
});
var marker1=新的google.maps.Marker({
地图:地图,
可拖动:错误,
标题:addressTitle,
动画:google.maps.animation.DROP,
位置:{lat:clatitede,lng:cLongituede}
});
}
initMap()
} 
问题:

  • 这是正常的行为吗
  • 有人能解释下这些图片的原因吗
  • 从一段时间以来,API调用必须支付给谷歌(如果免费金额已经超过)-我想(希望),额外生成的图像不算作API调用
提到您的问题,确实,这是谷歌地图JavaScript API的预期行为。地图由多个平铺图像组成,每个图像的大小为256x256像素。因此,API向平铺图像端点
khms0.googleapis.com
khms1.googleapis.com
发出多个请求,以获得给定视口和缩放级别所需的平铺。我建议看一看地图平铺坐标文档,它详细解释了这些东西

每次更改缩放或平移地图时,API都会向平铺图像端点发送新请求并接收新平铺

关于付款,谷歌地图JavaScript API不收取瓷砖图像或任何其他操作(如缩放、平移等)的费用。付款基于地图加载。Google将在代码中创建新的map实例理解为map load。换句话说,他们为每一个
新的google.maps.Map(选项)
调用您的JavaScript代码向您收费

在以下常见问题解答中,您可以找到有关地图加载的更详细说明:

文档的使用和计费部分也对其进行了解释

正如您所看到的,SKU:DynamicMap是在调用
new google.maps.Map(options)
后生成的


我希望我的回答能澄清你的疑虑

@感谢您的有用且完整的回答-很高兴看到这样的特殊问题在SO中以很好的质量在短时间内得到了回答:-)