草庐IT

iOS Google Maps Api 平铺叠加层

coder 2023-09-23 原文

我的应用目前正在使用适用于 iOS 的 google maps api v2。我想添加自定义的平铺叠加层,我意识到 api 不支持它。

我对这个问题采取的第一种方法是尝试扩展 GMSOverlay 类,但后来我发现 drawLayer 方法从未被调用。

接下来,我尝试让我的自定义类扩展 UIView,然后将我的类作为 subview 添加到 map View 。我能够使用 GMSMapViewDelegate 方法 didChangeCameraPosition 将相机更新报告回我的自定义类,以便重新绘制图 block 。这主要适用于几个异常(exception)情况,首先,只有初始的一组图 block 会加载,如果您从初始 X、Y、Z 平移或缩放,则 map 图 block 不会通过 drawInRect 方法更新。第二个问题是我的自定义 UIView 在点击后覆盖了所有标记及其相应的标注。

我的问题是,是否有人有过添加自定义图 block 或子类化 GMSOverlay 类以在 Google map 上添加自定义天气图 block 等经验?

最佳答案

iOS 版 Google Maps SDK v.1.3.0 发行说明的好消息(今天发布):

Support for custom tile overlays (image-based) via GMSTileLayer.

参见:https://developers.google.com/maps/documentation/ios/releases

关于iOS Google Maps Api 平铺叠加层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16368014/

