refactor MKMapView delegate method