Google Map API 为一张地图生成多张图片是否正常?
Is it normal, that the GoogleMap API generates mutiple images for one Map?
我有一个关于 Google地图的特殊问题...
我正在开发带有 asp.net 核心 2.2 的 public 门户网站,并使用 Google 地图 API(带键)在一些地图上显示 Google 地图页数。
我用坐标创建了地图(星期六),并设置了一个以地址为标题的标记。
正如您在下面的屏幕截图中所见,一切正常 ( 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>
问题:
- 这是正常行为吗?
- 有人可以解释更多图像的原因吗?
- 一段时间以来,API 电话必须支付给 google(如果免费金额已超过)- 我认为(希望),额外生成的图像不算作API打电话?
关于您的问题,确实,这是 Google 地图 JavaScript API 的预期行为。该地图由多个图块图像组成,每个图像的大小为 256x256 像素。因此,API 向平铺图像端点 khms0.googleapis.com
和 khms1.googleapis.com
发出多个请求,以获得给定视口和缩放级别所需的平铺。我建议查看详细解释这些内容的地图图块坐标文档
https://developers.google.com/maps/documentation/javascript/coordinates
每次您更改缩放比例或平移地图时,API 都会向切片图像端点发送新请求并接收新切片。
关于付款,Google 地图 JavaScript API 不通过平铺图像或任何其他操作(如缩放、平移等)收费。付款基于地图加载。 Google 理解为在您的代码中创建新地图实例的地图加载创建。换句话说,他们会根据您的 JavaScript 代码中的每个 new google.maps.Map(options)
通话向您收费。
在以下常见问题解答中,您可以找到有关地图加载的更详细说明:
https://developers.google.com/maps/faq#usage_mapload
文档的使用和计费部分也对此进行了解释
https://developers.google.com/maps/documentation/javascript/usage-and-billing#dynamic-maps
如您所见,SKU:Dynamic 映射是在调用 new google.maps.Map(options)
之后产生的。
希望我的回答能解开你的疑惑。
我有一个关于 Google地图的特殊问题...
我正在开发带有 asp.net 核心 2.2 的 public 门户网站,并使用 Google 地图 API(带键)在一些地图上显示 Google 地图页数。
我用坐标创建了地图(星期六),并设置了一个以地址为标题的标记。
正如您在下面的屏幕截图中所见,一切正常 ( 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>
问题:
- 这是正常行为吗?
- 有人可以解释更多图像的原因吗?
- 一段时间以来,API 电话必须支付给 google(如果免费金额已超过)- 我认为(希望),额外生成的图像不算作API打电话?
关于您的问题,确实,这是 Google 地图 JavaScript API 的预期行为。该地图由多个图块图像组成,每个图像的大小为 256x256 像素。因此,API 向平铺图像端点 khms0.googleapis.com
和 khms1.googleapis.com
发出多个请求,以获得给定视口和缩放级别所需的平铺。我建议查看详细解释这些内容的地图图块坐标文档
https://developers.google.com/maps/documentation/javascript/coordinates
每次您更改缩放比例或平移地图时,API 都会向切片图像端点发送新请求并接收新切片。
关于付款,Google 地图 JavaScript API 不通过平铺图像或任何其他操作(如缩放、平移等)收费。付款基于地图加载。 Google 理解为在您的代码中创建新地图实例的地图加载创建。换句话说,他们会根据您的 JavaScript 代码中的每个 new google.maps.Map(options)
通话向您收费。
在以下常见问题解答中,您可以找到有关地图加载的更详细说明:
https://developers.google.com/maps/faq#usage_mapload
文档的使用和计费部分也对此进行了解释
https://developers.google.com/maps/documentation/javascript/usage-and-billing#dynamic-maps
如您所见,SKU:Dynamic 映射是在调用 new google.maps.Map(options)
之后产生的。
希望我的回答能解开你的疑惑。