新的和iOS(Android开发者.)。我试图使用iOSAPI将KML层覆盖到GoogleMap上。我使用了最新版本的谷歌地图和谷歌地图-iOS-Utils。KML特性呈现得很好,但是样式却被忽略了。我正在使用GitHub的Utils代码提供的KML_Sample.kml文件(这包含Googleplex上的彩色多边形-我检查了示例kml文件是否在网上正确呈现)。任何帮助都将不胜感激,因为我不知道问题出在哪里。下面是一个代码片段:
导入UIKit导入GoogleMaps
类MapViewController:UIViewController{
var mapView:GMSMapView = GMSMapView()
override func loadView() {
let camera = GMSCameraPosition.camera(withLatitude: 37.42, longitude: -122.084, zoom: 13.0)
mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
view = mapView
}
override func viewDidLoad() {
super.viewDidLoad()
let path = Bundle.main.path(forResource: "KML_Sample", ofType: "kml")
let url = URL(fileURLWithPath: path!)
let kmlParser = GMUKMLParser(url: url)
kmlParser.parse()
let renderer = GMUGeometryRenderer(map: mapView,geometries: kmlParser.placemarks,styles: kmlParser.styles)
//the following line produces the same kml rendering on the google map - so styles are being ignored above :(
//let renderer = GMUGeometryRenderer(map: mapView,geometries: kmlParser.placemarks)
renderer.render()
//add marker
let position = CLLocationCoordinate2D(latitude: 37.42, longitude: -122.084)
let marker = GMSMarker(position: position)
marker.title = "Hello World"
marker.map = mapView
}
所显示的图像如下(多边形应该是彩色的,而不是默认的):
https://i.stack.imgur.com/vVyVD.png
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用Google Maps SDK for iOS时,确保KML样式能够正确应用到地图上可能需要一些额外的检查和调整。根据你的描述,尽管KML文件中的特性(如多边形)被成功解析并显示在地图上,但它们的样式却没有得到应用。以下是一些可能的解决方案和检查点:
确认KML文件中样式定义正确:首先,请确保你的KML文件中确实包含了正确的样式定义,并且这些样式是按照KML规范正确格式化的。你可以使用在线的KML验证工具来检查你的KML文件是否有错误。
检查KML解析器配置:虽然你没有展示GMUKMLParser
的详细配置,但请确认解析器是否正确设置以包含样式信息。通常情况下,如果使用的是标准的库方法,它应该会自动处理样式,但有时特定的实现细节或版本差异可能导致问题。
自定义样式应用:如果默认的解析和渲染机制未能应用KML中的样式,你可能需要手动为解析出的几何体指定样式。这可以通过遍历kmlParser.styles
和将相应的样式应用到每个GMUGeometry
上实现。不过,这通常是最后的手段,因为大多数时候SDK应能自动处理。
更新依赖库:确保你使用的Google Maps SDK for iOS以及相关的Utils库是最新的版本。有时候,问题可能是由于旧版本库中的已知bug导致的,而这些bug在新版本中可能已经被修复。
查看日志和错误信息:在解析和渲染过程中,开启详细的日志记录,查看是否有任何错误或警告信息提示关于样式加载或应用的问题。
社区和官方文档:查阅Google Maps SDK for iOS的官方文档和开发者论坛,看看是否有其他开发者遇到过类似问题及其解决方案。GitHub上的相关项目页面也经常有讨论和示例代码可以参考。
如果以上步骤都不能解决问题,考虑将具体问题、代码片段和KML文件简化后(去除敏感信息)发布到Stack Overflow或者Google Maps SDK的官方支持渠道,这样可以获得更专业的帮助。