我有以下代码:
func mapView(mapView: GMSMapView, didTap marker: GMSMarker){
let lat: CLLocationDegrees = marker.position.latitude
let lng: CLLocationDegrees = marker.position.longitude
var formattedCoordinate = CLLocationCoordinate2D(latitude: lat,longitude: lng)
markersArray.remove(formattedCoordinate)
self.clean()
}
func mapView(mapView: GMSMapView, didBeginDragging marker: GMSMarker){
let lat: CLLocationDegrees = marker.position.latitude
let lng: CLLocationDegrees = marker.position.longitude
var formattedCoordinate = CLLocationCoordinate2D(latitude: lat,longitude: lng)
markersArray.remove(formattedCoordinate)
}
正如您所看到的,我正在努力去除"删除" " formattedCoordinate"来自markersArray。我看到有.filter和其他方法的选项可以删除特定索引处的元素,但在这里我想从数组中删除该特定坐标。我该怎么做?
答案 0 :(得分:0)
markers = markers.filter({ (coordinateToRemove) -> Bool in
return coordinateToRemove.latitude == formattedCoordinate.latitude && coordinateToRemove.longitude == formattedCoordinate.longitude
})
我有同样的问题通过舍入纬度和经度的值来解决它(因为它们可能在 formattedCoordinate 对象中的某些小数可能不同)使用
轮(coordinateToRemove.latitude)
并单独比较它们。