有关iOS Google Maps Api 平铺叠加层的更多相关文章

  1. javascript - 将 Leaflet LatLng 投影到平铺像素坐标 - 2

    对于Canvas图层,如何访问特定图block的点击像素?给定像{lat:37.68816,lng:-119.76196}这样的LatLng,我如何:#1,检索正确的点击block,#2,block内的像素坐标?这两个都应该考虑maxNativeZoom。 最佳答案 需要像L.CRS.EPSG3857这样的CRS。map的CRS可通过map.options.crs访问。需要真正的缩放、图block大小(如256,但可能为512或更高maxNativeZoom)和像素原点,如map.getPixelOrigin():constlatl

  2. javascript - 如何检测 google maps PolyLine 叠加层上的点击事件? - 2

    在我看来,我应该能够执行以下操作来检测谷歌地图上某条线上的点击事件:varline=newGPolyline(...);map.addOverlay(line);GEvent.addListener(line,"click",function(latlng){alert("clicked");});apireference说这是在2.88版中可用的,该版本于2007年发布(!?),所以我假设这就是我正在使用的,但我不知道如何确认这一点。我还尝试明确设置{clickable:true}选项(它应该是默认设置。)我已经在FireFox3和Opera9.6中进行了测试,所以怀疑它是特定于浏览

  3. javascript - 如何在 Mithril.js 中叠加弹出 View ? - 2

    作为深入学习基本JS编程(在最新浏览器上)的实践练习,我正在构建一个SPA来维护客户记录。我使用的唯一外部库是Mithril.jsMVC。到目前为止,我已经从我的数据库中获得了一个包含实时数据的TableView,其中包括每条记录的编辑、合并和删除按钮。编辑已完成并且运行良好,使用内联“表单”并保存/取消即可。我现在正在尝试实现删除和合并,这两者都需要在执行操作之前进行弹出确认,这就是我遇到的问题。我确切地知道在桌面GUI环境中我会做什么,所以障碍可能是我对浏览器前端的了解比对Mithril本身更不了解。理想情况下,我想创建一个独立的、可重用的“弹出”组件来表示弹出窗口,但我看不出我应

  4. javascript - React Native 中图像顶部的叠加按钮 - 2

    我正在尝试在ReactNative中实现以下效果:图像的一Angular有一个按钮。无论图像的大小或纵横比如何,该按钮始终位于图像的一Angular内,并且不会裁剪图像的任何部分(它始终按比例缩小以完全适合框内)。我在ReactNative中遇到的问题是图像组件的大小并不总是与缩小后的图像大小相匹配。如果我将图像的高度固定为300,设置flex1使图像的宽度扩展以填充其内容,并且图像是肖像,图像组件是容器的整个宽度,但组件内的图像将有宽度少了很多。因此,让一个View覆盖另一个View的典型方法并不像我希望的那样工作——我的覆盖层还覆盖了图像周围的填充,并且按钮(固定在Angular落

  5. javascript - 在 map 上使用 BubbleChart 叠加构建 DC 仪表板 - 更好的示例? - 2

    我正在处理类似于thisexample的可视化,由dc.js库示例主页链接。该页面有一些不错的示例入门代码可供引用,但是我有一个关于在map上绘制气泡图的特殊问题。在上面的例子中,似乎作者手动指定了显示加拿大省份形状的路径。然后,代码将bubbleOverlay图表分配给名为caChart的变量,该变量将包含在加拿大map上特定坐标处绘制的气泡。然而,在代码的更下方,它看起来像是代码在网页上为要绘制的每个气泡手动分配(x,y)坐标,而不是以编程方式分配它们的位置(参见注释):caChart.width(600).height(450).dimension(cities).group(t

  6. javascript - 是否可以最好使用 javascript 将多个音频文件叠加在一起 - 2

    我想合并音频片段,将它们叠加在一起,以便它们同步播放并保存在一个新的音频文件中。任何帮助将非常感激。我在网上做了一些挖掘,但找不到关于Javascript音频编辑库(例如Mix.js)的许多可用工具是否有能力的明确答案。 最佳答案 是的,可以使用OfflineAudioContext()或AudioContext.createChannelMerger()并创建一个MediaStream.参见Phonegapmixingaudiofiles,WebAudioAPI.您可以使用fetch()或XMLHttpRequest()以Arra

  7. javascript - 将 Leaflet LatLng 转换为 x,y 像素图像叠加层 - 2

    我有一张使用imageOverlay从图像创建的传单map,用于室内地图渲染目的,我想知道给定传单纬度和经度如何获取图像的x,y像素。 最佳答案 从Lat/Lng系统设置和获取像素坐标的最简单转换是使用:项目:将纬度/经度转换为像素project(latlng,zoom)取消投影:将像素转换为纬度/经度unproject(point,zoom)随时可以引用LeafletreferenceP.S:considertheMapCRSissettoSimple 关于javascript-将Le

  8. javascript - 在 Google map 上叠加 HTML - 2

    有没有办法使用GoogleMapsAPI在Googlemap的顶部添加HTML内容?我想添加一个包含其他HTML内容的div。附言不想操纵Google信息窗口。 最佳答案 您可以使用这个不错的库。http://blog.mridey.com/2011/05/label-overlay-example-for-google-maps.html通过一些调整,它可以用来添加任何你想要的内容。这是将其添加为叠加层而不是InfoWindow的方式。 关于javascript-在Googlemap上

  9. javascript - ExtJS 以平铺方式打开新窗口 - 2

    我正在使用ExtJS并运行一个类似桌面的应用程序。困扰我的一件事是当一个新窗口打开时(绑定(bind)在视口(viewport)的中心区域内)它总是在视口(viewport)的左上角打开。如果打开了多个窗口,我希望它们平铺,这样它们就不会彼此叠加...有什么想法吗?(我最初的想法是循环遍历WindowMgr中的窗口并检查当前是否有一个位于0,0。如果有,检查100,100等直到有一个可用。)希望这是有道理的! 最佳答案 我做的和你描述的差不多:Ext.Window.prototype._autoTile=function(){var

  10. javascript - 在 chart.js 图形上叠加线 - 2

    我想知道是否可以在chart.js图形(例如折线图)上叠加一条线?例如,在x轴上,将在图中的值20处绘制一条水平线 最佳答案 我创建了一个称为叠加图表的东西,我已将其添加到我的chart.js(https://github.com/leighquince/Chart.js)分支中,可以在这种情况下使用。它的工作原理与折线图或条形图相同,唯一的区别是您声明了一个名为type的额外属性,该属性可以是'line'或'bar'。然后只需调用newChart(ctx).Overlay(data)。因此,对于您的示例,您可以只使用条形图,然后提

随机推荐