- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在将 10 个 GroundOverlays 加载到 GoogleMap 上,并希望显示与加载图像相关的进度。
var imageBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(42.80059,-115.253806),
new google.maps.LatLng(47.481725,-110.227471));
var layer1 = new google.maps.GroundOverlay("overlays/layer1.png",imageBounds);
layer1.setOpacity(.5);
layer1.setMap(map);
我如何检测每个叠加层的实际图像何时加载或 % 已加载?我想添加一个进度条或其他东西来向用户显示叠加层正在加载,因为它可能需要 5 秒左右的时间。
最佳答案
如果您有一张图片作为地面叠加层,我会执行以下操作:
Progress...这更特定于浏览器。但是加载很容易,所以:
function loadOverlay(){
var img = new Image();
var img_url = "overlays/layer1.png"
img.src= img_url;
$('#wait_for_overlay').show();
img.onLoad = function(){
$('#wait_for_overlay').hide();
var layer1 = new google.maps.GroundOverlay(img_url,imageBounds);
layer1.setOpacity(.5);
layer1.setMap(map);
}
};
这会起作用的原因:
创建一个 img 对象并设置其“src”属性将使浏览器在执行此操作的 javascript 函数完成后立即开始下载请求的文件。
浏览器会将此图像放入其本地缓存中,然后调用 onLoad 函数以查看它会发生什么。
回调实际上对 img 变量没有做任何事情(也许它应该,确保它不会根据关闭规则被清除,如果这是错误的,用它做一个 NOP),而是调用 google-maps 函数.
google-maps 函数将在完全相同的 url 请求图像,浏览器将在该 url 查找其缓存表,并立即从缓存中取回图像。
这个技巧很讨厌,但事实上,谷歌地图引擎会在后台执行完全相同的 onLoad 操作(因为这就是 map 引擎的工作方式)。
我希望这能满足您的问题...没有进度条,只是一个加载指示器...也许您可以通过使用 XHR 请求它并检查进度来实现进度条,我不确定,但诀窍是同样:做一个虚假的请求,以使其到达缓存。
关于javascript - 如何检测为 GroundOverlay 加载的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10833465/
我正在开发 Android Weather 应用程序,我的要求是显示动画预报。我们有一个服务器,我从那里使用 Glide 将预测图像加载为位图,然后使用位图创建 GoogleMap 的 GroundO
关于在 map 上定位图像并给出其边界,Google map 的文档指出: When the image is drawn on the map it will be rotated to fit t
我正在尝试将我多年前编写的 GM v2 脚本转换为 v3。 在地面叠加层(天气雷达图)上时,我遇到了鼠标事件的问题。我知道 v3 没有与 v2 相反的实现。 只要鼠标不在叠加层上,事件就会正常工作。
我需要通过脉冲动画显示位置 A 和位置 B。我可以使用下面的代码来实现。但我面临的问题是 GroundOverlay 在缩放级别更改时更改其大小。如果位置 A 和 B 彼此靠近(即 map 放大级别高
我有一个 .tif 文件(卫星图像)和一个相应的 .tfw 文件。我已经成功地转换了从世界文件中提取的坐标 (lat/lng),并且我已经使用 Photoshop 将 .tif 文件转换为 .png
我正在将 10 个 GroundOverlays 加载到 GoogleMap 上,并希望显示与加载图像相关的进度。 var imageBounds = new google.maps.LatLngBo
我有一个问题让我抓狂了两天。 我们有一个 Google map 应用程序,可以提取 KML 文件以将历史 map 显示为图像叠加层。大约上周,我们的应用程序开始显示非常模糊的图像,这些图像是从 goo
我找不到与此相关的任何文档。我观察到我的图像在 Android 中加载到谷歌地图 GroundOverlay 时默认情况下是抗锯齿的。谷歌地图 GroundOverlays 是否默认启用抗锯齿? 最佳
我的 GoogleMap 上有一个 GroundOverlay,我希望它的尺寸在我放大/缩小 map 时不会改变。与始终保持其尺寸的默认 map markers 完全一样。我已经尝试过两种形式的
我在我的 Android 应用程序中使用 GoogleMaps,我想在 map 上显示动画雷达图像。 我有一个包含 6 个位图的数组。当用户点击播放时, map 会循环显示 map 上的每个图像。 这
很简单的问题。 我在 KML 中定义了一些 Polygons 和 GroundOverlays。有没有办法指定它们应该是可点击的,并且(至少在谷歌地球中)在点击它们时弹出一个信息气球或类似的东西? 同
对于我正在开发的应用程序,我想制作一个图像叠加层。在 iOS 上,我为此使用了 Google Maps API,效果很好。但是使用完全相同的设置、配置和 API,它在 Android 上不起作用。这是
我已经设置了一个 UIView 以使用 Google map 显示 map 的特定区域。我现在想在这个选定区域的顶部添加一个图像叠加层,但我不知道如何为此计算正确的坐标。我已将 map 设置为中心坐标
我正在制作 map 元素,用于在 map 上添加形状和位置并保存它。 但是我遇到了 groundoverlay 的问题。 我知道谷歌地图文档中没有旋转属性。但我需要一种方法/技巧来通过任何其他方式旋转
我有一个 iOS 应用程序,我想在其中读取包含 GroundOverlays 的 KML 文件。 GroundOverlay 包含图像 href、北、南、东、西坐标以及旋转。 我按照本教程 ( htt
我正在使用谷歌地图作为天气信息显示网络。 我想显示过去 7 天的云状况。 我正在使用叠加层在我的网络上显示云。 现在我的问题是我们可以使用 javascript 更改 google.maps.Grou
使用 react-google-maps以 GroundOverlay 为例组件为例(参见 https://github.com/khpeek/beomaps/blob/master/src/App.
我正在尝试使用以下代码将鼠标事件附加到 groundOverlay 功能: var groundOverlay = ge.createGroundOverlay(''); v
我有一个应用程序,用户可以在其中将图像加载到 Google map 上。这是为 2.3 开发的,因此有一个 MapActivity、一个 MapView 和显示图像的自定义 Overlay 类。在覆盖
我正在使用 android google maps API V2,我想在 map 特征(例如,街道名称、城镇名称、公园等)之上绘制一个 GroundOverlay。现在,我的 GroundOverla
我是一名优秀的程序员,十分优秀!