谷歌地图MarkerImage与本地url不显示在Safari移动iOS 6
Google maps MarkerImage with local url won't display in Safari mobile iOS 6
我有一个谷歌地图嵌入在我的网页,我想使用自定义图像创建一个标记。下面是添加标记的代码。'map'是代表Google地图对象的变量。
function addMarker(location) {
var image = new google.maps.MarkerImage("tree.gif", null, null, null, new google.maps.Size(16, 24));
marker = new google.maps.Marker({
position: location,
map: map,
icon: image
});
};
这在ie8, Chrome 25, Firefox 19和Safari 5(桌面)中工作良好-创建标记并显示tree.gif图像。但是,这在iOS 6 (iPad和iPhone)的Safari mobile中不起作用。
如果:
…我删除了自定义图标-默认的谷歌地图标记图标(红色图钉)出现
…我使用远程url到一些其他图像文件(例如/http://somedomain.com/images/someimage.gif)
我逛遍了所有的SOF和Google群组,都没有运气。什么好主意吗?
添加3/12/13:这个网站是活的,并显示此行为(最后检查)。从"标记"页面开始,在你的GPS位置上张贴一个标记,然后检查"地图"页面,看看你的标记是否出现了。源代码在GitHub上-问题在scripts/map.js文件中。
添加3/15/13:缩小范围。我的页面也使用HTML5服务器发送的事件。上述行为仅在EventSource连接打开时发生。但是,如果我注释掉这一行,标记就会像预期的那样出现(链接到上一段中的代码):
var source = new EventSource('../pickups');
这不是解决方案,但我弄清楚了为什么会发生这种情况。正如这篇文章所描述的,在其他地方,iOS 6中的Safari似乎只允许每个主机同时进行一个http连接。
一旦我创建了一个新的EventSource,如上面的代码所示,Safari只保持新连接(到'/pickups')打开,而忽略原始连接(到'/map')。在此之后,原始连接上的任何其他资源(包括我的树GIF)都不会被获取。这就解释了为什么默认的谷歌地图标记(从google.com获取)和其他主机的图像工作良好。
在我找到更好的解决方案之前,我将在Safari iOS 6客户端使用轮询而不是EventSource。
- 防止在移动Safari(iPad/iPhone)中长按/长按默认上下文菜单
- html视频javascript播放方法在移动Safari中不起作用
- 检测通过移动 Safari 中的 JavaScript 关闭浏览器选项卡
- 在移动 Safari 上向下拖动时,触摸事件停止触发 - iPad HTML5
- jQuery .play() 在移动 Safari 上不起作用
- 如何将Javascript事件附加到移动Safari后退按钮
- 移动Chrome和Safari之间的页面滚动不一致
- 移动safari浏览器的滚动问题
- 响应式设计适用于桌面浏览器、移动模拟器(Safari和Mozilla Firefox),但不适用于真正的智能手机(And
- 删除的DOM元素仍然显示在移动safari(iOS 5.1)中
- window.open()没有'无法在添加到主屏幕的移动Safari web应用程序中工作
- jQuery:jQuery.val()在移动Safari和Chrome中不起作用
- 来自第三方身份验证的 Firebase 身份验证数据在移动 safari iOS8 中始终为空
- Facebook移动Safari无法正常工作
- Safari移动地理定位和地图渲染
- 防止iOS safari移动网页窗口,以便拖动事件发生
- 检测用户是否通过iphone上的safari移动浏览器导航
- 不同的陀螺仪值在chrome移动和safari移动
- 谷歌地图MarkerImage与本地url不显示在Safari移动iOS 6
- $(element).width() 在 Safari 移动设备上报告不同的值