谷歌地图上的自定义标记如下图
Posted
技术标签:
【中文标题】谷歌地图上的自定义标记如下图【英文标题】:Custom marker on google map as per below image 【发布时间】:2019-12-01 07:45:29 【问题描述】:我想按照以下添加自定义标记。我有在谷歌地图上标记的方法,但我想将用户图像放在标记针上,如下所示。 我有透明标记图像,我想从 url 加载用户图像。所以图像必须是动态的。所以我不能放置静态标记。
//Add Marker
func dropMarker(_ location : CLLocation, _ isHotelLocation: Bool = false,_ memberModel : membersModel? = nil)
let marker = GMSMarker()
let position = self.checkIfMutlipleCoordinates(latitude: Float(location.coordinate.latitude), longitude: Float(location.coordinate.longitude))
marker.position = position
if isHotelLocation == false
if let url = URL.init(string: memberModel!.avatar_url ?? "")
let imageView = UIImageView(image: UIImage.init(named: "locationPin"))
imageView.sd_setImage(with: url, placeholderImage: UIImage.init(named: "locationPin"))
marker.iconView = imageView
else
marker.icon = UIImage(named : "LocationPlaceholderPin")
marker.userData = memberModel
else
marker.icon = UIImage(named : "hotelMarker")
hotelLocationMarker = marker
marker.map = mapView
arrMarkers.append(marker)
【问题讨论】:
有什么问题? 我想根据我的图像将用户的图像添加到标记上。我想实现它。但我没有做到这一点 将用户图像作为子视图添加到您的标记图像,然后将其设置为您的标记 用户的图片是动态的,它会是一个服务器的url。那么我该如何添加它。你能举个例子吗? 【参考方案1】:使用此扩展从服务器下载图像:
extension UIImageView
func downloaded(from url: URL, contentMode mode: UIViewContentMode = .scaleAspectFit) // for swift 4.2 syntax just use ===> mode: UIView.ContentMode
contentMode = mode
URLSession.shared.dataTask(with: url) data, response, error in
guard
let httpURLResponse = response as? HTTPURLResponse, httpURLResponse.statusCode == 200,
let mimeType = response?.mimeType, mimeType.hasPrefix("image"),
let data = data, error == nil,
let image = UIImage(data: data)
else return
DispatchQueue.main.async()
self.image = image
.resume()
func downloaded(from link: String, contentMode mode: UIViewContentMode = .scaleAspectFit) // for swift 4.2 syntax just use ===> mode: UIView.ContentMode
guard let url = URL(string: link) else return
downloaded(from: url, contentMode: mode)
然后将图像作为子视图添加到标记图像:
var userImage = UIImageView()
userImage.downloaded(from: "user image url")
let userMarkerImage = UIImageView(named: "your marker placeholder")
userMarkerImage.addsubView(userImage)
然后将图像设置为标记:
marker.icon = userMarkerImage
注意
你应该在添加为子视图之前设置图像的框架
【讨论】:
不工作。只有下载的图像视图显示为标记。引脚未显示。我想在 pin 上下载图片 @JitendraModi 您应该以编程方式创建该图像 Ok 将尝试创建动态图像以上是关于谷歌地图上的自定义标记如下图的主要内容,如果未能解决你的问题,请参考以下文章